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 einzigen Gruppenchat oder einer DM bereitstellen kann.
Broadcast-Gruppen werden nach Kanal-Zulassungslisten und Gruppenaktivierungsregeln ausgewertet. In WhatsApp-Gruppen erfolgen Broadcasts, wenn OpenClaw normalerweise antworten würde (beispielsweise bei einer Erwähnung, abhängig von Ihren Gruppeneinstellungen). Sie ändern nur, welche Agenten ausgeführt werden, niemals, ob eine Nachricht verarbeitet werden darf.
Die aktive WhatsApp-QA-Lane umfasst whatsapp-broadcast-group-fanout, wodurch überprüft wird, dass eine erwähnte Gruppennachricht unterschiedliche sichtbare Antworten von zwei konfigurierten Agenten erzeugen kann.
Konfiguration
Grundeinrichtung
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) - DMs: 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.entries vorhanden sein: Die Konfigurationsvalidierung meldet unbekannte IDs, und die Laufzeit überspringt sie mit einer Broadcast agent <id> not found in agents.entries; skipping-Warnung.
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 Array-Reihenfolge; 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 DM-Nachricht trifft ein.
Routing und Zulassung
OpenClaw wendet Kanal-Zulassungslisten, Gruppenaktivierungsregeln und die Eigentümerschaft konfigurierter 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 hat seinen eigenen Sitzungsschlüssel und isolierten Kontext.
- Agenten verarbeiten parallel (Standard) oder sequenziell.
- Audioanhänge werden vor der Verteilung einmal transkribiert, sodass die Agenten ein gemeinsames Transkript verwenden, anstatt separate STT-Aufrufe auszuführen.
Wenn Broadcast nicht angewendet wird
OpenClaw leitet an die gewöhnliche Route oder an 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...) - Konversationsverläufe (ein Agent sieht die Antworten anderer Agenten nicht)
- Arbeitsbereiche (separate Sandboxes, sofern konfiguriert)
- Werkzeugzugriffe (unterschiedliche Zulassungs-/Sperrlisten)
- Arbeitsspeicher/Kontexte (separate
IDENTITY.md,SOUL.mdusw.)
Eine Ausnahme wird bewusst gemeinsam genutzt: Der Gruppenkontextpuffer (kürzlich gesendete Gruppennachrichten, die als Kontext verwendet werden) wird pro Peer gemeinsam genutzt, sodass alle Broadcast-Agenten beim Auslösen denselben Kontext sehen. Er wird nach Abschluss der Verteilung einmal geleert.
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
Sitzung: agent:alfred:whatsapp:group:120363403215116621@g.usVerlauf: [Benutzernachricht, vorherige Antworten von Alfred]Arbeitsbereich: ~/openclaw-alfred/Werkzeuge: Lesen, Schreiben, AusführenBaerbels Kontext
Sitzung: agent:baerbel:whatsapp:group:120363403215116621@g.usVerlauf: [Benutzernachricht, vorherige Antworten von Baerbel]Arbeitsbereich: ~/openclaw-baerbel/Werkzeuge: nur LesenAnwendungsfälle
- Spezialisierte Agententeams: eine Entwicklungsgruppe, in der
code-reviewer,security-auditor,test-generatorunddocs-checkerdieselbe Nachricht jeweils 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 prüft und nur reagiert, wenn Probleme gefunden werden. - Aufgabenautomatisierung:
task-tracker,time-loggerundreport-generatorverarbeiten alle dieselbe Statusaktualisierung.
Bewährte Vorgehensweisen
1. Agenten fokussiert halten
Weisen Sie jedem Agenten eine einzige, klar definierte Verantwortung zu (formatter, linter, tester), statt einen allgemeinen „dev-helper“-Agenten 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 ist schreibgeschützt. 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 schlagen unabhängig voneinander fehl. 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:
- Agenten-IDs sind in
agents.entriesvorhanden (die Konfigurationsvalidierung lehnt unbekannte IDs ab). - Das Peer-ID-Format ist korrekt (Gruppen-JID wie
120363403215116621@g.usoder E.164 wie+15551234567für DMs). - Die Nachricht hat die normale Zugangsprüfung bestanden (Erwähnungs-/Aktivierungsregeln gelten weiterhin).
Debugging:
openclaw logs --follow | grep -i broadcastEine erfolgreiche Verteilung protokolliert Broadcasting message to <n> agents (<strategy>).
Nur ein Agent antwortet
Ursache: Die Peer-ID ist möglicherweise in gewöhnlichen Routenbindungen, aber nicht in broadcast enthalten, oder sie stimmt möglicherweise mit einer exklusiven konfigurierten ACP-Bindung überein.
Behebung: Fügen Sie an gewöhnliche Routen gebundene Peers zur Broadcast-Konfiguration hinzu oder entfernen/ändern Sie die konfigurierte ACP-Bindung, wenn die Broadcast-Verteilung gewünscht ist.
Leistungsprobleme
Wenn die Verarbeitung bei vielen Agenten langsam ist: Reduzieren Sie die Anzahl der Agenten pro Gruppe, verwenden Sie weniger ressourcenintensive 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 Codeausschnitt in der Gruppe erzeugt vier Antworten: Formatierungskorrekturen, einen Sicherheitsbefund, eine Abdeckungslücke und einen kleinen Dokumentationshinweis.
Beispiel 2: Mehrsprachige Pipeline
{ "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 Array-Reihenfolge aus.
[peerId]string[]WhatsApp-Gruppen-JID oder Telefonnummer im E.164-Format. Der Wert ist das Array der Agenten-IDs, die alle Nachrichten dieses Peers verarbeiten sollen.
Einschränkungen
- Maximale Anzahl von Agenten: keine feste Begrenzung, aber viele Agenten (10+) 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, sodass die Antwort jedes Agenten auf dieselben WhatsApp-Ratenbegrenzungen angerechnet wird.