Los subagentes en el SDK de Claude Agent son IAs especializadas que son orquestadas por el agente principal. Usa subagentes para la gestión de contexto y paralelización.
Esta guía explica cómo definir y usar subagentes en el SDK usando el parámetro agents.
Los subagentes pueden definirse de dos maneras al usar el SDK:
agents en las opciones de tu query() (recomendado para aplicaciones SDK).claude/agents/)Esta guía se enfoca principalmente en el enfoque programático usando el parámetro agents, que proporciona una experiencia de desarrollo más integrada para aplicaciones SDK.
Los subagentes mantienen contexto separado del agente principal, previniendo la sobrecarga de información y manteniendo las interacciones enfocadas. Este aislamiento asegura que las tareas especializadas no contaminen el contexto de conversación principal con detalles irrelevantes.
Ejemplo: Un subagente research-assistant puede explorar docenas de archivos y páginas de documentación sin saturar la conversación principal con todos los resultados de búsqueda intermedios - solo devolviendo los hallazgos relevantes.
Múltiples subagentes pueden ejecutarse concurrentemente, acelerando dramáticamente los flujos de trabajo complejos.
Ejemplo: Durante una revisión de código, puedes ejecutar subagentes style-checker, security-scanner, y test-coverage simultáneamente, reduciendo el tiempo de revisión de minutos a segundos.
Cada subagente puede tener prompts de sistema personalizados con experiencia específica, mejores prácticas y restricciones.
Ejemplo: Un subagente database-migration puede tener conocimiento detallado sobre mejores prácticas de SQL, estrategias de rollback y verificaciones de integridad de datos que serían ruido innecesario en las instrucciones del agente principal.
Los subagentes pueden limitarse a herramientas específicas, reduciendo el riesgo de acciones no intencionadas.
Ejemplo: Un subagente doc-reviewer podría tener acceso solo a herramientas Read y Grep, asegurando que pueda analizar pero nunca modificar accidentalmente tus archivos de documentación.
Define subagentes directamente en tu código usando el parámetro agents:
import { query } from '@anthropic-ai/claude-agent-sdk';
const result = query({
prompt: "Revisa el módulo de autenticación para problemas de seguridad",
options: {
agents: {
'code-reviewer': {
description: 'Especialista experto en revisión de código. Usar para revisiones de calidad, seguridad y mantenibilidad.',
prompt: `Eres un especialista en revisión de código con experiencia en seguridad, rendimiento y mejores prácticas.
Al revisar código:
- Identifica vulnerabilidades de seguridad
- Verifica problemas de rendimiento
- Verifica adherencia a estándares de codificación
- Sugiere mejoras específicas
Sé exhaustivo pero conciso en tu retroalimentación.`,
tools: ['Read', 'Grep', 'Glob'],
model: 'sonnet'
},
'test-runner': {
description: 'Ejecuta y analiza suites de pruebas. Usar para ejecución de pruebas y análisis de cobertura.',
prompt: `Eres un especialista en ejecución de pruebas. Ejecuta pruebas y proporciona análisis claro de resultados.
Enfócate en:
- Ejecutar comandos de prueba
- Analizar salida de pruebas
- Identificar pruebas fallidas
- Sugerir correcciones para fallas`,
tools: ['Bash', 'Read', 'Grep'],
}
}
}
});
for await (const message of result) {
console.log(message);
}| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
description | string | Sí | Descripción en lenguaje natural de cuándo usar este agente |
prompt | string | Sí | El prompt del sistema del agente definiendo su rol y comportamiento |
tools | string[] | No | Array de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas |
model | 'sonnet' | 'opus' | 'haiku' | 'inherit' | No | Anulación de modelo para este agente. Por defecto usa el modelo principal si se omite |
También puedes definir subagentes como archivos markdown en directorios específicos:
.claude/agents/*.md - Disponible solo en el proyecto actual~/.claude/agents/*.md - Disponible en todos los proyectosCada subagente es un archivo markdown con frontmatter YAML:
---
name: code-reviewer
description: Especialista experto en revisión de código. Usar para revisiones de calidad, seguridad y mantenibilidad.
tools: Read, Grep, Glob, Bash
---
El prompt del sistema de tu subagente va aquí. Esto define el rol del subagente,
capacidades y enfoque para resolver problemas.Nota: Los agentes definidos programáticamente (vía el parámetro agents) tienen precedencia sobre los agentes basados en sistema de archivos con el mismo nombre.
Al usar el SDK de Claude Agent, los subagentes pueden definirse programáticamente o cargarse desde el sistema de archivos. Claude:
agents en tus opciones.claude/agents/ (si no se anula)description del agenteLos agentes definidos programáticamente (vía parámetro agents) tienen precedencia sobre los agentes basados en sistema de archivos con el mismo nombre.
Para ejemplos comprensivos de subagentes incluyendo revisores de código, ejecutores de pruebas, depuradores y auditores de seguridad, consulta la guía principal de Subagentes. La guía incluye configuraciones detalladas y mejores prácticas para crear subagentes efectivos.
El SDK invocará automáticamente subagentes apropiados basado en el contexto de la tarea. Asegúrate de que el campo description de tu agente indique claramente cuándo debe usarse:
const result = query({
prompt: "Optimiza las consultas de base de datos en la capa API",
options: {
agents: {
'performance-optimizer': {
description: 'Usar PROACTIVAMENTE cuando los cambios de código puedan impactar el rendimiento. DEBE USARSE para tareas de optimización.',
prompt: 'Eres un especialista en optimización de rendimiento...',
tools: ['Read', 'Edit', 'Bash', 'Grep'],
model: 'sonnet'
}
}
}
});Los usuarios pueden solicitar subagentes específicos en sus prompts:
const result = query({
prompt: "Usa el agente code-reviewer para verificar el módulo de autenticación",
options: {
agents: {
'code-reviewer': {
description: 'Especialista experto en revisión de código',
prompt: 'Eres un revisor de código enfocado en seguridad...',
tools: ['Read', 'Grep', 'Glob']
}
}
}
});Puedes configurar dinámicamente agentes basado en las necesidades de tu aplicación:
import { query, type AgentDefinition } from '@anthropic-ai/claude-agent-sdk';
function createSecurityAgent(securityLevel: 'basic' | 'strict'): AgentDefinition {
return {
description: 'Revisor de código de seguridad',
prompt: `Eres un revisor de seguridad ${securityLevel === 'strict' ? 'estricto' : 'equilibrado'}...`,
tools: ['Read', 'Grep', 'Glob'],
model: securityLevel === 'strict' ? 'opus' : 'sonnet'
};
}
const result = query({
prompt: "Revisa este PR para problemas de seguridad",
options: {
agents: {
'security-reviewer': createSecurityAgent('strict')
}
}
});Los subagentes pueden tener acceso restringido a herramientas vía el campo tools:
Ejemplo de un agente de análisis de solo lectura:
const result = query({
prompt: "Analiza la arquitectura de esta base de código",
options: {
agents: {
'code-analyzer': {
description: 'Análisis estático de código y revisión de arquitectura',
prompt: `Eres un analista de arquitectura de código. Analiza la estructura del código,
identifica patrones y sugiere mejoras sin hacer cambios.`,
tools: ['Read', 'Grep', 'Glob'] // Sin permisos de escritura o ejecución
}
}
}
});Agentes de solo lectura (análisis, revisión):
tools: ['Read', 'Grep', 'Glob']Agentes de ejecución de pruebas:
tools: ['Bash', 'Read', 'Grep']Agentes de modificación de código:
tools: ['Read', 'Edit', 'Write', 'Grep', 'Glob']