Routage multi-agents
Executez plusieurs agents isoles sur un seul Gateway pour separer travail/personnel, partage familial ou differentes personnalites IA.
1.Qu'est-ce que le routage multi-agents ?
Le routage multi-agents vous permet d'executer plusieurs agents IA isoles sur un seul Gateway OpenClaw. Chaque agent a sa propre identite, memoire et configuration - mais partage la meme infrastructure.
Chaque agent dispose de :
Identite propre
Nom, personnalite et prompt systeme separes
Memoire isolee
Historique de conversation et contexte independants
Outils personnalises
Permissions d'outils differentes par agent
Liaisons de canaux
Routez des canaux specifiques vers des agents specifiques
Cas d'utilisation courants
Separation travail/personnel
Gardez Slack professionnel separe de Telegram personnel. Differentes personnalites, differentes memoires.
Partage familial
Chaque membre de la famille obtient son propre agent avec des reponses personnalisees et une memoire privee.
Differentes personnalites
Un assistant professionnel pour les emails, un ami decontracte pour Discord, un ecrivain creatif pour le brainstorming.
Multi-comptes
Gerez plusieurs numeros WhatsApp ou comptes Telegram avec des agents isoles.
2.Concepts cles
Chaque agent vit dans un 'espace de travail' - un repertoire contenant sa configuration, sa memoire et ses fichiers.
~/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â Personnalite de l'agent et prompt systeme
- user.mdâ Preferences utilisateur et contexte
- memory/â Historique de conversation et faits
- skills/â Competences personnalisees pour cet agent
Important
Les agents partagent le meme processus Gateway et les cles API. Pour une veritable isolation (cles API separees, processus separes), executez plusieurs instances Gateway.
- - Les limites de debit sont partagees entre tous les agents
- - Les couts API sont combines
- - Un crash affecte tous les agents
Les liaisons routent les messages entrants vers le bon agent en fonction du canal, de l'utilisateur ou du groupe.
// Example: Route WhatsApp business account to work agent
{
"bindings": [{
"agent": "work",
"channel": "whatsapp",
"accountId": "business-account-id"
}]
}3.Configuration etape par etape
Creer un nouvel agent
Creez un repertoire d'espace de travail pour votre nouvel agent :
openclaw agents add work
Ceci cree un nouvel agent avec son propre repertoire d'espace de travail.
Configurer l'espace de travail
Creez les fichiers de personnalite et d'utilisateur de l'agent :
soul.md - Personnalite de l'agent :
# 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 - Contexte utilisateur :
# 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
Configurer les liaisons de canaux
Routez les canaux vers votre nouvel agent dans 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"
}Les liaisons indiquent a OpenClaw quel agent doit gerer les messages de chaque canal.
Configurer la securite (Optionnel)
Definissez le mode sandbox et les restrictions d'outils pour l'agent :
{
"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": []
}
}
}
}Verifier la configuration
Redemarrez OpenClaw et testez votre configuration multi-agents :
openclaw agents list
openclaw agents test --channel whatsapp --from +1234567890
4.Exemples de configuration
Routez differents numeros WhatsApp vers differents agents :
{
"agents": {
"personal": { "workspace": "~/.openclaw/personal" },
"business": { "workspace": "~/.openclaw/business" }
},
"bindings": [
{ "channel": "whatsapp:+1234567890", "agent": "personal" },
{ "channel": "whatsapp:+0987654321", "agent": "business" }
]
}Utilisez GPT-4 pour le travail, Claude pour le personnel :
{
"agents": {
"work": {
"workspace": "~/.openclaw/work",
"model": "gpt-4o"
},
"personal": {
"workspace": "~/.openclaw/personal",
"model": "claude-3-5-sonnet-20241022"
}
}
}Differents agents pour differents serveurs Discord ou espaces de travail 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" }
]
}Chaque membre de la famille obtient son propre agent via l'ID utilisateur 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.Priorite des liaisons
Lorsque plusieurs liaisons peuvent correspondre, OpenClaw utilise la plus specifique :
- 1
Specifique a l'utilisateur
Les liaisons avec userId correspondent en premier
{ "channel": "telegram", "userId": "123", "agent": "personal" } - 2
Specifique au groupe
Les liaisons avec group/guild/workspace correspondent en second
{ "channel": "discord", "guild": "abc", "agent": "gaming" } - 3
Specifique au canal
Les liaisons uniquement par canal correspondent en dernier
{ "channel": "telegram", "agent": "default" }
Exemple
Si vous avez des liaisons pour 'telegram' (par defaut) et 'telegram + userId:123' (personnel), les messages de l'utilisateur 123 vont vers 'personnel', tous les autres vers 'defaut'.
6.Securite et sandboxing
Controlez ce que chaque agent peut faire avec les modes sandbox et les politiques d'outils.
Limitez les capacites de l'agent en fonction du niveau de confiance :
"sandbox": "off"Acces completL'agent peut utiliser tous les outils. Utilisez pour les agents personnels de confiance.
"sandbox": "non-main"LimiteRestreindre l'acces fichiers/shell au repertoire de l'espace de travail uniquement.
"sandbox": "all"StrictPas d'acces au systeme de fichiers ou au shell. Chat et web uniquement.
Controle granulaire sur les outils qu'un agent peut utiliser :
{
"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
}
}
}
}Par defaut, les agents ne peuvent acceder qu'aux fichiers dans leur repertoire d'espace de travail. Cela empeche un agent de lire la memoire ou les fichiers d'un autre.
{
"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-agents pret !
Vous avez maintenant des agents isoles pour differents cas d'utilisation.
Questions ? Rejoindre Discord ou Ouvrir une issue GitHub