Wiadomości
Ta strona spina sposób, w jaki OpenClaw obsługuje wiadomości przychodzące, sesje, kolejkowanie, strumieniowanie oraz widoczność rozumowania.Przepływ wiadomości (wysoki poziom)
messages.*dla prefiksów, kolejkowania i zachowania w grupach.agents.defaults.*dla strumieniowania blokowego i domyślnych ustawień porcjowania.- Nadpisania per kanał (
channels.whatsapp.*,channels.telegram.*itd.) dla limitów i przełączników strumieniowania.
Deduplikacja przychodzących
Kanały mogą ponownie dostarczyć tę samą wiadomość po ponownym połączeniu. OpenClaw utrzymuje krótkotrwałą pamięć podręczną kluczowaną przez kanał/konto/peer/sesję/ID wiadomości, aby zduplikowane dostarczenia nie uruchamiały kolejnego przebiegu agenta.Debouncing przychodzących
Szybkie, następujące po sobie wiadomości od tego samego nadawcy mogą być łączone w jedną turę agenta poprzezmessages.inbound. Debouncing jest zakresowany per kanał + konwersacja
i używa najnowszej wiadomości do wątkowania odpowiedzi/ID.
Konfiguracja (globalna domyślna + nadpisania per kanał):
- Debounce dotyczy wiadomości tylko tekstowych; media/załączniki są opróżniane natychmiast.
- Polecenia kontrolne omijają debouncing, aby pozostały samodzielne.
Sesje i urządzenia
Sesje są własnością Gateway, a nie klientów.- Czaty bezpośrednie zapadają się do głównego klucza sesji agenta.
- Grupy/kanały otrzymują własne klucze sesji.
- Magazyn sesji i transkrypty znajdują się na hoście Gateway.
Treści przychodzące i kontekst historii
OpenClaw rozdziela treść promptu od treści polecenia:Body: tekst promptu wysyłany do agenta. Może zawierać koperty kanału i opcjonalne opakowania historii.CommandBody: surowy tekst użytkownika do parsowania dyrektyw/poleceń.RawBody: starszy alias dlaCommandBody(zachowany dla kompatybilności).
[Chat messages since your last reply - for context][Current message - respond to this]
CommandBody (lub
RawBody) na oryginalny tekst wiadomości i zachować Body jako połączony prompt.
Bufory historii są konfigurowalne poprzez messages.groupChat.historyLimit (domyślne globalnie) oraz nadpisania
per kanał, takie jak channels.slack.historyLimit lub channels.telegram.accounts.<id>.historyLimit (ustaw 0, aby wyłączyć).
Kolejkowanie i follow-upy
Jeśli przebieg jest już aktywny, wiadomości przychodzące mogą być kolejkowane, kierowane do bieżącego przebiegu lub zbierane na turę follow-up.- Konfiguracja poprzez
messages.queue(orazmessages.queue.byChannel). - Tryby:
interrupt,steer,followup,collect, plus warianty backlogu.
Strumieniowanie, porcjowanie i batchowanie
Strumieniowanie blokowe wysyła częściowe odpowiedzi w miarę, jak model produkuje bloki tekstu. Porcjowanie respektuje limity tekstu kanału i unika dzielenia ogrodzonych bloków kodu. Kluczowe ustawienia:agents.defaults.blockStreamingDefault(on|off, domyślnie wyłączone)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(batchowanie oparte na bezczynności)agents.defaults.humanDelay(ludzka pauza między odpowiedziami blokowymi)- Nadpisania per kanał:
*.blockStreamingoraz*.blockStreamingCoalesce(kanały inne niż Telegram wymagają jawnego*.blockStreaming: true)
Widoczność rozumowania i tokeny
OpenClaw może ujawniać lub ukrywać rozumowanie modelu:/reasoning on|off|streamkontroluje widoczność.- Treści rozumowania nadal wliczają się do użycia tokenów, gdy są generowane przez model.
- Telegram obsługuje strumień rozumowania do bańki szkicowej.
Prefiksy, wątkowanie i odpowiedzi
Formatowanie wiadomości wychodzących jest scentralizowane wmessages:
messages.responsePrefix,channels.<channel>.responsePrefixichannels.<channel>.accounts.<id>.responsePrefix(kaskada prefiksów wychodzących) orazchannels.whatsapp.messagePrefix(prefiks przychodzący WhatsApp)- Wątkowanie odpowiedzi poprzez
replyToModeoraz domyślne ustawienia per kanał