Skip to main content
Stan: Eksperymentalne. Dodano w wersji 2026.1.9. Tylko WhatsApp (kanał internetowy).

Przegląd

Grupy rozgłoszeniowe uruchamiają wiele agentów dla tej samej wiadomości przychodzącej. Każdy agent przetwarza wiadomość we własnej odizolowanej sesji i publikuje własną odpowiedź, dzięki czemu jeden numer WhatsApp może obsługiwać zespół wyspecjalizowanych agentów w pojedynczym czacie grupowym lub wiadomościach prywatnych. Grupy rozgłoszeniowe są uwzględniane po zastosowaniu list dozwolonych kanału i reguł aktywacji grupy. W grupach WhatsApp rozgłaszanie następuje, gdy OpenClaw normalnie udzieliłby odpowiedzi (na przykład po wzmiance, zależnie od ustawień grupy). Zmienia ono wyłącznie to, którzy agenci są uruchamiani, a nigdy to, czy wiadomość kwalifikuje się do przetworzenia. Aktywna ścieżka kontroli jakości WhatsApp obejmuje whatsapp-broadcast-group-fanout, który sprawdza, czy jedna wiadomość grupowa ze wzmianką może wygenerować odrębne, widoczne odpowiedzi od dwóch skonfigurowanych agentów.

Konfiguracja

Konfiguracja podstawowa

Dodaj sekcję najwyższego poziomu broadcast (obok bindings). Kluczami są identyfikatory rozmówców WhatsApp, a wartościami — tablice identyfikatorów agentów:
  • czaty grupowe: JID grupy (np. 120363403215116621@g.us)
  • wiadomości prywatne: numer telefonu nadawcy w formacie E.164 (np. +15551234567)
Wynik: gdy OpenClaw udzieliłby odpowiedzi na tym czacie, uruchamia wszystkich trzech agentów. Każdy wymieniony identyfikator agenta musi istnieć w agents.list: walidacja konfiguracji zgłasza nieznane identyfikatory, a środowisko uruchomieniowe pomija je z ostrzeżeniem Broadcast agent <id> not found in agents.list; skipping.

Strategia przetwarzania

broadcast.strategy określa sposób przetwarzania wiadomości przez agentów:

Pełny przykład

Sposób działania

Przepływ wiadomości

1

Nadejście wiadomości przychodzącej

Nadchodzi wiadomość z grupy WhatsApp lub wiadomość prywatna.
2

Trasowanie i dopuszczenie

OpenClaw stosuje listy dozwolonych kanału, reguły aktywacji grupy i skonfigurowane przypisanie własności powiązania ACP.
3

Sprawdzenie rozgłaszania

Jeśli żadne skonfigurowane powiązanie ACP nie jest właścicielem trasy, OpenClaw sprawdza, czy identyfikator rozmówcy znajduje się w broadcast.
4

Jeśli rozgłaszanie ma zastosowanie

  • Wszyscy wymienieni agenci przetwarzają wiadomość.
  • Każdy agent ma własny klucz sesji i odizolowany kontekst.
  • Agenci przetwarzają równolegle (domyślnie) lub sekwencyjnie.
  • Załączniki dźwiękowe są transkrybowane raz przed rozesłaniem, dzięki czemu agenci współdzielą jedną transkrypcję zamiast wykonywać osobne wywołania STT.
5

Jeśli rozgłaszanie nie ma zastosowania

OpenClaw przekazuje wiadomość zwykłą trasą lub skonfigurowaną trasą sesji ACP wybraną podczas trasowania.
Grupy rozgłoszeniowe nie omijają list dozwolonych kanału ani reguł aktywacji grupy (wzmianki/polecenia/itp.). Zmieniają wyłącznie to, którzy agenci są uruchamiani, gdy wiadomość kwalifikuje się do przetworzenia.

Izolacja sesji

Każdy agent w grupie rozgłoszeniowej ma całkowicie odrębne:
  • Klucze sesji (agent:alfred:whatsapp:group:120363... oraz agent:baerbel:whatsapp:group:120363...)
  • Historię konwersacji (agent nie widzi odpowiedzi innych agentów)
  • Obszar roboczy (oddzielne piaskownice, jeśli je skonfigurowano)
  • Dostęp do narzędzi (różne listy dozwolonych i zabronionych narzędzi)
  • Pamięć/kontekst (oddzielne pliki IDENTITY.md, SOUL.md itp.)
Jeden wyjątek jest celowo współdzielony: bufor kontekstu grupy (ostatnie wiadomości grupowe używane jako kontekst) jest współdzielony dla danego rozmówcy, dzięki czemu wszyscy agenci rozgłoszeniowi po wyzwoleniu widzą ten sam kontekst. Bufor jest czyszczony raz po zakończeniu rozesłania. Pozwala to przypisać każdemu agentowi inną osobowość, modele, Skills i dostęp do narzędzi (na przykład tylko do odczytu albo do odczytu i zapisu).

Przykład: odizolowane sesje

W grupie 120363403215116621@g.us z agentami ["alfred", "baerbel"]:

Przypadki użycia

  • Zespoły wyspecjalizowanych agentów: grupa programistyczna, w której code-reviewer, security-auditor, test-generator i docs-checker odpowiadają na tę samą wiadomość, każdy ze swojej perspektywy.
  • Obsługa wielu języków: jeden czat pomocy technicznej, na którym support-en, support-de i support-es odpowiadają w swoich językach.
  • Zapewnianie jakości: support-agent odpowiada, a qa-agent sprawdza odpowiedź i reaguje tylko po wykryciu problemów.
  • Automatyzacja zadań: task-tracker, time-logger i report-generator przetwarzają tę samą aktualizację stanu.

Najlepsze praktyki

Przypisz każdemu agentowi jedno jasno określone zadanie (formatter, linter, tester) zamiast tworzyć jednego ogólnego agenta „dev-helper”.
reviewer ma dostęp tylko do odczytu. fixer może odczytywać i zapisywać.
Przy wielu agentach wybieraj "strategy": "parallel" (ustawienie domyślne), ograniczaj grupy rozgłoszeniowe do kilku agentów i używaj szybszych modeli dla prostszych agentów.
Awarie agentów są od siebie niezależne. Błąd jednego agenta jest zapisywany w dzienniku (Broadcast agent <id> failed: ...) i nie blokuje pozostałych.

Zgodność

Dostawcy

Grupy rozgłoszeniowe są obecnie zaimplementowane wyłącznie dla WhatsApp (kanału internetowego). Inne kanały ignorują konfigurację broadcast.

Trasowanie

Grupy rozgłoszeniowe współdziałają z istniejącym trasowaniem:
  • GROUP_A: odpowiada tylko alfred (zwykłe trasowanie).
  • GROUP_B: odpowiadają agent1 ORAZ agent2 (rozgłaszanie).
Priorytet: broadcast ma pierwszeństwo przed zwykłymi powiązaniami tras. Skonfigurowane powiązania ACP (bindings[].type="acp") są wyłączne: gdy jedno z nich pasuje, OpenClaw przekazuje wiadomość do skonfigurowanej sesji ACP zamiast rozsyłać ją do wielu agentów.

Rozwiązywanie problemów

Sprawdź:
  1. Identyfikatory agentów istnieją w agents.list (walidacja konfiguracji odrzuca nieznane identyfikatory).
  2. Format identyfikatora rozmówcy jest prawidłowy (JID grupy, na przykład 120363403215116621@g.us, lub numer E.164, na przykład +15551234567, dla wiadomości prywatnych).
  3. Wiadomość przeszła standardowe mechanizmy dopuszczania (reguły wzmianek/aktywacji nadal obowiązują).
Debugowanie:
Pomyślne rozesłanie zapisuje w dzienniku komunikat Broadcasting message to <n> agents (<strategy>).
Przyczyna: identyfikator rozmówcy może znajdować się w zwykłych powiązaniach tras, ale nie w broadcast, albo może pasować do wyłącznego skonfigurowanego powiązania ACP.Rozwiązanie: dodaj rozmówców przypisanych do zwykłych tras do konfiguracji rozgłaszania albo usuń/zmień skonfigurowane powiązanie ACP, jeśli oczekiwane jest rozesłanie do wielu agentów.
Jeśli działanie jest powolne przy wielu agentach: zmniejsz liczbę agentów w grupie, użyj lżejszych modeli i sprawdź czas uruchamiania piaskownicy.

Przykłady

Jeden fragment kodu w grupie generuje cztery odpowiedzi: poprawki formatowania, wykryty problem z bezpieczeństwem, lukę w pokryciu testami i drobną uwagę dotyczącą dokumentacji.

Dokumentacja API

Schemat konfiguracji

Pola

"parallel" | "sequential"
domyślnie:"\"parallel\""
Sposób przetwarzania przez agentów. parallel uruchamia wszystkich agentów jednocześnie; sequential uruchamia ich w kolejności tablicy.
string[]
JID grupy WhatsApp lub numer telefonu w formacie E.164. Wartością jest tablica identyfikatorów agentów, którzy powinni przetwarzać wszystkie wiadomości od tego rozmówcy.

Ograniczenia

  1. Maksymalna liczba agentów: brak sztywnego limitu, ale duża liczba agentów (10+) może powodować spowolnienie.
  2. Współdzielony kontekst: agenci nie widzą odpowiedzi innych agentów (zgodnie z założeniem).
  3. Kolejność wiadomości: odpowiedzi przetwarzane równolegle mogą nadejść w dowolnej kolejności.
  4. Limity częstotliwości: wszystkie odpowiedzi są wysyłane z jednego konta WhatsApp, dlatego odpowiedź każdego agenta wlicza się do tych samych limitów częstotliwości WhatsApp.

Powiązane