Zurück

10. OpenClaw Multi-Agent-Routing und Sitzungsisolierung

Dieser Artikel erläutert ausführlich die Multi-Agent-Architektur von OpenClaw, einschließlich der Konfiguration mehrerer Agent-Instanzen, Nachrichten-Routing-Regeln, Sitzungsisolierungsstrategien und Best Practices für Teamzusammenarbeit, um Ihnen beim Aufbau eines Enterprise-KI-Assistentensystems zu helfen.

Gilt für OpenClaw v2026.2 | Dieser Artikel richtet sich an Teams oder Benutzer, die eine Kontextisolierung benötigen.

TL;DR: Multi-Agent-Konfiguration: "agents": {"instances": {"personal": {...}, "work": {...}}}. Routing-Regeln: "routing": {"rules": [{"match": {"channel": "telegram"}, "agent": "personal"}]}. Sitzungsisolierung: "sessions": {"isolation": "user"}. Sandbox-Modus: "sandbox": {"mode": "non-main"}. Geeignet für Multi-User-, Multi-Projekt- und Multi-Zweck-Szenarien.

Warum Multi-Agent?

Einschränkungen eines einzelnen Agents

Szenario Problem mit einem Agent Multi-Agent-Lösung
Mehrere Benutzer Kontextdurchmischung, Datenschutzprobleme Unabhängiger Agent pro Benutzer
Mehrere Projekte Projektinformationen vermischt Unabhängiger Agent pro Projekt
Mehrere Zwecke Ein Agent mit mehreren Rollen Spezialisierte Agents
Mehrere Teams Berechtigungen schwer kontrollierbar Agents nach Team isoliert
Kostenkontrolle Verbrauch nicht unterscheidbar Separate Abrechnung pro Modell

Einsatzszenarien für Multi-Agent

flowchart TB
    subgraph Users["Benutzer"]
        U1[Benutzer A]
        U2[Benutzer B]
        U3[Team X]
        U4[Team Y]
    end
    
    subgraph Router["Nachrichten-Routing"]
        R[Routing-Regeln]
    end
    
    subgraph Agents["Agent-Instanzen"]
        A1[Persönlicher Agent A]
        A2[Persönlicher Agent B]
        A3[Team-Agent X]
        A4[Team-Agent Y]
    end
    
    subgraph Models["Modelle"]
        M1[Claude Opus]
        M2[Claude Sonnet]
        M3[GPT-4o]
        M4[Haiku]
    end
    
    U1 --> R
    U2 --> R
    U3 --> R
    U4 --> R
    R --> A1
    R --> A2
    R --> A3
    R --> A4
    A1 --> M1
    A2 --> M2
    A3 --> M3
    A4 --> M4

Multi-Agent-Konfiguration

Grundstruktur

{
  "agents": {
    "defaults": {
      "model": "anthropic/claude-sonnet-4",
      "workspace": "~/.openclaw/workspace"
    },
    "instances": {
      "personal": {
        "model": "anthropic/claude-opus-4-6",
        "workspace": "~/.openclaw/workspaces/personal",
        "thinkingLevel": "high"
      },
      "work": {
        "model": "anthropic/claude-sonnet-4",
        "workspace": "~/.openclaw/workspaces/work",
        "skills": ["github", "jira", "confluence"]
      },
      "assistant": {
        "model": "anthropic/claude-haiku-3.5",
        "workspace": "~/.openclaw/workspaces/assistant"
      }
    }
  }
}

Agent-Konfigurationsoptionen

Konfigurationselement Beschreibung Beispiel
model Verwendetes Modell anthropic/claude-opus-4-6
workspace Arbeitsverzeichnis ~/.openclaw/workspaces/personal
thinkingLevel Denkstufe high, medium, low
skills Aktivierte Fähigkeiten ["gmail", "calendar"]
sandbox Sandbox-Konfiguration { "mode": "non-main" }
contextWindow Kontextfenster 200000

Workspace-Struktur

~/.openclaw/
├── workspace/              # Standard-Workspace
│   ├── AGENTS.md
│   ├── SOUL.md
│   └── skills/
├── workspaces/
│   ├── personal/          # Persönlicher Agent
│   │   ├── AGENTS.md
│   │   ├── SOUL.md
│   │   └── USER.md
│   ├── work/              # Arbeits-Agent
│   │   ├── AGENTS.md
│   │   └── skills/
│   └── assistant/         # Assistenz-Agent
│       └── AGENTS.md
└── openclaw.json          # Hauptkonfiguration

Nachrichten-Routing-Regeln

Routing-Konfiguration

{
  "routing": {
    "rules": [
      {
        "match": {
          "channel": "telegram",
          "sender": "123456789"
        },
        "agent": "personal"
      },
      {
        "match": {
          "channel": "discord",
          "guild": "987654321"
        },
        "agent": "work"
      },
      {
        "match": {
          "session": "main"
        },
        "agent": "personal"
      }
    ],
    "default": "personal"
  }
}

Routing-Regeln im Detail

Abgleichfeld Beschreibung Beispiel
channel Kanaltyp telegram, discord, slack
sender Absender-ID 123456789
guild Discord-Server-ID 987654321
group Gruppen-ID -100123456789
session Sitzungs-ID main, telegram:user:123
pattern Regex-Abgleich ^work-

Komplexes Routing-Beispiel

{
  "routing": {
    "rules": [
      {
        "name": "Persönliches Telegram",
        "match": {
          "channel": "telegram",
          "sender": ["123456789", "987654321"]
        },
        "agent": "personal"
      },
      {
        "name": "Arbeits-Discord",
        "match": {
          "channel": "discord",
          "guild": "111222333"
        },
        "agent": "work"
      },
      {
        "name": "Arbeitsgruppe",
        "match": {
          "channel": "telegram",
          "group": "-100111222333"
        },
        "agent": "work"
      },
      {
        "name": "Testumgebung",
        "match": {
          "pattern": "^test-"
        },
        "agent": "assistant",
        "config": {
          "sandbox": { "mode": "always" }
        }
      }
    ],
    "default": "personal"
  }
}

Routing-Priorität

flowchart TB
    MSG[Nachricht eingetroffen] --> R1{Regel 1 passt?}
    R1 -->|Ja| A1[Agent 1]
    R1 -->|Nein| R2{Regel 2 passt?}
    R2 -->|Ja| A2[Agent 2]
    R2 -->|Nein| R3{Regel 3 passt?}
    R3 -->|Ja| A3[Agent 3]
    R3 -->|Nein| D[Standard-Agent]

Das Routing erfolgt der Reihe nach – die erste zutreffende Regel wird angewendet.

Sitzungsisolierung

Isolierungsstufen

Stufe Beschreibung Einsatzszenario
Keine Isolierung Gemeinsamer Kontext Einzelbenutzer, Einzelzweck
Kanalisolierung Unabhängiger Kontext pro Kanal Mehrkanal-Zugriff
Benutzerisolierung Unabhängiger Kontext pro Benutzer Mehrbenutzer-Nutzung
Sitzungsisolierung Jede Sitzung unabhängig Vollständige Isolierung
Agent-Isolierung Jeder Agent unabhängig Multi-Agent-Bereitstellung

Sitzungsisolierung konfigurieren

{
  "sessions": {
    "isolation": "user",
    "persistence": true,
    "retention": {
      "maxAge": 604800000,
      "maxSessions": 100
    }
  }
}

Isolierungskonfiguration im Detail

{
  "sessions": {
    "isolation": "user",
    "storage": {
      "type": "file",
      "path": "~/.openclaw/sessions"
    },
    "encryption": {
      "enabled": true,
      "algorithm": "aes-256-gcm"
    },
    "retention": {
      "maxAge": 604800000,
      "maxSessions": 100,
      "cleanupInterval": 86400000
    }
  }
}
Konfigurationselement Beschreibung Standardwert
isolation Isolierungsstufe user
storage.type Speichertyp file
encryption.enabled Verschlüsselung aktivieren true
retention.maxAge Maximale Aufbewahrungszeit 7 Tage
retention.maxSessions Maximale Sitzungsanzahl 100

Teamzusammenarbeit

Szenario 1: Kleine Teamfreigabe

{
  "agents": {
    "instances": {
      "team": {
        "model": "anthropic/claude-sonnet-4",
        "workspace": "~/.openclaw/workspaces/team",
        "skills": ["github", "jira", "slack"]
      }
    }
  },
  "routing": {
    "rules": [
      {
        "match": { "channel": "slack" },
        "agent": "team"
      },
      {
        "match": { "channel": "discord" },
        "agent": "team"
      }
    ],
    "default": "team"
  }
}

Szenario 2: Abteilungsisolierung

{
  "agents": {
    "instances": {
      "engineering": {
        "model": "anthropic/claude-opus-4-6",
        "workspace": "~/.openclaw/workspaces/engineering",
        "skills": ["github", "jira", "pagerduty"],
        "sandbox": { "mode": "off" }
      },
      "marketing": {
        "model": "anthropic/claude-sonnet-4",
        "workspace": "~/.openclaw/workspaces/marketing",
        "skills": ["mailchimp", "analytics"],
        "sandbox": { "mode": "non-main" }
      },
      "support": {
        "model": "anthropic/claude-haiku-3.5",
        "workspace": "~/.openclaw/workspaces/support",
        "skills": ["zendesk", "intercom"],
        "sandbox": { "mode": "always" }
      }
    }
  },
  "routing": {
    "rules": [
      {
        "name": "Engineering Discord",
        "match": { "channel": "discord", "guild": "111111111" },
        "agent": "engineering"
      },
      {
        "name": "Marketing Slack",
        "match": { "channel": "slack", "team": "T22222222" },
        "agent": "marketing"
      },
      {
        "name": "Support Telegram",
        "match": { "channel": "telegram", "group": "-100333333333" },
        "agent": "support"
      }
    ],
    "default": "support"
  }
}

Szenario 3: Multi-Tenant SaaS

{
  "agents": {
    "dynamic": true,
    "template": {
      "model": "anthropic/claude-sonnet-4",
      "workspace": "~/.openclaw/workspaces/tenants/{{tenantId}}",
      "skills": ["base"],
      "sandbox": { "mode": "always" }
    },
    "limits": {
      "maxAgents": 100,
      "maxSessionsPerAgent": 50,
      "maxTokensPerMonth": 1000000
    }
  },
  "routing": {
    "rules": [
      {
        "name": "Tenant-Routing",
        "match": { "header": "X-Tenant-Id" },
        "agent": "tenant_{{tenantId}}",
        "createIfNotExists": true
      }
    ]
  }
}

Berechtigungen und Sicherheit

Agent-Berechtigungssteuerung

{
  "agents": {
    "instances": {
      "trusted": {
        "model": "anthropic/claude-opus-4-6",
        "sandbox": { "mode": "off" },
        "permissions": {
          "filesystem": { "read": true, "write": true },
          "network": { "outbound": true },
          "process": { "execute": true }
        }
      },
      "restricted": {
        "model": "anthropic/claude-haiku-3.5",
        "sandbox": { "mode": "always" },
        "permissions": {
          "filesystem": { 
            "read": ["~/allowed/"],
            "write": ["~/allowed/"]
          },
          "network": { 
            "outbound": ["api.example.com"]
          },
          "process": { "execute": false }
        }
      }
    }
  }
}

Sandbox-Modus

Modus Beschreibung Einsatzszenario
off Keine Sandbox Vertrauenswürdiger Agent
non-main Sandbox für Nicht-Hauptsitzungen Teamfreigabe
always Immer Sandbox Nicht vertrauenswürdige Umgebung

Sandbox-Konfiguration

{
  "sandbox": {
    "mode": "non-main",
    "container": {
      "image": "openclaw/sandbox:latest",
      "timeout": 30000,
      "memory": "512m",
      "cpu": "0.5"
    },
    "allowlist": ["read", "write", "edit", "bash"],
    "denylist": ["browser", "canvas", "nodes"],
    "networkPolicy": {
      "allow": ["api.example.com"],
      "deny": ["*"]
    }
  }
}

Überwachung und Verwaltung

Agent-Statusüberwachung

# Alle Agent-Instanzen auflisten
openclaw agents list

# Beispielausgabe:
# Name        Model                  Sessions  Status   Last Active
# personal    claude-opus-4-6        3         active   2 min ago
# work        claude-sonnet-4        5         active   5 min ago
# assistant   claude-haiku-3.5       2         idle     1 hour ago

# Agent-Details anzeigen
openclaw agents show personal

# Routing-Regeln anzeigen
openclaw routing list

Sitzungsverwaltung

# Alle Sitzungen auflisten
openclaw sessions list --agent personal

# Beispielausgabe:
# Session ID              Channel    Sender      Created      Messages
# telegram:user:123       telegram   123456789   2026-02-26   42
# main                    cli        -           2026-02-25   128

# Sitzungsdetails anzeigen
openclaw sessions show telegram:user:123

# Sitzung exportieren
openclaw sessions export telegram:user:123 --format json

# Sitzung löschen
openclaw sessions delete telegram:user:123

Verbrauchsstatistiken

# Verbrauch nach Agent gruppiert anzeigen
openclaw usage --by-agent

# Beispielausgabe:
# Agent       Tokens In    Tokens Out   Cost      Requests
# personal    125,000     45,000      $2.10     128
# work        89,000      32,000      $1.25     95
# assistant   15,000      8,000       $0.15     42

# Nach Zeitraum statistisch auswerten
openclaw usage --by-agent --from 2026-02-01 --to 2026-02-28

Best Practices

1. Agents sinnvoll aufteilen

Aufteilungsdimension Beschreibung Beispiel
Zweck Nach Funktionszweck aufteilen coding, research, assistant
Projekt Nach Projekt aufteilen project-alpha, project-beta
Team Nach Team aufteilen engineering, marketing
Modell Nach Modell aufteilen opus, sonnet, haiku

2. Konfigurationsvererbung

{
  "agents": {
    "defaults": {
      "model": "anthropic/claude-sonnet-4",
      "workspace": "~/.openclaw/workspace",
      "thinkingLevel": "medium",
      "sandbox": { "mode": "non-main" }
    },
    "instances": {
      "opus": {
        "model": "anthropic/claude-opus-4-6",
        "thinkingLevel": "high"
        // Erbt workspace und sandbox von defaults
      },
      "haiku": {
        "model": "anthropic/claude-haiku-3.5",
        "thinkingLevel": "minimal"
        // Erbt andere Konfigurationen von defaults
      }
    }
  }
}

3. Minimale Berechtigungen

{
  "agents": {
    "instances": {
      "restricted": {
        "model": "anthropic/claude-haiku-3.5",
        "sandbox": { "mode": "always" },
        "permissions": {
          "filesystem": {
            "read": ["~/allowed/read"],
            "write": ["~/allowed/write"]
          },
          "network": {
            "outbound": []
          },
          "process": {
            "execute": false
          }
        }
      }
    }
  }
}

4. Überwachung und Alarme

{
  "monitoring": {
    "alerts": [
      {
        "condition": "usage > 1000000",
        "action": "notify"
      },
      {
        "condition": "error_rate > 0.1",
        "action": "notify"
      },
      {
        "condition": "response_time > 10000",
        "action": "notify"
      }
    ],
    "webhook": "https://your-monitoring.com/webhook"
  }
}

Fehlerbehebung

Routing funktioniert nicht

# Aktuelle Routing-Regeln anzeigen
openclaw routing list

# Routing testen
openclaw routing test --channel telegram --sender 123456789

# Beispielausgabe:
# Matched Rule: Persönliches Telegram
# Target Agent: personal
# Route Path: default -> rule 1 -> personal

Probleme mit der Sitzungsisolierung

# Sitzungsisolierungskonfiguration prüfen
openclaw config get sessions.isolation

# Sitzungsliste prüfen
openclaw sessions list --all

# Sitzungsisolierung zurücksetzen
openclaw sessions reset --agent personal

Berechtigungsprobleme

# Berechtigungskonfiguration prüfen
openclaw agents permissions show personal

# Berechtigung testen
openclaw agents test-permission personal --action filesystem.read --path ~/test

# Beispielausgabe:
# Permission: filesystem.read
# Path: ~/test
# Result: ALLOWED

Fazit

Die Multi-Agent-Architektur ist eine erweiterte Funktion von OpenClaw, die leistungsstarke Unterstützung für Team- und Unternehmensszenarien bietet:

  • Flexibles Routing: Verschiedene Agents nach Kanal, Benutzer, Projekt zuweisen
  • Sitzungsisolierung: Datenschutz gewährleisten, Kontextdurchmischung vermeiden
  • Berechtigungssteuerung: Feingranulare Berechtigungsverwaltung
  • Kostenoptimierung: Verschiedene Modelle nach Zweck wählen
  • Skalierbarkeit: Dynamische Erstellung und Verwaltung von Agents

Zusammenfassung dieses Artikels:

  • Den Wert und die Szenarien der Multi-Agent-Architektur verstanden
  • Die Agent-Konfiguration und Nachrichten-Routing-Regeln gemeistert
  • Die Konfiguration der Sitzungsisolierung erlernt
  • Die Best Practices für Teamzusammenarbeit kennengelernt
  • Die Berechtigungssteuerung und Überwachungsverwaltung gemeistert

Änderungsprotokoll:

  • 2026-02-26: Erstveröffentlichung, basierend auf OpenClaw v2026.2

Seriennavigation: