Saltar al contenido principal

Skills

@agentskit/skills proporciona cinco valores SkillDefinition integrados (prompts del sistema + metadatos). Los skills llevan pistas de tools y delegates para que el runtime sepa qué herramientas fusionar y qué subagentes preferir durante la delegación.

Cuándo usarlo

  • Quieres personas con opinión (investigador, programador, planificador, …) sin escribir a mano prompts largos del sistema.
  • Compones personas con composeSkills para tareas en varias fases.

Los skills personalizados son objetos planos — usa @agentskit/templates o define SkillDefinition en código.

Instalación

npm install @agentskit/skills

Los tipos de skill provienen de @agentskit/core.

Exportaciones públicas

ExportaciónFunción
researcher, coder, planner, critic, summarizerObjetos SkillDefinition integrados
composeSkills(...skills)Fusiona prompts, pistas de herramientas y delegados
listSkills()SkillMetadata[] para UIs de descubrimiento

Usar un skill

Pasa un skill a runtime.run() mediante la opción skill. El systemPrompt del skill sustituye el prompt del sistema por defecto, y las herramientas listadas en skill.tools se fusionan en el conjunto activo de herramientas.

import { createRuntime } from '@agentskit/runtime'
import { anthropic } from '@agentskit/adapters'
import { researcher } from '@agentskit/skills'
import { webSearch } from '@agentskit/tools'

const runtime = createRuntime({
adapter: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY!, model: 'claude-sonnet-4-6' }),
tools: [webSearch()],
})

const result = await runtime.run(
'What are the trade-offs between Redis and Memcached?',
{ skill: researcher },
)

Skills integrados

researcher

Investigador web metódico que encuentra, contrasta y resume información de varias fuentes.

  • pista de tools: ['web_search']
  • delegates: (ninguno)

El investigador descompone preguntas en subconsultas, busca cada una de forma independiente, contrasta fuentes y termina con una evaluación de confianza.

coder

Ingeniero de software que escribe código limpio, probado y listo para producción siguiendo buenas prácticas.

  • pista de tools: ['read_file', 'write_file', 'list_directory', 'shell']
  • delegates: (ninguno)

El programador entiende bien los requisitos antes de escribir, maneja casos límite y explica decisiones de diseño clave. Nunca usa tipos any ni añade abstracciones no solicitadas.

planner

Planificador estratégico que desglosa tareas complejas en pasos, identifica dependencias y coordina agentes especialistas.

  • pista de tools: (ninguna — los delegados hacen el trabajo)
  • delegates: ['researcher', 'coder']

El planificador descompone objetivos en los pasos independientes más pequeños y delega cada paso al especialista correcto. Replanifica cuando un paso falla en lugar de seguir a ciegas.

critic

Revisor constructivo que evalúa el trabajo por corrección, exhaustividad y calidad.

  • pista de tools: ['read_file']
  • delegates: (ninguno)

El crítico clasifica problemas por gravedad (crítico / importante / menor), propone correcciones concretas con razonamiento y siempre reconoce lo que funciona bien antes de listar problemas.

summarizer

Resumidor conciso que extrae puntos clave preservando matices y estructura.

  • pista de tools: (ninguna)
  • delegates: (ninguno)

El resumidor adapta la longitud de la salida a la del contenido: una frase para textos cortos, viñetas estructuradas para textos largos. Nunca introduce información que no esté en el original.

composeSkills

Fusiona dos o más skills en uno. El skill resultante concatena todos los prompts del sistema (separados por cabeceras --- name ---), deduplica pistas de herramientas y fusiona listas de delegados.

import { composeSkills, researcher, coder } from '@agentskit/skills'

const fullStackAgent = composeSkills(researcher, coder)

const result = await runtime.run(
'Research the best TypeScript ORM, then scaffold a basic schema',
{ skill: fullStackAgent },
)

El name del skill compuesto es researcher+coder y su description enumera ambos componentes.

// Throws — at least one skill is required
composeSkills()

// Single skill passthrough — returns the original unchanged
composeSkills(researcher) // === researcher

listSkills

Enumera todos los skills integrados y su metadatos — útil para construir UIs de agentes o validar la configuración.

import { listSkills } from '@agentskit/skills'

const skills = listSkills()
// [
// { name: 'researcher', description: '...', tools: ['web_search'], delegates: [] },
// { name: 'coder', description: '...', tools: ['read_file', 'write_file', 'list_directory', 'shell'], delegates: [] },
// { name: 'planner', description: '...', tools: [], delegates: ['researcher', 'coder'] },
// { name: 'critic', description: '...', tools: ['read_file'], delegates: [] },
// { name: 'summarizer', description: '...', tools: [], delegates: [] },
// ]

Cada entrada es un objeto SkillMetadata:

interface SkillMetadata {
name: string
description: string
tools: string[] // Tool names this skill expects to have available
delegates: string[] // Sub-agent names this skill will delegate to
}

Traer tu propio skill

Un SkillDefinition es un objeto plano — no hace falta clase.

import type { SkillDefinition } from '@agentskit/core'

export const translator: SkillDefinition = {
name: 'translator',
description: 'Translates text between languages accurately and naturally.',
systemPrompt: `You are a professional translator...`,
tools: [],
delegates: [],
}

Solución de problemas

ProblemaMitigación
El planificador nunca delegaAsegúrate de que el runtime tenga herramientas coincidentes y configuración de delegación de Delegación.
Herramientas del skill sin usarRegistra los ToolDefinition[] reales (p. ej. webSearch()) en createRuntime; las pistas solas no instalan herramientas.
Prompt compuesto demasiado largoRecorta los skills de origen o divídelo en ejecuciones separadas.

Ver también

Empieza aquí · Paquetes · TypeDoc (@agentskit/skills) · Runtime · Delegación · Herramientas · @agentskit/core