// dokumentacja openclaw

Obsługa wiadomości w OpenClaw — routing, kolejkowanie i streaming

Przepływ wiadomości

Wiadomości w OpenClaw przechodzą przez ustaloną ścieżkę: przyjęcie wiadomości, routing i wiązania, klucz sesji, kolejka (jeśli trwa uruchomienie), uruchomienie agenta (streaming + narzędzia), a na końcu odpowiedzi wychodzące.

Kluczowe obszary konfiguracji obejmują prefiksy wiadomości, zachowanie kolejki i ustawienia streamingu per kanał.

Zapobieganie duplikatom

System utrzymuje krótkotrwały cache identyfikatorów wiadomości (kanał/konto/peer/sesja/wiadomość), zapobiegając ponownemu przetworzeniu tych samych wiadomości po reconnectach.

Debouncing wiadomości

Szybko następujące po sobie wiadomości od tego samego nadawcy mogą być grupowane w jedną turę agenta. Domyślne okno debounce wynosi 2000 ms globalnie, z nadpisaniami per kanał:

  • WhatsApp: 5000 ms
  • Slack: 1500 ms
  • Discord: 1500 ms

Debouncing dotyczy wyłącznie wiadomości tekstowych. Załączniki multimedialne omijają debouncing, a polecenia kontrolne pozostają samodzielne.

Zarządzanie sesją

Sesje są własnością Gateway — nie klienta. Czaty bezpośrednie używają głównego klucza sesji, a grupy i kanały otrzymują osobne klucze. Host Gateway przechowuje dane sesji i transkrypty, które stanowią autorytatywny zapis na wielu urządzeniach.

Treść wiadomości i kontekst

OpenClaw rozróżnia ciało promptu wysyłane do agenta i surowe ciało polecenia do parsowania dyrektyw. Wiadomości grupowe zawierają etykiety nadawcy dla spójności między wiadomościami w czasie rzeczywistym i kolejkowanymi. Bufory historii są konfigurowalne i wykluczają wpisy z transkryptu.

Opcje przetwarzania przy aktywnym uruchomieniu

Gdy trwa uruchomienie agenta, wiadomości w kolejce można obsłużyć w kilku trybach:

  • interrupt — przerwij bieżące uruchomienie i wykonaj najnowszą wiadomość
  • steer — wstrzyknij natychmiast, anulując oczekujące wywołania narzędzi
  • followup — zakolejkuj do następnej tury po bieżącym uruchomieniu
  • collect — scal wiadomości w jeden followup (domyślne)

Wyjście i streaming

Streaming blokowy wysyła częściowe odpowiedzi w miarę generowania, z chunkingiem respektującym limity tekstu kanału. Widoczność rozumowania kontrolowana jest dyrektywą /reasoning — nawet gdy ukryte, tokeny rozumowania wliczane są do zużycia.