Promise.all, while y if, para distribuir el trabajo, recopilar
resultados y tomar decisiones.
No hay ningún DSL de grafos ni un formato de flujo de trabajo independiente. El programa es la
orquestación. Swarm añade al programa procesos secundarios recopiladores que admiten espera, resultados estructurados,
concurrencia limitada e informes de progreso.
Habilitar Swarm
La opción recomendada es Settings → Labs → Swarm en la interfaz de control. El interruptor entra en vigor inmediatamente y escribetools.swarm.enabled en la
configuración.
También puede habilitar Swarm directamente en openclaw.json:
Los valores numéricos deben ser enteros positivos. OpenClaw limita
maxConcurrent a 1–1000, maxChildrenPerGroup a 1–10000,
maxTotalPerGroup a 1–100000 y waitTimeoutSecondsMax a
1–86400.
Puede sobrescribir Swarm para un agente configurado con
agents.list[].tools.swarm. El objeto por agente se combina sobre el objeto
tools.swarm de nivel superior.
Requisitos
Las variables globales invitadasagents.run, phase y log requieren tanto Swarm como
el Modo de código de OpenClaw:
sessions_spawn. Los perfiles de herramientas,
las políticas de permisos y denegaciones, las reglas del proveedor y la política del entorno aislado pueden eliminar esa herramienta.
Consulte Activación del Modo de código y
Subagentes si un script informa de que sessions_spawn no está
disponible.
Los valores defaultAgentId y agentId por ejecución deben indicar un destino configurado
permitido por la política subagents.allowAgents del solicitante. OpenClaw rechaza
los destinos desconocidos o no permitidos en lugar de recurrir a otro agente.
Escribir un script de Swarm
Cuando Swarm está habilitado, el Modo de código expone esta API invitada:schema, agents.run() se resuelve con el texto final del proceso secundario. Con un
esquema JSON, se resuelve con el valor enviado mediante la herramienta
structured_output del proceso secundario. Un proceso secundario fallido, terminado, con tiempo de espera agotado o con un esquema no válido
rechaza la promesa con un SwarmAgentError. Consulte las declaraciones generadas exactas
y los patrones breves de orquestación en API.read("agents.d.ts")
dentro del Modo de código.
Utilice label para asignar al proceso secundario un nombre reconocible en el panel y la barra lateral. Utilice
phase en las opciones para publicar una fase inmediatamente antes de que se inicie ese proceso secundario,
o llame a phase() cuando varios procesos secundarios pertenezcan a la misma etapa.
log() publica una breve nota de progreso. Las llamadas de progreso son de ejecución asíncrona sin espera;
no retrasan el script si la interfaz de usuario no está disponible.
Distribuir en paralelo con resultados estructurados
Este ejemplo inicia un investigador por tema, espera a que todos terminen y, después, solicita a un proceso secundario final que sintetice sus informes estructurados:Promise.all es el límite de distribución y recopilación. OpenClaw inicia hasta
maxConcurrent procesos secundarios para el grupo y pone el resto en cola según el orden
de envío.
Repetir según una condición de decisión
Utilice un buclewhile limitado cuando cada iteración determine si se necesita
otra:
maxTotalPerGroup es el mecanismo de seguridad
final, no un sustituto de una condición de finalización clara.
Procesar el primer proceso secundario que termine
agents.run() devuelve una promesa ordinaria, por lo que Promise.race puede reaccionar al
primer proceso secundario del Modo de código. Para los sistemas de pruebas que llaman a las herramientas de nivel inferior,
agents_wait proporciona el mismo límite de primera finalización: devuelve el resultado en cuanto
finaliza al menos una ejecución solicitada o cuando vence el tiempo de espera limitado.
Consulte Usar Swarm desde otros sistemas de pruebas para ver el
bucle de vaciado completo.
Comportamiento de los procesos secundarios recopiladores
Los procesos secundarios recopiladores son sesiones de subagentes aisladas ordinarias con una ruta de finalización diferente. Escriben un resultado de recopilación persistente que el proceso principal puede esperar, en lugar de anunciar o dirigir una respuesta de vuelta a la sesión principal. El agente de destino se resuelve en este orden:agentIden la llamada de creación oagents.run().tools.swarm.defaultAgentId.- El agente solicitante.
worker integrado; configure uno antes de establecerlo como predeterminado.
Refuerce ese trabajador con tools.swarm: false en su configuración por agente para que
pueda ser creado, pero no pueda iniciar Swarms desde sus propias sesiones de nivel superior:
structured_output al
proceso secundario y valida su carga útil con el esquema JSON proporcionado. Una carga útil no
válida o ausente recibe un aviso correctivo. Si el reintento sigue sin
validarse, la finalización del recopilador conserva el texto sin procesar del proceso secundario, deja
structured sin definir e incluye schemaError. El resultado agents_wait de
nivel inferior expone esos campos para la lógica de recuperación explícita.
Los procesos secundarios son hojas
Los procesos secundarios de Swarm son hojas de forma predeterminada. La protección universalagents.defaults.subagents.maxSpawnDepth impide que un proceso secundario cree
sus propios procesos secundarios con la profundidad predeterminada de 1. El patrón de orquestación habitual consiste en
devolver el trabajo al proceso principal, no en crear más trabajo desde un proceso secundario:
agents.defaults.subagents.maxSpawnDepth y no se recomiendan para Swarm.
Los límites de grupo, los presupuestos y la observabilidad presuponen grupos de recopiladores planos.
Cada proceso secundario tiene un único propietario de admisión. Los procesos secundarios de anuncio e interactivos utilizan
agents.defaults.subagents.maxChildrenPerAgent (valor predeterminado: 5) y no cuentan
los procesos secundarios recopiladores. Los procesos secundarios recopiladores solo utilizan maxChildrenPerGroup y
maxTotalPerGroup; no consumen el presupuesto de procesos secundarios por sesión. La protección de profundidad
de creación sigue aplicándose a ambos modos.
Después de la admisión, los procesos secundarios por encima de maxConcurrent se ponen en cola FIFO dentro de su grupo de Swarm,
anidado en la vía global de subagentes. Estas capas de concurrencia ponen
el trabajo en cola en lugar de rechazarlo. Una creación de recopilador que exceda cualquiera de los límites del grupo
se rechaza e incluye la clave de configuración correspondiente en el error.
Observar un Swarm
Abra el panel de la sesión principal en la interfaz de control mientras un Swarm esté activo. El widget de Swarm representa cada grupo de recopiladores activo como un punto por proceso secundario con el estado en cola, en ejecución, completado o fallido. Las etiquetas aparecen en la información emergente de los puntos, por lo que las etiquetas breves y estables facilitan la lectura de los Swarms más grandes. La barra lateral de la sesión conserva el árbol principal/secundario habitual. Expanda la fila del proceso principal para inspeccionar un proceso secundario recopilador o abrir su transcripción sin perder la jerarquía del Swarm. Los resultados de los recopiladores se pueden seguir esperando hasta que se archive su grupo. Una vez que todos los miembros alcanzan su plazo de retención, OpenClaw archiva los procesos secundarios del grupo como un lote para que los Swarms completados no permanezcan en el árbol de sesiones activo.Usar Swarm desde otros sistemas de pruebas
Se puede usar Swarm sin el modo Code de OpenClaw. Sus herramientas principales son independientes del arnés: inicie procesos secundarios recopiladores consessions_spawn({ collect: true }) y procéselos mediante llamadas limitadas a agents_wait.
El modo Code de Codex expone automáticamente las herramientas dinámicas de OpenClaw aptas bajo
tools.*. No usa la API invitada QuickJS de OpenClaw ni requiere
tools.codeMode, pero tools.swarm debe seguir habilitado. Las llamadas
agents_wait del arnés de Codex admiten el tiempo de espera completo de 600 segundos. Use este patrón:
agents_wait acepta entre 1 y 1000 identificadores de ejecución. Devuelve:
pending esté vacío. El modo recopilador admite
subagentes nativos de OpenClaw; no admite el entorno de ejecución ACP, la vinculación de hilos, sesiones
visibles ni el modo de sesión persistente.
Límites y hoja de ruta
Swarm v1 ejecuta procesos secundarios recopiladores de una sola ejecución; la APIagents.session()
prevista añadirá procesos de trabajo con estado y múltiples turnos. Actualmente, los procesos secundarios se ejecutan en el
canal de subagentes del Gateway local; la ubicación en la nube está prevista como una opción
explícita de inicio. Las definiciones de flujos de trabajo guardadas y un DSL de grafos no forman parte de la
orientación actual de Swarm.
Contenido relacionado
- Modo Code para el entorno de ejecución invitado QuickJS y las reglas de activación
- Subagentes para la política de procesos secundarios, el aislamiento y el comportamiento de las sesiones
- Herramientas de entorno aislado multiagente para las restricciones por agente
- Descripción general de las herramientas para los perfiles de herramientas y el enrutamiento de políticas