logo
Desarrollo
Buscar
Sistema de subagentes

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
systemPrompt Definición de la identidad/rol del subagente
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:

  1. El Agent principal decide crear un subagente y especifica la tarea
  2. El sistema inicia un Agent Loop independiente (máximo 50 rondas por defecto)
  3. El subagente dispone de su propio bucle de herramientas y su proceso de ejecución es visible en la ventana de conversación principal
  4. Una vez completado, el subagente devuelve el resultado final al Agent principal
  5. 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:

  1. El Agent principal consulta la lista de nodos en línea (inyectada en el system prompt)
  2. Selecciona el nodo objetivo según la declaración de capacidades de cada nodo
  3. Envía node.invoke.request a través del WebSocket del Gateway
  4. El nodo remoto inicia un Agent Loop independiente para ejecutar la tarea
  5. 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: 最深层代理(不可再委派)
                      
                      深度 0:  Agent(用户对话)
  └── 深度 1: 子代理 A
        └── 深度 2: 子子代理 A-1
              └── 深度 3: 最深层代理(不可再委派)

                    
Este bloque de código en una ventana flotante
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:

Presentación de la llamada a herramientas del subagente-CN

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

Proceso de ejecución del subagente-CN

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