Zum Inhalt springen

Multi-Agent Routing: Ein Bot pro Kanal

Standardmäßig läuft OpenClaw mit einem einzigen Agent. Jede Nachricht von jedem Kanal geht an dasselbe Gehirn, denselben Workspace, dieselbe Persönlichkeit. Das funktioniert — bis es nicht mehr funktioniert.

Vielleicht willst du:

  • Einen professionellen Assistenten auf WhatsApp und einen lockeren Bot auf Discord
  • Einen Familien-Bot in der Familiengruppe der sandboxed und eingeschränkt ist
  • Mehrere Personen die sich ein Gateway teilen mit isolierten Agents
  • Ein schnelles Modell für Daily Chat und Opus für Deep Work

Multi-Agent Routing lässt dich mehrere isolierte Agents in einem Gateway-Prozess laufen. Jeder Agent bekommt seinen eigenen Workspace, Sessions, Auth und Persönlichkeit.

Ein Agent ist ein vollständig isoliertes Gehirn mit:

  • Workspace — eigene SOUL.md, AGENTS.md, USER.md, Tools und Notizen
  • State Directory (agentDir) — Auth-Profile, Model Registry, Per-Agent Config
  • Session Store — separate Chat-History, kein Cross-Talk
  • Skills — per Agent via Workspace skills/ Ordner, plus geteilte Skills aus ~/.openclaw/skills

Auth-Profile sind per Agent. Die API-Keys des Main-Agents werden nicht automatisch geteilt. Wenn du Credentials teilen willst, kopiere auth-profiles.json in den agentDir des anderen Agents.

Bindings sind deterministisch. OpenClaw wählt einen Agent pro eingehender Nachricht nach Most-Specific-Wins:

  1. Exakter Peer-Match (spezifischer DM/Gruppe/Kanal)
  2. Parent Peer (Thread-Vererbung)
  3. Guild + Rollen (Discord Role Routing)
  4. Guild (Discord)
  5. Team (Slack)
  6. Account (Channel Account ID)
  7. Channel (jeder Account, accountId: "*")
  8. Default Agent (erster in der Liste oder default: true)

Wenn mehrere Match-Felder auf einem Binding gesetzt sind, müssen alle matchen (AND-Semantik).

Terminal-Fenster
openclaw agents add work
openclaw agents add home

Jeder Agent bekommt seinen eigenen Workspace (~/.openclaw/workspace-<name>) mit frischer SOUL.md, AGENTS.md und USER.md.

Jeder Agent braucht typischerweise seinen eigenen Bot-Account:

  • Telegram: Einen Bot pro Agent via @BotFather erstellen
  • Discord: Eine Application/Bot pro Agent auf discord.com/developers
  • WhatsApp: Eine Telefonnummer pro Agent verknüpfen

Editiere ~/.openclaw/openclaw.json:

{
agents: {
list: [
{
id: "home",
default: true,
workspace: "~/.openclaw/workspace-home",
},
{
id: "work",
workspace: "~/.openclaw/workspace-work",
},
],
},
bindings: [
{ agentId: "home", match: { channel: "telegram", accountId: "default" } },
{ agentId: "work", match: { channel: "telegram", accountId: "work" } },
],
channels: {
telegram: {
accounts: {
default: { botToken: "HOME_BOT_TOKEN" },
work: { botToken: "WORK_BOT_TOKEN" },
},
},
},
}
Terminal-Fenster
openclaw gateway restart
openclaw agents list --bindings
openclaw channels status --probe

WhatsApp zum schnellen Modell für den Alltag routen, und Telegram zu Opus für ernsthafte Arbeit.

{
agents: {
list: [
{
id: "chat",
name: "Alltag",
workspace: "~/.openclaw/workspace-chat",
model: "anthropic/claude-sonnet-4-5",
},
{
id: "deep",
name: "Deep Work",
workspace: "~/.openclaw/workspace-deep",
model: "anthropic/claude-opus-4-6",
},
],
},
bindings: [
{ agentId: "chat", match: { channel: "whatsapp" } },
{ agentId: "deep", match: { channel: "telegram" } },
],
}

Jeder Agent hat seine eigene Persönlichkeit. Der Chat-Agent ist schnell und knapp. Der Deep-Work-Agent ist gründlich und analytisch. Verschiedene SOUL.md-Dateien, verschiedene Vibes.

Ein dedizierter Agent für eine Familien-WhatsApp-Gruppe, mit eingeschränkten Tools und Sandboxing:

{
agents: {
list: [
{
id: "family",
name: "Familien-Bot",
workspace: "~/.openclaw/workspace-family",
identity: { name: "Familien-Bot" },
sandbox: {
mode: "all",
scope: "agent",
},
tools: {
allow: ["exec", "read", "sessions_list", "sessions_history"],
deny: ["write", "edit", "browser", "canvas", "nodes", "cron"],
},
},
],
},
bindings: [
{
agentId: "family",
match: {
channel: "whatsapp",
peer: { kind: "group", id: "DEINE_GRUPPEN_ID@g.us" },
},
},
],
}

Dieser Agent:

  • Reagiert nur wenn angesprochen
  • Kann keine Dateien schreiben, Browser steuern oder Cron Jobs planen
  • Läuft in einem Sandbox-Container
  • Ist an eine bestimmte WhatsApp-Gruppe gebunden

{
agents: {
defaults: {
heartbeat: { every: "30m", target: "last" },
},
list: [
{ id: "main", default: true }, // kein heartbeat-Block → keine Heartbeats
{
id: "ops",
heartbeat: {
every: "1h",
target: "whatsapp",
to: "+4915512345678",
},
},
],
},
}
{
agents: {
list: [
{ id: "fast", model: "anthropic/claude-sonnet-4-5" },
{ id: "deep", model: "anthropic/claude-opus-4-6" },
],
},
}

agentDir über Agents teilen: Nie agentDir wiederverwenden. Jeder Agent braucht sein eigenes State Directory, sonst gibt’s Auth/Session-Kollisionen.

Auth-Profile vergessen: Jeder Agent liest aus ~/.openclaw/agents/<agentId>/agent/auth-profiles.json. Wenn ein neuer Agent dieselben API-Keys nutzen soll, Auth-Profile-Datei kopieren.

Binding-Reihenfolge verwechseln: Innerhalb derselben Spezifitäts-Stufe gewinnt der erste Match. Spezifische Bindings (Peer-Matches) über generelle (Channel-Matches) packen.

Message Content Intent vergessen: Discord-Bots brauchen das aktiviert. Ohne sieht dein Bot Events aber kann keinen Nachrichteninhalt lesen.


Terminal-Fenster
# Neuen Agent hinzufügen (interaktiver Wizard)
openclaw agents add <name>
# Agents mit ihren Bindings auflisten
openclaw agents list --bindings
# Channel-Status prüfen
openclaw channels status --probe

Multi-Agent Routing ist wo OpenClaw aufhört ein Chatbot zu sein und anfängt Infrastruktur zu werden.