Pular para o conteúdo principal

@agentskit/templates

Kit de autoria para gerar extensões do AgentsKit: objetos ToolDefinition / SkillDefinition / AdapterFactory validados e scaffolds no disco (package.json, tsup, testes, README). Depende apenas de @agentskit/core.

Quando usar

  • Você publica ferramentas, skills ou adaptadores personalizados como pacotes independentes.
  • Você quer blueprints consistentes (tsup, vitest, TypeScript) entre plugins internos.
  • Você precisa de validação em runtime antes de registrar um template num runtime ou marketplace.

Instalação

npm install @agentskit/templates @agentskit/core

API pública

ExportaçãoPapel
createToolTemplate(config)Monta um ToolDefinition com padrões e validação
createSkillTemplate(config)Monta um SkillDefinition com padrões e validação
createAdapterTemplate(config)Monta um AdapterFactory + name de exibição
scaffold(config)Escreve um diretório de pacote completo (async)
validateToolTemplate / validateSkillTemplate / validateAdapterTemplateGarante definições bem formadas

createToolTemplate

ToolTemplateConfig estende uma ferramenta parcial com name obrigatório e opcional description, schema, execute, tags, category, requiresConfirmation, init, dispose e merge base.

import { createToolTemplate } from '@agentskit/templates'

export const rollDice = createToolTemplate({
name: 'roll_dice',
description: 'Roll an N-sided die once.',
schema: {
type: 'object',
properties: { sides: { type: 'number', minimum: 2 } },
required: ['sides'],
},
async execute(args) {
const sides = Number(args.sides)
return String(1 + Math.floor(Math.random() * sides))
},
})

A validação lança se name, description, schema ou execute estiver faltando (LLMs precisam de schema + description para tool calling).

createSkillTemplate

Exige name, description e systemPrompt. Opcional: examples, tools, delegates, temperature, onActivate, base.

import { createSkillTemplate } from '@agentskit/templates'

export const researcher = createSkillTemplate({
name: 'researcher',
description: 'Gather facts before writing.',
systemPrompt: 'You are a careful researcher. Cite sources when possible.',
tools: ['web_search'],
})

createAdapterTemplate

Exige name e createSource compatível com AdapterFactory['createSource'].

import { createAdapterTemplate } from '@agentskit/templates'

export const myAdapter = createAdapterTemplate({
name: 'my-llm',
createSource: (request) => {
// return StreamSource compatible with @agentskit/core
throw new Error('Implement streaming to your backend')
},
})

scaffold

Cria um diretório join(dir, name) com:

  • package.json, tsconfig.json, tsup.config.ts
  • src/index.ts (stub)
  • tests/index.test.ts
  • README.md
import { scaffold } from '@agentskit/templates'
import { join } from 'node:path'

const files = await scaffold({
type: 'tool',
name: 'my-company-search',
dir: join(process.cwd(), 'packages'),
description: 'Internal web search tool',
})
console.log('Created:', files)

ScaffoldType é 'tool' | 'skill' | 'adapter'.

Registre pacotes gerados como qualquer outra ferramenta, skill ou adaptador via createRuntime ou useChat.

Solução de problemas

ErroCausa
Tool requires a namePasse name a createToolTemplate.
requires a schemaJSON Schema é obrigatório para function calling.
Skill ... requires a systemPromptSkills devem definir comportamento via systemPrompt.
Adapter requires createSourceA fábrica deve expor createSource(request).

Ver também

Comece aqui · Pacotes · TypeDoc (@agentskit/templates) · @agentskit/core · Ferramentas · Skills · Adaptadores