Configuration
Broadcast-Gruppen
Überblick
Broadcast-Gruppen führen mehrere Agenten für dieselbe eingehende Nachricht aus. Jeder Agent verarbeitet die Nachricht in seiner eigenen isolierten Sitzung und veröffentlicht seine eigene Antwort, sodass eine WhatsApp-Nummer ein Team spezialisierter Agenten in einem einzelnen Gruppenchat oder einer Direktnachricht beherbergen kann.
Broadcast-Gruppen werden nach den Kanal-Zulassungslisten und den Regeln zur Gruppenaktivierung ausgewertet. In WhatsApp-Gruppen erfolgen Broadcasts, wenn OpenClaw normalerweise antworten würde (beispielsweise bei einer Erwähnung, abhängig von Ihren Gruppeneinstellungen). Sie ändern ausschließlich, welche Agenten ausgeführt werden, niemals, ob eine Nachricht verarbeitet werden darf.
Die aktive WhatsApp-QA-Teststrecke enthält whatsapp-broadcast-group-fanout. Sie überprüft, ob eine einzelne Gruppennachricht mit Erwähnung unterschiedliche sichtbare Antworten von zwei konfigurierten Agenten erzeugen kann.
Konfiguration
Grundlegende Einrichtung
Fügen Sie einen broadcast-Abschnitt auf oberster Ebene hinzu (neben bindings). Die Schlüssel sind WhatsApp-Peer-IDs, die Werte sind Arrays von Agenten-IDs:
- Gruppenchats: Gruppen-JID (z. B.
120363403215116621@g.us) - Direktnachrichten: Telefonnummer des Absenders im E.164-Format (z. B.
+15551234567)
{ "broadcast": { "120363403215116621@g.us": ["alfred", "baerbel", "assistant3"] }}Ergebnis: Wenn OpenClaw in diesem Chat antworten würde, führt es alle drei Agenten aus.
Jede aufgeführte Agenten-ID muss in agents.list vorhanden sein: Die Konfigurationsvalidierung meldet unbekannte IDs, und die Laufzeit überspringt sie mit der Warnung Broadcast agent <id> not found in agents.list; skipping.
Verarbeitungsstrategie
broadcast.strategy legt fest, wie Agenten die Nachricht verarbeiten:
| Strategie | Verhalten |
|---|---|
parallel (Standard) |
Alle Agenten verarbeiten gleichzeitig; Antworten treffen in beliebiger Reihenfolge ein. |
sequential |
Agenten verarbeiten in der Reihenfolge des Arrays; jeder wartet, bis der vorherige fertig ist. |
{ "broadcast": { "strategy": "sequential", "120363403215116621@g.us": ["alfred", "baerbel"] }}Vollständiges Beispiel
{ "agents": { "list": [ { "id": "code-reviewer", "name": "Code Reviewer", "workspace": "/path/to/code-reviewer", "sandbox": { "mode": "all" } }, { "id": "security-auditor", "name": "Security Auditor", "workspace": "/path/to/security-auditor", "sandbox": { "mode": "all" } }, { "id": "docs-generator", "name": "Documentation Generator", "workspace": "/path/to/docs-generator", "sandbox": { "mode": "all" } } ] }, "broadcast": { "strategy": "parallel", "120363403215116621@g.us": ["code-reviewer", "security-auditor", "docs-generator"], "120363424282127706@g.us": ["support-en", "support-de"], "+15555550123": ["assistant", "logger"] }}Funktionsweise
Nachrichtenfluss
Eingehende Nachricht trifft ein
Eine WhatsApp-Gruppen- oder Direktnachricht trifft ein.
Routing und Zulassung
OpenClaw wendet Kanal-Zulassungslisten, Regeln zur Gruppenaktivierung und die konfigurierte Zuständigkeit von ACP-Bindungen an.
Broadcast-Prüfung
Wenn keine konfigurierte ACP-Bindung für die Route zuständig ist, prüft OpenClaw, ob die Peer-ID in broadcast enthalten ist.
Wenn Broadcast angewendet wird
- Alle aufgeführten Agenten verarbeiten die Nachricht.
- Jeder Agent verfügt über einen eigenen Sitzungsschlüssel und einen isolierten Kontext.
- Agenten verarbeiten parallel (Standard) oder sequenziell.
- Audioanhänge werden vor der Verteilung einmal transkribiert, sodass die Agenten ein Transkript gemeinsam verwenden, anstatt separate STT-Aufrufe auszuführen.
Wenn Broadcast nicht angewendet wird
OpenClaw leitet an die reguläre Route oder die während des Routings ausgewählte konfigurierte ACP-Sitzungsroute weiter.
Sitzungsisolierung
Jeder Agent in einer Broadcast-Gruppe verwaltet vollständig getrennte:
- Sitzungsschlüssel (
agent:alfred:whatsapp:group:120363...gegenüberagent:baerbel:whatsapp:group:120363...) - Unterhaltungsverläufe (ein Agent sieht die Antworten anderer Agenten nicht)
- Arbeitsbereiche (separate Sandboxen, falls konfiguriert)
- Werkzeugzugriffe (unterschiedliche Zulassungs-/Sperrlisten)
- Speicher/Kontexte (separate
IDENTITY.md,SOUL.mdusw.)
Eine Ausnahme wird absichtlich gemeinsam verwendet: Der Gruppenkontextpuffer (die letzten Gruppennachrichten, die als Kontext verwendet werden) wird pro Peer gemeinsam genutzt, sodass alle Broadcast-Agenten bei ihrer Auslösung denselben Kontext sehen. Er wird einmal geleert, nachdem die Verteilung abgeschlossen ist.
Dadurch kann jeder Agent unterschiedliche Persönlichkeiten, Modelle, Skills und Werkzeugzugriffe haben (beispielsweise schreibgeschützt gegenüber Lese- und Schreibzugriff).
Beispiel: isolierte Sitzungen
In der Gruppe 120363403215116621@g.us mit den Agenten ["alfred", "baerbel"]:
Alfreds Kontext
Session: agent:alfred:whatsapp:group:120363403215116621@g.usHistory: [user message, alfred's previous responses]Workspace: ~/openclaw-alfred/Tools: read, write, execBaerbels Kontext
Session: agent:baerbel:whatsapp:group:120363403215116621@g.usHistory: [user message, baerbel's previous responses]Workspace: ~/openclaw-baerbel/Tools: read onlyAnwendungsfälle
- Teams spezialisierter Agenten: Eine Entwicklungsgruppe, in der
code-reviewer,security-auditor,test-generatorunddocs-checkerjeweils dieselbe Nachricht aus ihrer eigenen Perspektive beantworten. - Mehrsprachiger Support: Ein Support-Chat, in dem
support-en,support-deundsupport-esin ihren jeweiligen Sprachen antworten. - Qualitätssicherung:
support-agentantwortet, währendqa-agentdie Antwort überprüft und nur reagiert, wenn Probleme gefunden werden. - Aufgabenautomatisierung:
task-tracker,time-loggerundreport-generatorverarbeiten alle dieselbe Statusaktualisierung.
Bewährte Vorgehensweisen
1. Agenten klar ausrichten
Weisen Sie jedem Agenten eine einzelne, klar definierte Zuständigkeit (formatter, linter, tester) zu, anstatt einen generischen Agenten namens „dev-helper“ zu verwenden.
2. Aussagekräftige IDs und Namen verwenden
{ "agents": { "list": [ { "id": "security-scanner", "name": "Security Scanner" }, { "id": "code-formatter", "name": "Code Formatter" }, { "id": "test-generator", "name": "Test Generator" } ] }}3. Unterschiedliche Werkzeugzugriffe konfigurieren
{ "agents": { "list": [ { "id": "reviewer", "tools": { "allow": ["read", "exec"] } }, { "id": "fixer", "tools": { "allow": ["read", "write", "edit", "exec"] } } ] }}reviewer hat nur Lesezugriff. fixer kann lesen und schreiben.
4. Leistung überwachen
Bevorzugen Sie bei vielen Agenten "strategy": "parallel" (Standard), beschränken Sie Broadcast-Gruppen auf wenige Agenten und verwenden Sie schnellere Modelle für einfachere Agenten.
5. Fehler bleiben isoliert
Agenten können unabhängig voneinander fehlschlagen. Der Fehler eines Agenten wird protokolliert (Broadcast agent <id> failed: ...) und blockiert die anderen nicht.
Kompatibilität
Provider
Broadcast-Gruppen sind derzeit nur für WhatsApp (Webkanal) implementiert. Andere Kanäle ignorieren die broadcast-Konfiguration.
Routing
Broadcast-Gruppen funktionieren zusammen mit dem bestehenden Routing:
{ "bindings": [ { "match": { "channel": "whatsapp", "peer": { "kind": "group", "id": "GROUP_A" } }, "agentId": "alfred" } ], "broadcast": { "GROUP_B": ["agent1", "agent2"] }}GROUP_A: Nur alfred antwortet (normales Routing).GROUP_B: agent1 UND agent2 antworten (Broadcast).
Fehlerbehebung
Agenten antworten nicht
Prüfen Sie Folgendes:
- Die Agenten-IDs sind in
agents.listvorhanden (die Konfigurationsvalidierung weist unbekannte IDs zurück). - Das Format der Peer-ID ist korrekt (eine Gruppen-JID wie
120363403215116621@g.usoder für Direktnachrichten eine E.164-Nummer wie+15551234567). - Die Nachricht hat die normale Zugangsprüfung bestanden (Erwähnungs-/Aktivierungsregeln gelten weiterhin).
Fehlersuche:
openclaw logs --follow | grep -i broadcastBei einer erfolgreichen Verteilung wird Broadcasting message to <n> agents (<strategy>) protokolliert.
Nur ein Agent antwortet
Ursache: Die Peer-ID befindet sich möglicherweise in regulären Routenbindungen, aber nicht in broadcast, oder sie stimmt mit einer exklusiven konfigurierten ACP-Bindung überein.
Behebung: Fügen Sie Peers mit regulärer Routenbindung zur Broadcast-Konfiguration hinzu, oder entfernen/ändern Sie die konfigurierte ACP-Bindung, wenn eine Broadcast-Verteilung gewünscht ist.
Leistungsprobleme
Wenn die Verarbeitung mit vielen Agenten langsam ist: Reduzieren Sie die Anzahl der Agenten pro Gruppe, verwenden Sie ressourcenschonendere Modelle und prüfen Sie die Startzeit der Sandbox.
Beispiele
Beispiel 1: Code-Review-Team
{ "broadcast": { "strategy": "parallel", "120363403215116621@g.us": [ "code-formatter", "security-scanner", "test-coverage", "docs-checker" ] }, "agents": { "list": [ { "id": "code-formatter", "workspace": "~/agents/formatter", "tools": { "allow": ["read", "write"] } }, { "id": "security-scanner", "workspace": "~/agents/security", "tools": { "allow": ["read", "exec"] } }, { "id": "test-coverage", "workspace": "~/agents/testing", "tools": { "allow": ["read", "exec"] } }, { "id": "docs-checker", "workspace": "~/agents/docs", "tools": { "allow": ["read"] } } ] }}Ein einzelner Codeausschnitt in der Gruppe erzeugt vier Antworten: Formatierungskorrekturen, einen Sicherheitsbefund, eine Lücke in der Testabdeckung und einen kleinen Dokumentationshinweis.
Beispiel 2: Mehrsprachige Verarbeitungskette
{ "broadcast": { "strategy": "sequential", "+15555550123": ["detect-language", "translator-en", "translator-de"] }, "agents": { "list": [ { "id": "detect-language", "workspace": "~/agents/lang-detect" }, { "id": "translator-en", "workspace": "~/agents/translate-en" }, { "id": "translator-de", "workspace": "~/agents/translate-de" } ] }}API-Referenz
Konfigurationsschema
interface OpenClawConfig { broadcast?: { strategy?: "parallel" | "sequential"; [peerId: string]: string[]; };}Felder
strategy"parallel" | "sequential"default: "parallel"Legt fest, wie Agenten verarbeitet werden. parallel führt alle Agenten gleichzeitig aus; sequential führt sie in der Reihenfolge des Arrays aus.
[peerId]string[]WhatsApp-Gruppen-JID oder Telefonnummer im E.164-Format. Der Wert ist das Array der Agenten-IDs, die alle Nachrichten von diesem Peer verarbeiten sollen.
Einschränkungen
- Maximale Anzahl von Agenten: Es gibt keine feste Grenze, aber viele Agenten (10 oder mehr) können langsam sein.
- Gemeinsamer Kontext: Agenten sehen die Antworten der jeweils anderen nicht (beabsichtigtes Verhalten).
- Nachrichtenreihenfolge: Parallele Antworten können in beliebiger Reihenfolge eintreffen.
- Ratenbegrenzungen: Alle Antworten stammen von einem WhatsApp-Konto, daher zählt die Antwort jedes Agenten für dieselben WhatsApp-Ratenbegrenzungen.