Roteamento Multi-Agente
Execute multiplos agentes isolados em um unico Gateway para separacao trabalho/casa, compartilhamento familiar ou diferentes personalidades de IA.
1.O que e Roteamento Multi-Agente?
O roteamento multi-agente permite executar multiplos agentes de IA isolados em um unico OpenClaw Gateway. Cada agente tem sua propria identidade, memoria e configuracao - mas compartilha a mesma infraestrutura.
Cada agente tem:
Identidade Propria
Nome, personalidade e prompt de sistema separados
Memoria Isolada
Historico de conversas e contexto independentes
Ferramentas Personalizadas
Permissoes de ferramentas diferentes por agente
Bindings de Canal
Direcione canais especificos para agentes especificos
Casos de Uso Comuns
Separacao Trabalho/Casa
Mantenha o Slack de trabalho separado do Telegram pessoal. Personalidades diferentes, memorias diferentes.
Compartilhamento Familiar
Cada membro da familia recebe seu proprio agente com respostas personalizadas e memoria privada.
Personalidades Diferentes
Um assistente profissional para email, um amigo casual para Discord, um escritor criativo para brainstorming.
Multi-Conta
Gerencie multiplos numeros de WhatsApp ou contas de Telegram com agentes isolados.
2.Conceitos Chave
Cada agente vive em um 'workspace' - um diretorio contendo sua configuracao, memoria e arquivos.
~/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β Personalidade do agente e prompt de sistema
- user.mdβ Preferencias e contexto do usuario
- memory/β Historico de conversas e fatos
- skills/β Skills personalizadas para este agente
Importante
Agentes compartilham o mesmo processo Gateway e chaves de API. Para isolamento verdadeiro (chaves de API separadas, processos separados), execute multiplas instancias de Gateway.
- - Limites de taxa sao compartilhados entre todos os agentes
- - Custos de API sao combinados
- - Uma falha afeta todos os agentes
Bindings direcionam mensagens recebidas para o agente correto baseado em canal, usuario ou grupo.
// Example: Route WhatsApp business account to work agent
{
"bindings": [{
"agent": "work",
"channel": "whatsapp",
"accountId": "business-account-id"
}]
}3.Configuracao Passo a Passo
Criar um Novo Agente
Crie um diretorio de workspace para seu novo agente:
openclaw agents add work
Isso cria um novo agente com seu proprio diretorio de workspace.
Configurar o Workspace
Crie os arquivos de personalidade e usuario do agente:
soul.md - Personalidade do 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 do 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 Bindings de Canal
Direcione canais para seu novo agente no 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"
}Os bindings informam ao OpenClaw qual agente deve lidar com mensagens de cada canal.
Configurar Seguranca (Opcional)
Defina modo sandbox e restricoes de ferramentas para o 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 Configuracao
Reinicie o OpenClaw e teste sua configuracao multi-agente:
openclaw agents list
openclaw agents test --channel whatsapp --from +1234567890
4.Exemplos de Configuracao
Direcione diferentes numeros de WhatsApp para diferentes agentes:
{
"agents": {
"personal": { "workspace": "~/.openclaw/personal" },
"business": { "workspace": "~/.openclaw/business" }
},
"bindings": [
{ "channel": "whatsapp:+1234567890", "agent": "personal" },
{ "channel": "whatsapp:+0987654321", "agent": "business" }
]
}Use GPT-4 para trabalho, Claude para pessoal:
{
"agents": {
"work": {
"workspace": "~/.openclaw/work",
"model": "gpt-4o"
},
"personal": {
"workspace": "~/.openclaw/personal",
"model": "claude-3-5-sonnet-20241022"
}
}
}Agentes diferentes para diferentes servidores Discord ou workspaces 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 membro da familia recebe seu proprio agente via ID de usuario do 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.Prioridade de Binding
Quando multiplos bindings podem corresponder, o OpenClaw usa o mais especifico:
- 1
Especifico por Usuario
Bindings com userId correspondem primeiro
{ "channel": "telegram", "userId": "123", "agent": "personal" } - 2
Especifico por Grupo
Bindings com group/guild/workspace correspondem em segundo
{ "channel": "discord", "guild": "abc", "agent": "gaming" } - 3
Especifico por Canal
Bindings apenas de canal correspondem por ultimo
{ "channel": "telegram", "agent": "default" }
Exemplo
Se voce tem bindings para 'telegram' (padrao) e 'telegram + userId:123' (pessoal), mensagens do usuario 123 vao para 'pessoal', todas as outras vao para 'padrao'.
6.Seguranca e Sandboxing
Controle o que cada agente pode fazer com modos sandbox e politicas de ferramentas.
Limite as capacidades do agente baseado no nivel de confianca:
"sandbox": "off"Acesso TotalAgente pode usar todas as ferramentas. Use para agentes pessoais confiaveis.
"sandbox": "non-main"LimitadoRestringe acesso a arquivos/shell apenas ao diretorio do workspace.
"sandbox": "all"RestritoSem acesso a sistema de arquivos ou shell. Apenas chat e web.
Controle detalhado sobre quais ferramentas um agente pode usar:
{
"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 padrao, agentes podem acessar apenas arquivos dentro do seu diretorio de workspace. Isso previne um agente de ler a memoria ou arquivos de outro.
{
"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 Pronto!
Voce agora tem agentes isolados para diferentes casos de uso.
Duvidas? Entre no Discord ou Abrir Issue no GitHub