Si necesitas múltiples agentes trabajando en paralelo y comunicándose entre sí, consulta equipos de agentes en su lugar. Los subagentes funcionan dentro de una única sesión; los equipos de agentes se coordinan entre sesiones separadas.
- Preservar contexto manteniendo la exploración e implementación fuera de tu conversación principal
- Aplicar restricciones limitando qué herramientas puede usar un subagente
- Reutilizar configuraciones en proyectos con subagentes a nivel de usuario
- Especializar comportamiento con prompts del sistema enfocados para dominios específicos
- Controlar costos enrutando tareas a modelos más rápidos y económicos como Haiku
Built-in subagents
Claude Code incluye subagentes integrados que Claude usa automáticamente cuando es apropiado. Cada uno hereda los permisos de la conversación principal con restricciones de herramientas adicionales.- Explore
- Plan
- General-purpose
- Other
Un agente rápido y de solo lectura optimizado para buscar y analizar bases de código.
- Model: Haiku (rápido, baja latencia)
- Tools: Herramientas de solo lectura (acceso denegado a herramientas Write y Edit)
- Purpose: Descubrimiento de archivos, búsqueda de código, exploración de base de código
Quickstart: create your first subagent
Los subagentes se definen en archivos Markdown con frontmatter YAML. Puedes crearlos manualmente o usar el comando/agents.
Este tutorial te guía a través de la creación de un subagente a nivel de usuario con el comando /agent. El subagente revisa código y sugiere mejoras para la base de código.
Create a new user-level agent
Selecciona Create new agent, luego elige User-level. Esto guarda el subagente en
~/.claude/agents/ para que esté disponible en todos tus proyectos.Generate with Claude
Selecciona Generate with Claude. Cuando se te solicite, describe el subagente:Claude genera el prompt del sistema y la configuración. Presiona
e para abrirlo en tu editor si deseas personalizarlo.Select tools
Para un revisor de solo lectura, deselecciona todo excepto Read-only tools. Si mantienes todas las herramientas seleccionadas, el subagente hereda todas las herramientas disponibles para la conversación principal.
Select model
Elige qué modelo usa el subagente. Para este agente de ejemplo, selecciona Sonnet, que equilibra capacidad y velocidad para analizar patrones de código.
Choose a color
Elige un color de fondo para el subagente. Esto te ayuda a identificar qué subagente se está ejecutando en la interfaz de usuario.
Configure subagents
Use the /agents command
El comando/agents proporciona una interfaz interactiva para gestionar subagentes. Ejecuta /agents para:
- Ver todos los subagentes disponibles (integrados, usuario, proyecto y plugin)
- Crear nuevos subagentes con configuración guiada o generación de Claude
- Editar la configuración de subagentes existentes y acceso a herramientas
- Eliminar subagentes personalizados
- Ver qué subagentes están activos cuando existen duplicados
Choose the subagent scope
Los subagentes son archivos Markdown con frontmatter YAML. Guárdalos en diferentes ubicaciones según el alcance. Cuando múltiples subagentes comparten el mismo nombre, la ubicación de mayor prioridad gana.| Location | Scope | Priority | How to create |
|---|---|---|---|
--agents CLI flag | Sesión actual | 1 (más alta) | Pasar JSON al lanzar Claude Code |
.claude/agents/ | Proyecto actual | 2 | Interactivo o manual |
~/.claude/agents/ | Todos tus proyectos | 3 | Interactivo o manual |
Plugin’s agents/ directory | Donde el plugin está habilitado | 4 (más baja) | Instalado con plugins |
.claude/agents/) son ideales para subagentes específicos de una base de código. Verifica que estén en control de versiones para que tu equipo pueda usarlos y mejorarlos colaborativamente.
User subagents (~/.claude/agents/) son subagentes personales disponibles en todos tus proyectos.
CLI-defined subagents se pasan como JSON al lanzar Claude Code. Existen solo para esa sesión y no se guardan en disco, lo que los hace útiles para pruebas rápidas o scripts de automatización:
--agents acepta JSON con los mismos campos que frontmatter. Usa prompt para el prompt del sistema (equivalente al cuerpo markdown en subagentes basados en archivos). Consulta la referencia CLI para el formato JSON completo.
Plugin subagents provienen de plugins que has instalado. Aparecen en /agents junto a tus subagentes personalizados. Consulta la referencia de componentes de plugins para detalles sobre la creación de subagentes de plugins.
Write subagent files
Los archivos de subagentes usan frontmatter YAML para configuración, seguido del prompt del sistema en Markdown:Los subagentes se cargan al inicio de la sesión. Si creas un subagente agregando manualmente un archivo, reinicia tu sesión o usa
/agents para cargarlo inmediatamente.Supported frontmatter fields
Los siguientes campos se pueden usar en el frontmatter YAML. Soloname y description son requeridos.
| Field | Required | Description |
|---|---|---|
name | Yes | Identificador único usando letras minúsculas y guiones |
description | Yes | Cuándo Claude debe delegar en este subagente |
tools | No | Herramientas que el subagente puede usar. Hereda todas las herramientas si se omite |
disallowedTools | No | Herramientas a denegar, removidas de la lista heredada o especificada |
model | No | Modelo a usar: sonnet, opus, haiku, o inherit. Por defecto es inherit |
permissionMode | No | Modo de permiso: default, acceptEdits, dontAsk, bypassPermissions, o plan |
skills | No | Skills a cargar en el contexto del subagente al inicio. El contenido completo de la skill se inyecta, no solo se pone disponible para invocación. Los subagentes no heredan skills de la conversación principal |
hooks | No | Lifecycle hooks limitados a este subagente |
memory | No | Alcance de memoria persistente: user, project, o local. Habilita aprendizaje entre sesiones |
Choose a model
El campomodel controla qué modelo de IA usa el subagente:
- Model alias: Usa uno de los alias disponibles:
sonnet,opus, ohaiku - inherit: Usa el mismo modelo que la conversación principal
- Omitted: Si no se especifica, por defecto es
inherit(usa el mismo modelo que la conversación principal)
Control subagent capabilities
Puedes controlar qué pueden hacer los subagentes a través del acceso a herramientas, modos de permisos y reglas condicionales.Available tools
Los subagentes pueden usar cualquiera de las herramientas internas de Claude Code. Por defecto, los subagentes heredan todas las herramientas de la conversación principal, incluyendo herramientas MCP. Para restringir herramientas, usa el campotools (lista blanca) o el campo disallowedTools (lista negra):
Permission modes
El campopermissionMode controla cómo el subagente maneja prompts de permiso. Los subagentes heredan el contexto de permiso de la conversación principal pero pueden anular el modo.
| Mode | Behavior |
|---|---|
default | Verificación de permiso estándar con prompts |
acceptEdits | Auto-aceptar ediciones de archivo |
dontAsk | Auto-denegar prompts de permiso (las herramientas explícitamente permitidas aún funcionan) |
bypassPermissions | Saltar todas las verificaciones de permiso |
plan | Plan mode (exploración de solo lectura) |
bypassPermissions, esto toma precedencia y no puede ser anulado.
Preload skills into subagents
Usa el camposkills para inyectar contenido de skill en el contexto de un subagente al inicio. Esto le da al subagente conocimiento de dominio sin requerir que descubra y cargue skills durante la ejecución.
Esto es lo inverso de ejecutar una skill en un subagente. Con
skills en un subagente, el subagente controla el prompt del sistema y carga contenido de skill. Con context: fork en una skill, el contenido de la skill se inyecta en el agente que especifiques. Ambos usan el mismo sistema subyacente.Enable persistent memory
El campomemory le da al subagente un directorio persistente que sobrevive entre conversaciones. El subagente usa este directorio para acumular conocimiento con el tiempo, como patrones de base de código, insights de depuración y decisiones arquitectónicas.
| Scope | Location | Use when |
|---|---|---|
user | ~/.claude/agent-memory/<name-of-agent>/ | el subagente debe recordar aprendizajes en todos los proyectos |
project | .claude/agent-memory/<name-of-agent>/ | el conocimiento del subagente es específico del proyecto y compartible a través de control de versiones |
local | .claude/agent-memory-local/<name-of-agent>/ | el conocimiento del subagente es específico del proyecto pero no debe verificarse en control de versiones |
- El prompt del sistema del subagente incluye instrucciones para leer y escribir en el directorio de memoria.
- El prompt del sistema del subagente también incluye las primeras 200 líneas de
MEMORY.mden el directorio de memoria, con instrucciones para curarMEMORY.mdsi excede 200 líneas. - Las herramientas Read, Write y Edit se habilitan automáticamente para que el subagente pueda gestionar sus archivos de memoria.
Persistent memory tips
-
useres el alcance recomendado por defecto. Usaprojectolocalcuando el conocimiento del subagente es solo relevante para una base de código específica. - Pide al subagente que consulte su memoria antes de comenzar el trabajo: “Review this PR, and check your memory for patterns you’ve seen before.”
- Pide al subagente que actualice su memoria después de completar una tarea: “Now that you’re done, save what you learned to your memory.” Con el tiempo, esto construye una base de conocimiento que hace que el subagente sea más efectivo.
-
Incluye instrucciones de memoria directamente en el archivo markdown del subagente para que mantenga proactivamente su propia base de conocimiento:
Conditional rules with hooks
Para un control más dinámico sobre el uso de herramientas, usa hooksPreToolUse para validar operaciones antes de que se ejecuten. Esto es útil cuando necesitas permitir algunas operaciones de una herramienta mientras bloqueas otras.
Este ejemplo crea un subagente que solo permite consultas de base de datos de solo lectura. El hook PreToolUse ejecuta el script especificado en command antes de que se ejecute cada comando Bash:
Disable specific subagents
Puedes prevenir que Claude use subagentes específicos agregándolos al arraydeny en tu settings. Usa el formato Task(subagent-name) donde subagent-name coincide con el campo name del subagente.
--disallowedTools:
Define hooks for subagents
Los subagentes pueden definir hooks que se ejecutan durante el ciclo de vida del subagente. Hay dos formas de configurar hooks:- En el frontmatter del subagente: Define hooks que se ejecutan solo mientras ese subagente está activo
- En
settings.json: Define hooks que se ejecutan en la sesión principal cuando los subagentes comienzan o se detienen
Hooks in subagent frontmatter
Define hooks directamente en el archivo markdown del subagente. Estos hooks solo se ejecutan mientras ese subagente específico está activo y se limpian cuando termina. Todos los eventos de hook son soportados. Los eventos más comunes para subagentes son:| Event | Matcher input | When it fires |
|---|---|---|
PreToolUse | Nombre de herramienta | Antes de que el subagente use una herramienta |
PostToolUse | Nombre de herramienta | Después de que el subagente usa una herramienta |
Stop | (ninguno) | Cuando el subagente termina (convertido a SubagentStop en tiempo de ejecución) |
PreToolUse y ejecuta un linter después de ediciones de archivo con PostToolUse:
Stop en frontmatter se convierten automáticamente a eventos SubagentStop.
Project-level hooks for subagent events
Configura hooks ensettings.json que respondan a eventos del ciclo de vida del subagente en la sesión principal.
| Event | Matcher input | When it fires |
|---|---|---|
SubagentStart | Nombre de tipo de agente | Cuando un subagente comienza la ejecución |
SubagentStop | (ninguno) | Cuando cualquier subagente se completa |
SubagentStart soporta matchers para dirigirse a tipos de agentes específicos por nombre. SubagentStop se dispara para todas las completaciones de subagentes independientemente de los valores del matcher. Este ejemplo ejecuta un script de configuración solo cuando el subagente db-agent comienza, y un script de limpieza cuando cualquier subagente se detiene:
Work with subagents
Understand automatic delegation
Claude delega automáticamente tareas basadas en la descripción de la tarea en tu solicitud, el campodescription en configuraciones de subagentes, y contexto actual. Para alentar delegación proactiva, incluye frases como “use proactively” en el campo description de tu subagente.
También puedes solicitar un subagente específico explícitamente:
Run subagents in foreground or background
Los subagentes pueden ejecutarse en primer plano (bloqueante) o fondo (concurrente):- Foreground subagents bloquean la conversación principal hasta completarse. Los prompts de permiso y preguntas aclaratorias (como
AskUserQuestion) se pasan a través hacia ti. - Background subagents se ejecutan concurrentemente mientras continúas trabajando. Antes de lanzar, Claude Code solicita cualquier permiso de herramienta que el subagente necesitará, asegurando que tenga las aprobaciones necesarias por adelantado. Una vez en ejecución, el subagente hereda estos permisos y auto-deniega cualquier cosa no pre-aprobada. Si un subagente de fondo necesita hacer preguntas aclaratorias, esa llamada de herramienta falla pero el subagente continúa. Las herramientas MCP no están disponibles en subagentes de fondo.
- Pedir a Claude que “run this in the background”
- Presionar Ctrl+B para poner en fondo una tarea en ejecución
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS a 1. Consulta Variables de entorno.
Common patterns
Isolate high-volume operations
Uno de los usos más efectivos para subagentes es aislar operaciones que producen grandes cantidades de salida. Ejecutar pruebas, obtener documentación, o procesar archivos de registro puede consumir contexto significativo. Al delegar estos a un subagente, la salida detallada permanece en el contexto del subagente mientras solo el resumen relevante regresa a tu conversación principal.Run parallel research
Para investigaciones independientes, genera múltiples subagentes para trabajar simultáneamente:Chain subagents
Para flujos de trabajo de múltiples pasos, pide a Claude que use subagentes en secuencia. Cada subagente completa su tarea y devuelve resultados a Claude, que luego pasa contexto relevante al siguiente subagente.Choose between subagents and main conversation
Usa la conversación principal cuando:- La tarea necesita frecuente ida y vuelta o refinamiento iterativo
- Múltiples fases comparten contexto significativo (planificación → implementación → prueba)
- Estás haciendo un cambio rápido y dirigido
- La latencia importa. Los subagentes comienzan frescos y pueden necesitar tiempo para recopilar contexto
- La tarea produce salida detallada que no necesitas en tu contexto principal
- Quieres aplicar restricciones de herramientas o permisos específicos
- El trabajo es autónomo y puede devolver un resumen
Los subagentes no pueden generar otros subagentes. Si tu flujo de trabajo requiere delegación anidada, usa Skills o encadena subagentes desde la conversación principal.
Manage subagent context
Resume subagents
Cada invocación de subagente crea una nueva instancia con contexto fresco. Para continuar el trabajo de un subagente existente en lugar de comenzar de nuevo, pide a Claude que lo reanude. Los subagentes reanudados retienen su historial de conversación completo, incluyendo todas las llamadas de herramienta anteriores, resultados y razonamiento. El subagente continúa exactamente donde se detuvo en lugar de comenzar de nuevo. Cuando un subagente se completa, Claude recibe su ID de agente. Para reanudar un subagente, pide a Claude que continúe el trabajo anterior:~/.claude/projects/{project}/{sessionId}/subagents/. Cada transcripción se almacena como agent-{agentId}.jsonl.
Las transcripciones de subagentes persisten independientemente de la conversación principal:
- Compactación de conversación principal: Cuando la conversación principal se compacta, las transcripciones de subagentes no se ven afectadas. Se almacenan en archivos separados.
- Persistencia de sesión: Las transcripciones de subagentes persisten dentro de su sesión. Puedes reanudar un subagente después de reiniciar Claude Code reanudando la misma sesión.
- Limpieza automática: Las transcripciones se limpian basadas en la configuración
cleanupPeriodDays(por defecto: 30 días).
Auto-compaction
Los subagentes soportan compactación automática usando la misma lógica que la conversación principal. Por defecto, la compactación automática se dispara aproximadamente al 95% de capacidad. Para disparar compactación más temprano, estableceCLAUDE_AUTOCOMPACT_PCT_OVERRIDE a un porcentaje más bajo (por ejemplo, 50). Consulta variables de entorno para detalles.
Los eventos de compactación se registran en archivos de transcripción de subagentes:
preTokens muestra cuántos tokens se usaron antes de que ocurriera la compactación.
Example subagents
Estos ejemplos demuestran patrones efectivos para construir subagentes. Úsalos como puntos de partida, o genera una versión personalizada con Claude.Code reviewer
Un subagente de solo lectura que revisa código sin modificarlo. Este ejemplo muestra cómo diseñar un subagente enfocado con acceso limitado a herramientas (sin Edit o Write) y un prompt detallado que especifica exactamente qué buscar y cómo formatear la salida.Debugger
Un subagente que puede tanto analizar como arreglar problemas. A diferencia del revisor de código, este incluye Edit porque arreglar bugs requiere modificar código. El prompt proporciona un flujo de trabajo claro desde diagnóstico hasta verificación.Data scientist
Un subagente específico de dominio para trabajo de análisis de datos. Este ejemplo muestra cómo crear subagentes para flujos de trabajo especializados fuera de tareas de codificación típicas. Explícitamente establecemodel: sonnet para análisis más capaz.
Database query validator
Un subagente que permite acceso Bash pero valida comandos para permitir solo consultas SQL de solo lectura. Este ejemplo muestra cómo usar hooksPreToolUse para validación condicional cuando necesitas control más fino que el campo tools proporciona.
command en tu configuración de hook:
tool_input.command. El código de salida 2 bloquea la operación y alimenta el mensaje de error de vuelta a Claude. Consulta Hooks para detalles sobre códigos de salida y Hook input para el esquema de entrada completo.
Next steps
Ahora que entiendes subagentes, explora estas características relacionadas:- Distribuir subagentes con plugins para compartir subagentes entre equipos o proyectos
- Ejecutar Claude Code programáticamente con el Agent SDK para CI/CD y automatización
- Usar servidores MCP para dar a los subagentes acceso a herramientas externas y datos