Enrutamiento Multi-Agente
Ejecuta múltiples agentes aislados en un solo Gateway para separación trabajo/hogar, uso familiar compartido o diferentes personalidades de IA.
1.¿Qué es el Enrutamiento Multi-Agente?
El enrutamiento multi-agente te permite ejecutar múltiples agentes de IA aislados en un solo Gateway de OpenClaw. Cada agente tiene su propia identidad, memoria y configuración, pero comparte la misma infraestructura.
Cada agente tiene:
Identidad Propia
Nombre, personalidad y prompt de sistema separados
Memoria Aislada
Historial de conversación y contexto independientes
Herramientas Personalizadas
Diferentes permisos de herramientas por agente
Vinculaciones de Canal
Enruta canales específicos a agentes específicos
Casos de Uso Comunes
Separación Trabajo/Hogar
Mantén el Slack del trabajo separado del Telegram personal. Diferentes personalidades, diferentes memorias.
Uso Familiar Compartido
Cada miembro de la familia tiene su propio agente con respuestas personalizadas y memoria privada.
Diferentes Personalidades
Un asistente profesional para email, un amigo casual para Discord, un escritor creativo para lluvia de ideas.
Multi-Cuenta
Maneja múltiples números de WhatsApp o cuentas de Telegram con agentes aislados.
2.Conceptos Clave
Cada agente vive en un 'espacio de trabajo' - un directorio que contiene su configuración, memoria y archivos.
~/openclaw/agents/work/ ├── AGENTS.md # Define sub-agents and their specialties ├── SOUL.md # Agent personality and communication style ├── USER.md # Information about the user └── skills/ # Agent-specific skills
- soul.md— Personalidad del agente y prompt de sistema
- user.md— Preferencias del usuario y contexto
- memory/— Historial de conversación y datos
- skills/— Skills personalizados para este agente
Importante
Los agentes comparten el mismo proceso Gateway y claves API. Para aislamiento real (claves API separadas, procesos separados), ejecuta múltiples instancias de Gateway.
- - Los límites de tasa se comparten entre todos los agentes
- - Los costos de API se combinan
- - Un fallo afecta a todos los agentes
Las vinculaciones enrutan los mensajes entrantes al agente correcto basándose en canal, usuario o grupo.
// Example: Route WhatsApp business account to work agent
{
"bindings": [{
"agent": "work",
"channel": "whatsapp",
"accountId": "business-account-id"
}]
}3.Configuración Paso a Paso
Crear un Nuevo Agente
Crea un directorio de espacio de trabajo para tu nuevo agente:
openclaw agents add work
Esto crea un nuevo agente con su propio directorio de espacio de trabajo.
Configurar el Espacio de Trabajo
Crea los archivos de personalidad y usuario del agente:
soul.md - Personalidad del agente:
# Work Assistant Soul You are a professional work assistant. Be formal, concise, and focused on productivity. Avoid casual language. ## Communication Style - Use professional language - Be direct and efficient - Focus on actionable items - Respect work-life boundaries
user.md - Contexto del usuario:
# User Profile - Work Context - Role: Software Engineer at Acme Corp - Working hours: 9 AM - 6 PM PST - Key projects: Project Alpha, Customer Portal - Slack workspace: acme-corp.slack.com
Configurar Vinculaciones de Canal
Enruta canales a tu nuevo agente en openclaw.json:
{
"agents": {
"default": {
"workspace": "~/openclaw/agents/default",
"agentDir": "~/openclaw/state/default"
},
"work": {
"workspace": "~/openclaw/agents/work",
"agentDir": "~/openclaw/state/work"
}
},
"bindings": [
{
"agent": "work",
"channel": "whatsapp",
"accountId": "work-phone-id"
},
{
"agent": "work",
"channel": "slack",
"teamId": "T123ACMECORP"
}
],
"defaultAgent": "default"
}Las vinculaciones le indican a OpenClaw qué agente debe manejar los mensajes de cada canal.
Configurar Seguridad (Opcional)
Establece el modo sandbox y restricciones de herramientas para el agente:
{
"agents": {
"work": {
"workspace": "~/openclaw/agents/work",
"agentDir": "~/openclaw/state/work",
"sandbox": "all",
"tools": {
"allow": ["calendar", "email", "notes"],
"deny": ["shell", "browser"]
}
},
"home": {
"workspace": "~/openclaw/agents/home",
"agentDir": "~/openclaw/state/home",
"sandbox": "non-main",
"tools": {
"allow": ["*"],
"deny": []
}
}
}
}Verificar Configuración
Reinicia OpenClaw y prueba tu configuración multi-agente:
openclaw agents list
openclaw agents test --channel whatsapp --from +1234567890
4.Ejemplos de Configuración
Enruta diferentes números de WhatsApp a diferentes agentes:
{
"agents": {
"personal": { "workspace": "~/.openclaw/personal" },
"business": { "workspace": "~/.openclaw/business" }
},
"bindings": [
{ "channel": "whatsapp:+1234567890", "agent": "personal" },
{ "channel": "whatsapp:+0987654321", "agent": "business" }
]
}Usa GPT-4 para trabajo, Claude para personal:
{
"agents": {
"work": {
"workspace": "~/.openclaw/work",
"model": "gpt-4o"
},
"personal": {
"workspace": "~/.openclaw/personal",
"model": "claude-3-5-sonnet-20241022"
}
}
}Diferentes agentes para diferentes servidores de Discord o espacios de trabajo de Slack:
{
"bindings": [
{ "channel": "discord", "guild": "gaming-server-id", "agent": "gaming-buddy" },
{ "channel": "discord", "guild": "work-server-id", "agent": "work-assistant" },
{ "channel": "slack", "workspace": "company-workspace", "agent": "work-assistant" }
]
}Cada miembro de la familia obtiene su propio agente mediante ID de usuario de Telegram:
{
"agents": {
"dad": { "workspace": "~/.openclaw/dad" },
"mom": { "workspace": "~/.openclaw/mom" },
"kids": { "workspace": "~/.openclaw/kids", "sandbox": "all" }
},
"bindings": [
{ "channel": "telegram", "userId": "123456", "agent": "dad" },
{ "channel": "telegram", "userId": "789012", "agent": "mom" },
{ "channel": "telegram", "userId": "345678", "agent": "kids" }
]
}5.Prioridad de Vinculación
Cuando múltiples vinculaciones podrían coincidir, OpenClaw usa la más específica:
- 1
Específica de usuario
Las vinculaciones con userId coinciden primero
{ "channel": "telegram", "userId": "123", "agent": "personal" } - 2
Específica de grupo
Las vinculaciones con group/guild/workspace coinciden segundo
{ "channel": "discord", "guild": "abc", "agent": "gaming" } - 3
Específica de canal
Las vinculaciones solo de canal coinciden último
{ "channel": "telegram", "agent": "default" }
Ejemplo
Si tienes vinculaciones para 'telegram' (por defecto) y 'telegram + userId:123' (personal), los mensajes del usuario 123 van a 'personal', todos los demás van a 'default'.
6.Seguridad y Aislamiento
Controla lo que cada agente puede hacer con modos de sandbox y políticas de herramientas.
Limita las capacidades del agente según el nivel de confianza:
"sandbox": "off"Acceso CompletoEl agente puede usar todas las herramientas. Usar para agentes personales de confianza.
"sandbox": "non-main"LimitadoRestringir acceso a archivos/shell solo al directorio del espacio de trabajo.
"sandbox": "all"EstrictoSin acceso al sistema de archivos o shell. Solo chat y web.
Control detallado sobre qué herramientas puede usar un agente:
{
"agents": {
"restricted": {
"workspace": "~/openclaw/agents/restricted",
"agentDir": "~/openclaw/state/restricted",
"tools": {
// Only allow these specific tools
"allow": ["calendar", "notes", "reminders"],
// Explicitly block dangerous tools
"deny": ["shell", "filesystem", "browser", "email"]
}
},
"trusted": {
"workspace": "~/openclaw/agents/trusted",
"agentDir": "~/openclaw/state/trusted",
"tools": {
// Allow everything except...
"allow": ["*"],
"deny": ["shell"] // Still block shell for safety
}
}
}
}Por defecto, los agentes solo pueden acceder a archivos dentro de su directorio de espacio de trabajo. Esto evita que un agente lea la memoria o archivos de otro.
{
"agents": {
"work": {
"workspace": "~/openclaw/agents/work",
"agentDir": "~/openclaw/state/work",
"filesystem": {
// Only allow access to these directories
"allowedPaths": [
"~/Documents/Work",
"~/Projects",
"/tmp"
],
// Block access to sensitive areas
"blockedPaths": [
"~/.ssh",
"~/.aws",
"~/Documents/Personal"
]
}
}
}
}¡Multi-Agente Listo!
Ahora tienes agentes aislados para diferentes casos de uso.
¿Preguntas? Únete a Discord o Abre un Issue en GitHub