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 a ese programa hijos recopiladores que se pueden esperar, resultados estructurados,
concurrencia limitada e informes de progreso.
Habilitar Swarm
La ruta recomendada es Settings → Labs → Swarm en la interfaz de control. El conmutador surte efecto inmediatamente y escribetools.swarm.enabled en la
configuración.
También se 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.
Se puede reemplazar la configuración de Swarm para un agente configurado con
agents.entries.*.tools.swarm. El objeto por agente se combina sobre el objeto de nivel superior
tools.swarm.
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,
la política 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 nombrar un destino configurado
permitido por la política subagents.allowAgents del solicitante. OpenClaw rechaza
un destino desconocido o no permitido 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 hijo. Con un
esquema JSON, se resuelve con el valor enviado mediante la herramienta
structured_output del hijo. Un hijo con errores, finalizado, cuyo tiempo de espera se haya agotado o cuyo esquema no sea 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.
Use label para asignar al hijo un nombre reconocible en el panel y la barra lateral. Use
phase en las opciones para publicar una fase inmediatamente antes de que se inicie ese hijo,
o llame a phase() cuando varios hijos pertenezcan a la misma etapa.
log() publica una nota breve de progreso. Las llamadas de progreso son de ejecución y olvido;
no retrasan el script si la interfaz no está disponible.
Distribuir en paralelo con resultados estructurados
Este ejemplo inicia un investigador por tema, espera a que todos terminen y, a continuación, pide a un último hijo que sintetice sus informes estructurados:Promise.all es el límite de distribución y recopilación. OpenClaw inicia hasta
maxConcurrent hijos para el grupo y pone el resto en cola en el orden de
envío.
El Modo de código limita por separado las llamadas simultáneas al puente invitado mediante
tools.codeMode.maxPendingToolCalls (valor predeterminado 16, máximo 128). Para grupos muy
grandes, inicie lotes limitados por debajo de ese límite y deje margen para
phase(), log() y las transiciones de espera de los hijos. maxConcurrent limita los hijos en
ejecución; no aumenta el límite de llamadas al puente invitado.
Repetir según una puerta de decisión
Use un buclewhile limitado cuando cada pasada determine si se
necesita otra:
maxTotalPerGroup es el mecanismo de protección final,
no un sustituto de una condición de parada clara.
Procesar el primer hijo que termine
agents.run() devuelve una promesa normal, por lo que Promise.race puede reaccionar al
primer hijo del Modo de código. Para los arneses que llaman a las herramientas de nivel inferior,
agents_wait proporciona el mismo límite de primera finalización: devuelve el resultado en cuanto
se completa al menos una ejecución solicitada o cuando se agota el tiempo de espera limitado.
Consulte Usar Swarm desde otros arneses para ver el
bucle de vaciado completo.
Comportamiento de los hijos recopiladores
Los hijos recopiladores son sesiones ordinarias y aisladas de subagentes con una ruta de finalización diferente. Escriben un resultado duradero del recopilador para que el padre lo espere, 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 designarlo 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
hijo 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 tampoco
se valida, la finalización del recopilador conserva el texto sin procesar del hijo, deja
structured sin definir e incluye schemaError. El resultado de bajo nivel agents_wait
expone esos campos para la lógica de recuperación explícita.
Los hijos son hojas
Los hijos de Swarm son hojas de forma predeterminada. La protección universalagents.defaults.subagents.maxSpawnDepth evita que un hijo cree
sus propios hijos con la profundidad predeterminada de 1. El patrón de orquestación habitual consiste en
devolver el trabajo al padre, no crear más trabajo desde un hijo:
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 hijo tiene un propietario de admisión. Los hijos de anuncio e interactivos usan
agents.defaults.subagents.maxChildrenPerAgent (valor predeterminado 5) y no cuentan
los hijos recopiladores. Los hijos recopiladores usan únicamente maxChildrenPerGroup y
maxTotalPerGroup; no consumen el presupuesto de hijos por sesión. La protección de
profundidad de creación se sigue aplicando a ambos modos.
Tras la admisión, los hijos por encima de maxConcurrent se ponen en cola FIFO dentro de su grupo de Swarm,
anidado dentro del carril global de subagentes. Estas capas de concurrencia ponen el trabajo
en cola en lugar de rechazarlo. La creación de un recopilador que supere cualquiera de los límites del grupo
se rechaza con 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 haya un Swarm activo. El widget de Swarm representa cada grupo de recopiladores activo como un punto por hijo con estado en cola, en ejecución, completado o con errores. 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 normal de padre e hijos. Expanda la fila del padre para inspeccionar un hijo recopilador o abrir su transcripción sin perder la jerarquía de Swarm. Los resultados de los recopiladores siguen disponibles para esperarlos hasta que se archiva su grupo. Cuando todos los miembros alcanzan su fecha límite de retención, OpenClaw archiva los hijos del grupo como un lote para que los enjambres completados no permanezcan en el árbol de sesiones activas.Usar Swarm desde otros arneses
Se puede usar Swarm sin el modo de código de OpenClaw. Sus herramientas principales son independientes del arnés: inicie hijos recopiladores consessions_spawn({ collect: true }) y procéselos con llamadas acotadas a agents_wait.
El modo de código de Codex expone automáticamente las herramientas dinámicas de OpenClaw aptas bajo
tools.*. No usa la API de invitado 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.
Con el entorno de ejecución de Codex compatible actualmente, los resultados de las herramientas dinámicas de OpenClaw llegan al
modo de código como texto JSON. Analice cada resultado antes de leer los campos. Codex también
serializa las llamadas a herramientas dinámicas, por lo que Promise.all no envía varias
llamadas a sessions_spawn simultáneamente. Inicie los recopiladores en un bucle acotado;
los hijos ya aceptados pueden seguir ejecutándose mientras se envían los inicios posteriores.
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 a hilos, las sesiones
visibles ni el modo de sesión persistente.
Límites y hoja de ruta
Swarm v1 ejecuta hijos recopiladores de una sola ejecución; la APIagents.session() prevista
añadirá trabajadores con estado y varios turnos. Actualmente, los hijos se ejecutan en el
carril de subagentes del Gateway local; la ubicación en la nube está prevista como una opción
explícita de inicio. Las definiciones de flujo de trabajo guardadas y un DSL de grafos no forman parte de la
dirección actual de Swarm.
Contenido relacionado
- Modo de código para conocer el entorno de ejecución de invitado QuickJS y las reglas de activación
- Subagentes para conocer la política de los hijos, el aislamiento y el comportamiento de las sesiones
- Herramientas de entorno aislado multiagente para conocer las restricciones por agente
- Descripción general de las herramientas para conocer los perfiles de herramientas y el enrutamiento de políticas