Sistema de subagentes
Descripción general
El subagente (Subagent) es el mecanismo de descomposición y delegación de tareas del espacio de trabajo. El Agent principal puede dividir tareas paralelas complejas en subtareas, crear subagentes especializados para ejecutarlas de forma independiente y, una vez que el subagente termina, este devuelve el resultado al Agent principal para que continúe su procesamiento.
El sistema admite tres tipos de subagentes, con una profundidad máxima de anidamiento de 3 niveles.
Tres tipos de subagentes
| Tipo | Nombre de la herramienta | Forma de creación | Escenario de aplicación | Ubicación de ejecución |
|---|---|---|---|---|
| Creación automática | create_local_sub_agent |
Creado de forma autónoma por el Agent durante el razonamiento | Descomposición temporal de subtareas | Nodo local |
| Distribución preregistrada | dispatch_sub_agent |
Configurado previamente por el usuario | Roles profesionales fijos de uso repetido | Nodo local |
| Distribución entre nodos | dispatch_multi_node_agent |
El Agent selecciona un nodo remoto | Se requieren recursos o capacidades remotas | Nodo remoto |
Subagente de creación automática (create_local_sub_agent)
Cuando el Agent determina durante el razonamiento que la tarea actual necesita descomponerse, invoca de forma autónoma la herramienta create_local_sub_agent para crear un subagente temporal. El usuario también puede solicitar al Agent que cree un subagente mediante indicaciones en la conversación, por ejemplo:
"Crea un subagente que se encargue de buscar información relevante y luego crea otro subagente que redacte la documentación"
Parámetros de creación:
| Parámetro | Descripción | Obligatorio |
|---|---|---|
task |
Descripción de la tarea del subagente | Sí |
systemPrompt |
Definición de la identidad/rol del subagente | Sí |
cwd |
Directorio de trabajo (por defecto hereda el del nivel superior) | No |
maxSpawnDepth |
Profundidad de anidamiento (1-3), por defecto 1 | No |
Flujo de ejecución:
- El Agent principal decide crear un subagente y especifica la tarea
- El sistema inicia un Agent Loop independiente (máximo 50 rondas por defecto)
- El subagente dispone de su propio bucle de herramientas y su proceso de ejecución es visible en la ventana de conversación principal
- Una vez completado, el subagente devuelve el resultado final al Agent principal
- El Agent principal continúa el trabajo posterior basándose en el resultado
Subagente de distribución preregistrada (dispatch_sub_agent)
El usuario puede preregistrar en la configuración de la APP subagentes con una configuración específica, que el Agent invoca cuando lo necesita mediante la herramienta dispatch_sub_agent.
La descripción del subagente preregistrado se inyecta automáticamente en el system prompt del Agent principal, de modo que, cuando el LLM detecta una tarea coincidente, selecciona automáticamente el subagente adecuado.
Elementos de configuración:
| Configuración | Descripción |
|---|---|
name |
Nombre del subagente |
description |
Descripción de capacidades (se inyecta en el system prompt del Agent principal) |
systemPrompt |
Definición de identidad/rol |
tools |
Lista blanca de herramientas (si se omite, hereda todas) |
disallowedTools |
Lista negra de herramientas |
skills |
Lista de ID de habilidades disponibles |
mcpServers |
Lista de nombres de servidores MCP disponibles |
model |
Sobrescribe el modelo del nivel superior |
maxTurns |
Sobrescribe el número máximo de rondas por defecto |
canSpawn |
Si puede crear subagentes de nivel inferior |
maxSpawnDepth |
Profundidad máxima de anidamiento |
Consulta los detalles de la interfaz de administración en Registro y gestión de subagentes.
Distribución entre nodos (dispatch_multi_node_agent)
Cuando una tarea requiere recursos o capacidades de un dispositivo remoto, el Agent puede distribuir la tarea a otros nodos para su ejecución mediante la herramienta dispatch_multi_node_agent.
Flujo de trabajo:
- El Agent principal consulta la lista de nodos en línea (inyectada en el system prompt)
- Selecciona el nodo objetivo según la declaración de capacidades de cada nodo
- Envía
node.invoke.requesta través del WebSocket del Gateway - El nodo remoto inicia un Agent Loop independiente para ejecutar la tarea
- Una vez completada, devuelve el resultado mediante
node.invoke.result
Ejemplo de escenario:
- Se inicia una conversación en el cliente web del ordenador A
- La tarea necesita acceder a archivos locales del ordenador B
- El Agent distribuye la subtarea de operación de archivos al nodo APP del ordenador B a través del Gateway
- El nodo B ejecuta la tarea y devuelve el resultado, y la conversación continúa mostrándose en el ordenador A
Control de la profundidad de anidamiento
Los subagentes admiten creación anidada, con una profundidad máxima de 3 niveles:
深度 0: 主 Agent(用户对话)
└── 深度 1: 子代理 A
└── 深度 2: 子子代理 A-1
└── 深度 3: 最深层代理(不可再委派)
| Parámetro | Valor | Descripción |
|---|---|---|
DEFAULT_MAX_SPAWN_DEPTH |
1 | Por defecto: el subagente no puede crear niveles inferiores |
MAX_ALLOWED_SPAWN_DEPTH |
3 | Límite máximo estricto |
SUBAGENT_DEFAULT_MAX_TURNS |
50 | Número máximo de rondas por defecto del subagente (superior a las 25 del Agent principal) |
Cuanto mayor sea la profundidad, mayor será la autonomía, pero también aumentarán en consecuencia el consumo de Tokens y el tiempo de ejecución.
Mecanismo de herencia de herramientas
| Modo | Descripción |
|---|---|
| Herencia por defecto | El subagente hereda todas las herramientas disponibles del Agent principal |
| Lista blanca | El parámetro tools especifica la lista de herramientas permitidas |
| Lista negra | El parámetro disallowedTools excluye herramientas concretas |
| Herencia de habilidades | Puede heredar o sobrescribir las habilidades y los servidores MCP del nivel superior |
| Sobrescritura de modelo | El subagente puede usar un modelo LLM distinto al del nivel superior |
Presentación en la interfaz
Los subagentes se muestran con marcas especiales en la ventana de conversación de Work:

| Elemento de presentación | Descripción |
|---|---|
| SubagentToolRow | Fila de llamada a herramientas exclusiva del subagente, con un color distintivo especial (color esmeralda, emerald) |
| Retransmisión de actividad | El proceso de llamada a herramientas del subagente se muestra en tiempo real en la ventana de conversación principal |
| Presentación de resultados | Una vez que el subagente termina, el resultado final se muestra como salida de la herramienta |
El usuario puede ver con claridad qué operaciones ejecuta el Agent principal y cuáles ejecuta el subagente.
Cómo crear subagentes mediante la conversación
Puedes solicitar al Agent que cree subagentes usando lenguaje natural en la conversación. A continuación se muestran algunas indicaciones de ejemplo:
| Indicación | Efecto |
|---|---|
| "Crea un subagente que busque y organice información relevante" | El Agent crea un subagente centrado en la búsqueda |
| "Divide esta tarea en dos subagentes: uno para el código y otro para la documentación" | El Agent crea dos subagentes, cada uno con su especialidad |
| "Ayúdame a crear un subagente con profundidad 2 para gestionar esta tarea compleja" | El Agent crea un subagente que puede delegar a su vez |
| "Usa un nodo remoto para ejecutar esta tarea de procesamiento de archivos" | El Agent usa dispatch_multi_node_agent |
Interpretación de la interfaz durante la ejecución del subagente

| Elemento de la interfaz | Significado |
|---|---|
| Fila de herramienta marcada en color esmeralda | Es la llamada a herramientas que está ejecutando el subagente |
| Llamada a la herramienta "create_local_sub_agent" | El Agent principal está creando un subagente |
| Llamadas a herramientas dentro del subagente | Herramientas que el subagente decide invocar de forma autónoma, mostradas en tiempo real |
| Resultado final | Salida resumida tras la finalización del subagente |
Impacto en los costes
El consumo de tokens de los subagentes se calcula de forma independiente:
| Escenario | Consumo estimado de tokens |
|---|---|
| Solo el Agent principal (sin subagentes) | 1x |
| Agent principal + 1 subagente | 1,5x ~ 2,5x |
| Agent principal + 2 subagentes | 2x ~ 4x |
| Anidamiento de 3 niveles (principal + hijo + nieto + bisnieto) | 3x ~ 6x |
Recomendación: los subagentes son adecuados para tareas complejas que realmente necesitan descomponerse. Para tareas sencillas, deja que el Agent principal las gestione directamente; no es necesario crear subagentes.
Cuándo usar / no usar subagentes
| Adecuado para usar subagentes | No requiere subagentes |
|---|---|
| La tarea se divide de forma natural en partes independientes (p. ej.: buscar información + redactar documentación) | Tarea lineal única (p. ej.: leer un archivo y resumirlo) |
| Se necesitan distintas perspectivas profesionales (p. ej.: revisión de código + auditoría de seguridad) | Preguntas y respuestas sencillas |
| Se necesitan recursos de un nodo remoto (p. ej.: archivos en un servidor remoto) | Operaciones con archivos locales |
| Gran volumen de trabajo que puede acelerarse en paralelo | Tarea sencilla y rápida |
No se recomienda asignar a los SubAgent distintos roles para que colaboren dividiéndose el trabajo; en la era de la IA, la colaboración tiende a reducir la eficiencia y la calidad. Resultan más adecuados para escenarios de ejecución de tareas en paralelo con el fin de ahorrar tiempo y mejorar la eficiencia.
Documentos relacionados
- Registro y gestión de subagentes — Configuración de subagentes preregistrados
- Arquitectura multinodo — Mecanismo subyacente de la distribución entre nodos
- Motor de bucle del Agent — El Agent Loop que utilizan los subagentes
