Grupos de Difusión
Difundir un mensaje de WhatsApp a múltiples agentes
Experimental
Los Grupos de Difusión permiten que múltiples agentes procesen y respondan al mismo mensaje simultáneamente. Esto te permite crear equipos de agentes especializados que trabajan juntos en un solo grupo de WhatsApp o DM — todos usando un número de teléfono.
Alcance actual: solo WhatsApp (canal web).
Los grupos de difusión se evalúan después de las listas de permitidos del canal y las reglas de activación de grupos. En grupos de WhatsApp, esto significa que las difusiones ocurren cuando OpenClaw normalmente respondería (por ejemplo: al mencionar, dependiendo de la configuración de tu grupo).
Casos de Uso
1. Equipos de Agentes Especializados
Despliega múltiples agentes con responsabilidades atómicas y enfocadas:
Group: "Development Team" Agents: - CodeReviewer (reviews code snippets) - DocumentationBot (generates docs) - SecurityAuditor (checks for vulnerabilities) - TestGenerator (suggests test cases)
Cada agente procesa el mismo mensaje y proporciona su perspectiva especializada.
2. Soporte Multi-Idioma
Group: "International Support" Agents: - Agent_EN (responds in English) - Agent_DE (responds in German) - Agent_ES (responds in Spanish)
3. Flujos de Trabajo de Aseguramiento de Calidad
Group: "Customer Support" Agents: - SupportAgent (provides answer) - QAAgent (reviews quality, only responds if issues found)
4. Automatización de Tareas
Group: "Project Management" Agents: - TaskTracker (updates task database) - TimeLogger (logs time spent) - ReportGenerator (creates summaries)
Configuración
Agrega una sección ''broadcast'' de nivel superior (junto a ''bindings''). Las claves son IDs de pares de WhatsApp:
- chats de grupo: JID del grupo (ej. ''[email protected]'')
- DMs: número de teléfono E.164 (ej. ''+15551234567'')
{
"broadcast": {
"[email protected]": ["alfred", "baerbel", "assistant3"]
}
}Resultado: Cuando OpenClaw respondería en este chat, ejecutará los tres agentes.
Estrategia de Procesamiento
Controla cómo los agentes procesan mensajes:
Paralelo (Predeterminado): Todos los agentes procesan simultáneamente:
{
"broadcast": {
"strategy": "parallel",
"[email protected]": ["alfred", "baerbel"]
}
}Secuencial: Los agentes procesan en orden (uno espera a que el anterior termine):
{
"broadcast": {
"strategy": "sequential",
"[email protected]": ["alfred", "baerbel"]
}
}Ejemplo Completo
{
"agents": {
"list": [
{
"id": "code-reviewer",
"name": "Code Reviewer",
"workspace": "/path/to/code-reviewer",
"sandbox": { "mode": "all" }
},
{
"id": "security-auditor",
"name": "Security Auditor",
"workspace": "/path/to/security-auditor",
"sandbox": { "mode": "all" }
},
{
"id": "docs-generator",
"name": "Documentation Generator",
"workspace": "/path/to/docs-generator",
"sandbox": { "mode": "all" }
}
]
},
"broadcast": {
"strategy": "parallel",
"[email protected]": ["code-reviewer", "security-auditor", "docs-generator"],
"[email protected]": ["support-en", "support-de"],
"+15555550123": ["assistant", "logger"]
}
}Cómo Funciona
Flujo de Mensajes
1. Mensaje entrante llega a un grupo de WhatsApp
2. ''Verificación de difusión'': El sistema verifica si el ID del par está en ''broadcast''
3. Si está en la lista de difusión:
- Todos los agentes listados procesan el mensaje
- Cada agente tiene su propia clave de sesión y contexto aislado
- Los agentes procesan en paralelo (predeterminado) o secuencialmente
4. Si no está en la lista de difusión:
- Se aplica el enrutamiento normal (primer binding coincidente)
Nota: los grupos de difusión no evaden las listas de permitidos del canal o las reglas de activación de grupos (menciones/comandos/etc). Solo cambian qué agentes se ejecutan cuando un mensaje es elegible para procesamiento.
Aislamiento de Sesión
Cada agente en un grupo de difusión mantiene completamente separados:
- ''Claves de sesión'' (''agent:alfred:whatsapp:group:120363...'' vs ''agent:baerbel:whatsapp:group:120363...'')
- Historial de conversación (el agente no ve los mensajes de otros agentes)
- Workspace (sandboxes separados si están configurados)
- Acceso a herramientas (diferentes listas de permitidos/denegados)
- Memoria/contexto (IDENTITY.md, SOUL.md, etc. separados)
- Búfer de contexto de grupo (mensajes recientes del grupo usados para contexto) se comparte por par, así que todos los agentes de difusión ven el mismo contexto cuando se activan
Esto permite que cada agente tenga:
- Diferentes personalidades
- Diferente acceso a herramientas (ej., solo lectura vs. lectura-escritura)
Mejores Prácticas
1. Mantén los Agentes Enfocados
Diseña cada agente con una sola responsabilidad clara.
2. Usa Nombres Descriptivos
Haz claro qué hace cada agente.
3. Configura Diferente Acceso a Herramientas
Da a los agentes solo las herramientas que necesitan.
4. Monitorea el Rendimiento
Con muchos agentes, considera usar ''"strategy": "parallel"'', limitar el tamaño del grupo, y usar modelos más rápidos.
5. Maneja Fallos con Elegancia
Los agentes fallan independientemente. El error de un agente no bloquea a otros.
Solución de Problemas
Agentes No Responden
Verifica:
1. Los IDs de agentes existen en ''agents.list''
2. El formato del ID del par es correcto (ej. ''[email protected]'')
3. Los agentes no están en listas de denegados
Depurar:
tail -f ~/.openclaw/logs/gateway.log | grep broadcast
Solo Un Agente Responde
Causa: El ID del par podría estar en ''bindings'' pero no en ''broadcast''.
Solución: Agrega a la configuración de broadcast o elimina de bindings.