- 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 mensajes del sistema enfocados para dominios específicos
- Controlar costos enrutando tareas a modelos más rápidos y económicos como Haiku
Subagentes integrados
Claude Code incluye subagentes integrados que Claude utiliza 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.
- Modelo: Haiku (rápido, baja latencia)
- Herramientas: Herramientas de solo lectura (acceso denegado a herramientas de Escritura y Edición)
- Propósito: Descubrimiento de archivos, búsqueda de código, exploración de base de código
Inicio rápido: crea tu primer subagente
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.
1
Abre la interfaz de subagentes
En Claude Code, ejecuta:
2
Crea un nuevo agente a nivel de usuario
Selecciona Create new agent, luego elige User-level. Esto guarda el subagente en
~/.claude/agents/ para que esté disponible en todos tus proyectos.3
Generar con Claude
Selecciona Generate with Claude. Cuando se te pida, describe el subagente:Claude genera el mensaje del sistema y la configuración. Presiona
e para abrirlo en tu editor si deseas personalizarlo.4
Selecciona herramientas
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.
5
Selecciona modelo
Elige qué modelo usa el subagente. Para este agente de ejemplo, selecciona Sonnet, que equilibra capacidad y velocidad para analizar patrones de código.
6
Elige un color
Elige un color de fondo para el subagente. Esto te ayuda a identificar qué subagente se está ejecutando en la interfaz de usuario.
7
Guarda e intenta
Guarda el subagente. Está disponible inmediatamente (no se necesita reiniciar). Intenta:Claude delega en tu nuevo subagente, que escanea la base de código y devuelve sugerencias de mejora.
Configurar subagentes
Usa el comando /agents
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 con Claude
- Editar la configuración de subagentes existentes y acceso a herramientas
- Eliminar subagentes personalizados
- Ver qué subagentes están activos cuando existen duplicados
Elige el alcance del subagente
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.| Ubicación | Alcance | Prioridad | Cómo crear |
|---|---|---|---|
Bandera CLI --agents | 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 |
Directorio agents/ del plugin | 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.
Los subagentes de usuario (~/.claude/agents/) son subagentes personales disponibles en todos tus proyectos.
Los subagentes definidos por CLI 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 mensaje del sistema (equivalente al cuerpo markdown en subagentes basados en archivos). Consulta la referencia CLI para el formato JSON completo.
Los subagentes de plugin provienen de plugins que has instalado. Aparecen en /agents junto a tus subagentes personalizados. Consulta la referencia de componentes de plugin para detalles sobre la creación de subagentes de plugin.
Escribe archivos de subagentes
Los archivos de subagentes usan frontmatter YAML para configuración, seguido del mensaje 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.Campos de frontmatter soportados
Los siguientes campos se pueden usar en el frontmatter YAML. Soloname y description son requeridos.
| Campo | Requerido | Descripción |
|---|---|---|
name | Sí | Identificador único usando letras minúsculas y guiones |
description | Sí | 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 sonnet |
permissionMode | No | Modo de permiso: default, acceptEdits, dontAsk, bypassPermissions, o plan |
skills | No | Habilidades a cargar en el contexto del subagente al inicio. El contenido completo de la habilidad se inyecta, no solo se pone disponible para invocación. Los subagentes no heredan habilidades de la conversación principal |
hooks | No | Hooks de ciclo de vida limitados a este subagente |
Elige un modelo
El campomodel controla qué modelo de IA usa el subagente:
- Alias de modelo: Usa uno de los alias disponibles:
sonnet,opus, ohaiku - inherit: Usa el mismo modelo que la conversación principal (útil para consistencia)
- Omitido: Si no se especifica, usa el modelo predeterminado configurado para subagentes (
sonnet)
Controla las capacidades del subagente
Puedes controlar qué pueden hacer los subagentes a través del acceso a herramientas, modos de permiso y reglas condicionales.Herramientas disponibles
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):
Modos de permiso
El campopermissionMode controla cómo el subagente maneja los mensajes de permiso. Los subagentes heredan el contexto de permiso de la conversación principal pero pueden anular el modo.
| Modo | Comportamiento |
|---|---|
default | Verificación de permiso estándar con mensajes |
acceptEdits | Auto-aceptar ediciones de archivo |
dontAsk | Auto-denegar mensajes de permiso (las herramientas explícitamente permitidas aún funcionan) |
bypassPermissions | Saltar todas las verificaciones de permiso |
plan | Modo plan (exploración de solo lectura) |
bypassPermissions, esto toma precedencia y no puede ser anulado.
Precarga de habilidades en subagentes
Usa el camposkills para inyectar contenido de habilidad en el contexto de un subagente al inicio. Esto le da al subagente conocimiento de dominio sin requerir que descubra y cargue habilidades durante la ejecución.
Esto es lo inverso de ejecutar una habilidad en un subagente. Con
skills en un subagente, el subagente controla el mensaje del sistema y carga contenido de habilidad. Con context: fork en una habilidad, el contenido de la habilidad se inyecta en el agente que especifiques. Ambos usan el mismo sistema subyacente.Reglas condicionales con 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:
Deshabilita subagentes específicos
Puedes prevenir que Claude use subagentes específicos agregándolos al arraydeny en tu configuración. Usa el formato Task(subagent-name) donde subagent-name coincide con el campo name del subagente.
--disallowedTools:
Define hooks para subagentes
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 en frontmatter de subagente
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.| Evento | Entrada del matcher | Cuándo se dispara |
|---|---|---|
PreToolUse | Nombre de herramienta | Antes de que el subagente use una herramienta |
PostToolUse | Nombre de herramienta | Después de que el subagente use una herramienta |
Stop | (ninguno) | Cuando el subagente termina |
PreToolUse y ejecuta un linter después de ediciones de archivo con PostToolUse:
Stop en frontmatter se convierten automáticamente a eventos SubagentStop.
Hooks a nivel de proyecto para eventos de subagente
Configura hooks ensettings.json que respondan a eventos del ciclo de vida del subagente en la sesión principal. Usa el campo matcher para dirigirse a tipos de agentes específicos por nombre.
| Evento | Entrada del matcher | Cuándo se dispara |
|---|---|---|
SubagentStart | Nombre del tipo de agente | Cuando un subagente comienza la ejecución |
SubagentStop | Nombre del tipo de agente | Cuando un subagente se completa |
db-agent comienza y se detiene:
Trabaja con subagentes
Entiende la delegación automática
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 fomentar la 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:
Ejecuta subagentes en primer plano o segundo plano
Los subagentes pueden ejecutarse en primer plano (bloqueante) o segundo plano (concurrente):- Los subagentes en primer plano bloquean la conversación principal hasta completarse. Los mensajes de permiso y preguntas aclaratorias (como
AskUserQuestion) se pasan a ti. - Los subagentes en segundo plano se ejecutan concurrentemente mientras continúas trabajando. Heredan los permisos del principal y auto-niegan cualquier cosa no pre-aprobada. Si un subagente en segundo plano necesita un permiso que no tiene o necesita hacer preguntas aclaratorias, esa llamada de herramienta falla pero el subagente continúa. Las herramientas MCP no están disponibles en subagentes en segundo plano.
- Pedirle a Claude que “run this in the background”
- Presionar Ctrl+B para enviar una tarea en ejecución al segundo plano
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS en 1. Consulta Variables de entorno.
Patrones comunes
Aísla operaciones de alto volumen
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.Ejecuta investigación en paralelo
Para investigaciones independientes, genera múltiples subagentes para trabajar simultáneamente:Encadena subagentes
Para flujos de trabajo de múltiples pasos, pídele 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.Elige entre subagentes y conversación principal
Usa la conversación principal cuando:- La tarea necesita ida y vuelta frecuente 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 reunir 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 Habilidades o encadena subagentes desde la conversación principal.
Gestiona el contexto del subagente
Reanuda subagentes
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, pídele 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, pídele 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(predeterminado: 30 días).
Compactación automática
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.
Subagentes de ejemplo
Estos ejemplos demuestran patrones efectivos para construir subagentes. Úsalos como puntos de partida, o genera una versión personalizada con Claude.Revisor de código
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 Edición o Escritura) y un mensaje detallado que especifica exactamente qué buscar y cómo formatear la salida.Depurador
Un subagente que puede tanto analizar como corregir problemas. A diferencia del revisor de código, este incluye Edit porque corregir bugs requiere modificar código. El mensaje proporciona un flujo de trabajo claro desde diagnóstico hasta verificación.Científico de datos
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. Establece explícitamentemodel: sonnet para análisis más capaz.
Validador de consultas de base de datos
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.
Próximos pasos
Ahora que entiendes los subagentes, explora estas características relacionadas:- Distribuye subagentes con plugins para compartir subagentes entre equipos o proyectos
- Ejecuta Claude Code programáticamente con el Agent SDK para CI/CD y automatización
- Usa servidores MCP para dar a los subagentes acceso a herramientas externas y datos