OpenClaw obsługuje wiadomości przychodzące przez potok obejmujący rozwiązywanie sesji, kolejkowanie, streaming, wykonywanie narzędzi i widoczność rozumowania. Ta strona mapuje ścieżkę od wiadomości przychodzącej do odpowiedzi.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Przepływ wiadomości (wysoki poziom)
messages.*dla prefiksów, kolejkowania i zachowania grup.agents.defaults.*dla domyślnych ustawień streamingu bloków i dzielenia na fragmenty.- Nadpisania kanałów (
channels.whatsapp.*,channels.telegram.*itd.) dla limitów i przełączników streamingu.
Deduplikacja przychodzących wiadomości
Kanały mogą ponownie dostarczyć tę samą wiadomość po ponownym połączeniu. OpenClaw utrzymuje krótkotrwałą pamięć podręczną kluczowaną według kanału/konta/peera/sesji/identyfikatora wiadomości, aby zduplikowane dostarczenia nie uruchamiały kolejnego przebiegu agenta.Debouncing wiadomości przychodzących
Szybkie kolejne wiadomości od tego samego nadawcy mogą zostać zebrane w jedną turę agenta przezmessages.inbound. Debouncing jest ograniczony do kanału + konwersacji
i używa najnowszej wiadomości do wątkowania odpowiedzi/identyfikatorów.
Konfiguracja (globalna wartość domyślna + nadpisania dla kanałów):
- Debounce dotyczy wiadomości wyłącznie tekstowych; multimedia/załączniki są opróżniane natychmiast.
- Polecenia sterujące omijają debouncing, więc pozostają samodzielne. Kanały, które jawnie włączą scalanie wiadomości prywatnych od tego samego nadawcy, mogą zachować polecenia DM w oknie debounce, aby ładunek wysłany w częściach mógł dołączyć do tej samej tury agenta.
Sesje i urządzenia
Sesje należą do Gateway, a nie do klientów.- Czaty bezpośrednie zwijają 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.
Metadane wyników narzędzi
content wyniku narzędzia to wynik widoczny dla modelu. details wyniku narzędzia to
metadane runtime do renderowania UI, diagnostyki, dostarczania multimediów i pluginów.
OpenClaw utrzymuje tę granicę jawnie:
toolResult.detailsjest usuwane przed ponownym odtworzeniem u dostawcy i wejściem do compaction.- Utrwalone transkrypty sesji zachowują tylko ograniczone
details; zbyt duże metadane są zastępowane zwartym podsumowaniem oznaczonympersistedDetailsTruncated: true. - Pluginy i narzędzia powinny umieszczać tekst, który model musi przeczytać, w
content, nie tylko wdetails.
Treści przychodzące i kontekst historii
OpenClaw oddziela treść promptu od treści polecenia:BodyForAgent: główny tekst widoczny dla modelu dla bieżącej wiadomości. Pluginy kanałów powinny utrzymywać go skupionym na bieżącym tekście nadawcy niosącym prompt.Body: starsza rezerwowa treść promptu. Może zawierać koperty kanału i opcjonalne opakowania historii, ale obecne kanały nie powinny polegać na niej jako na głównym wejściu modelu, gdy dostępne jestBodyForAgent.CommandBody: surowy tekst użytkownika do parsowania dyrektyw/poleceń.RawBody: starszy alias dlaCommandBody(zachowany dla zgodności).
[Wiadomości czatu od Twojej ostatniej odpowiedzi - dla kontekstu][Bieżąca wiadomość - odpowiedz na nią]
CommandBody (lub
RawBody) na oryginalny tekst wiadomości i zachowywać Body jako połączony prompt.
Ustrukturyzowana historia, odpowiedź, wiadomości przekazane dalej i metadane kanału są renderowane jako
bloki niezaufanego kontekstu roli użytkownika podczas składania promptu.
Bufory historii można konfigurować przez messages.groupChat.historyLimit (globalna
wartość domyślna) 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 uruchomienie jest już aktywne, wiadomości przychodzące mogą być kolejkowane, kierowane do bieżącego uruchomienia albo zbierane do tury follow-up.- Skonfiguruj przez
messages.queue(orazmessages.queue.byChannel). - Domyślny tryb to
steer, z 500 ms debounce dla follow-up, gdy sterowanie przechodzi awaryjnie na dostarczenie kolejkowanego follow-upu. - Tryby:
steer,followup,collect,steer-backlog,interruptoraz starszy trybqueueobsługujący po jednej wiadomości naraz.
Własność uruchomienia kanału
Pluginy kanałów mogą zachowywać kolejność, stosować debounce wejścia i nakładać presję wsteczną transportu, zanim wiadomość trafi do kolejki sesji. Nie powinny nakładać osobnego limitu czasu wokół samej tury agenta. Gdy wiadomość zostanie skierowana do sesji, długotrwała praca jest zarządzana przez cykl życia sesji, narzędzia i runtime, aby wszystkie kanały spójnie raportowały powolne tury i odzyskiwały po nich działanie.Streaming, dzielenie na fragmenty i wsadowanie
Streaming bloków wysyła częściowe odpowiedzi w miarę, jak model tworzy bloki tekstu. Dzielenie na fragmenty respektuje limity tekstowe kanału i unika rozdzielania 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(wsadowanie oparte na bezczynności)agents.defaults.humanDelay(ludzka pauza między odpowiedziami blokowymi)- Nadpisania kanałów:
*.blockStreamingi*.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ść rozumowania nadal wlicza się do zużycia tokenów, gdy jest generowana przez model.
- Telegram obsługuje strumień rozumowania do tymczasowego dymka szkicu, który jest usuwany po finalnym dostarczeniu; użyj
/reasoning on, aby uzyskać trwałe wyjście rozumowania.
Prefiksy, wątkowanie i odpowiedzi
Formatowanie wiadomości wychodzących jest scentralizowane wmessages:
messages.responsePrefix,channels.<channel>.responsePrefixichannels.<channel>.accounts.<id>.responsePrefix(kaskada prefiksu wychodzącego), pluschannels.whatsapp.messagePrefix(prefiks przychodzący WhatsApp)- Wątkowanie odpowiedzi przez
replyToModei domyślne ustawienia per kanał
Ciche odpowiedzi
Dokładny token ciszyNO_REPLY / no_reply oznacza „nie dostarczaj odpowiedzi widocznej dla użytkownika”.
Gdy tura ma także oczekujące multimedia narzędzia, takie jak wygenerowany dźwięk TTS, OpenClaw
usuwa cichy tekst, ale nadal dostarcza załącznik multimedialny.
OpenClaw rozstrzyga to zachowanie według typu konwersacji:
- Konwersacje bezpośrednie domyślnie nie zezwalają na ciszę i przepisują samą cichą odpowiedź na krótką widoczną odpowiedź zastępczą.
- Grupy/kanały domyślnie zezwalają na ciszę.
- Wewnętrzna orkiestracja domyślnie zezwala na ciszę.
/verbose ma wartość on lub full.
Wartości domyślne znajdują się pod agents.defaults.silentReply i
agents.defaults.silentReplyRewrite; surfaces.<id>.silentReply i
surfaces.<id>.silentReplyRewrite mogą nadpisać je dla powierzchni.
Gdy sesja nadrzędna ma co najmniej jedno oczekujące uruchomienie utworzonego subagenta, same
ciche odpowiedzi są odrzucane na wszystkich powierzchniach zamiast przepisywania, więc
rodzic pozostaje cichy, dopóki zdarzenie ukończenia dziecka nie dostarczy prawdziwej odpowiedzi.
Powiązane
- Refaktoryzacja cyklu życia wiadomości - docelowy trwały projekt wysyłania i odbierania
- Streaming — dostarczanie wiadomości w czasie rzeczywistym
- Ponawianie — zachowanie ponawiania dostarczania wiadomości
- Kolejka — kolejka przetwarzania wiadomości
- Kanały — integracje z platformami wiadomości