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.