channels.<channel>.streaming.mode: "progress", a OpenClaw utworzy
wiadomość po rozpoczęciu rzeczywistej pracy, będzie ją edytować, gdy agent czyta, planuje, wywołuje
narzędzia lub czeka na zatwierdzenie, a następnie przekształci ją w odpowiedź końcową.
Discord domyślnie używa już
streaming.mode: "progress", gdy
channels.discord.streaming nie jest ustawione, dlatego wersje robocze postępu
pojawiają się tam bez żadnej konfiguracji. Każdy inny kanał domyślnie używa partial
lub off; pełną tabelę wartości domyślnych dla poszczególnych kanałów zawiera sekcja Strumieniowanie i dzielenie na fragmenty.Szybki start
Co widzą użytkownicy
W przypadku surowego postępu narzędzi etykieta pojawia się, gdy agent rozpocznie istotną pracę
i pozostaje zajęty przez początkowy czas opóźnienia.
Znajduje się na górze przewijanej listy wierszy postępu, więc znika po pojawieniu się
wystarczającej liczby konkretnych wierszy pracy. Nagłówek stanu wyświetla tylko opis stanu agenta
w zwykłym języku, chyba że etykieta zostanie jawnie skonfigurowana. Odpowiedzi zawierające wyłącznie
zwykły tekst nigdy nie wyświetlają wersji roboczej postępu; wiersz pojawia się tylko przy rzeczywistych aktualizacjach pracy,
na przykład
🛠️ Bash: run tests, 🔎 Web Search: for "discord edit message"
lub ✍️ Write: to /tmp/file.
Odpowiedź końcowa zastępuje wersję roboczą w miejscu, gdy kanał może to bezpiecznie zrobić;
w przeciwnym razie OpenClaw wysyła odpowiedź końcową standardowym mechanizmem dostarczania oraz
usuwa wersję roboczą lub przestaje ją aktualizować (zobacz Finalizacja).
Wybór trybu
channels.<channel>.streaming.mode steruje widocznym zachowaniem podczas pracy:
Wybierz
progress, gdy użytkownikom bardziej zależy na tym, „co się dzieje”, niż na obserwowaniu
strumieniowania tekstu odpowiedzi token po tokenie; partial, gdy sam tekst odpowiedzi jest
sygnałem postępu; block w przypadku większych fragmentów podglądu. W Discord i
Telegram streaming.mode: "block" nadal oznacza strumieniowanie podglądu, a nie standardowe
dostarczanie odpowiedzi blokami — do tego celu użyj streaming.block.enabled.
Konfigurowanie etykiet
Etykiety postępu znajdują się wchannels.<channel>.streaming.progress. Domyślna
etykieta surowego wiersza narzędzia to "auto", która używa zwykłej wbudowanej etykiety Working.
Nagłówek stanu ukrywa tę niejawną etykietę; ustaw jawnie
label: "auto", jeśli etykieta ma być również wyświetlana nad nim:
label: "auto"):
Sterowanie wierszami postępu
Wiersze postępu pochodzą z rzeczywistych zdarzeń przebiegu: uruchomień narzędzi, aktualizacji elementów, planów zadań, zatwierdzeń, danych wyjściowych poleceń, podsumowań poprawek i podobnej aktywności agenta. Są domyślnie włączone (progress.toolProgress, wartość domyślna true).
Narzędzia mogą również emitować typowane informacje o postępie, gdy pojedyncze wywołanie nadal trwa. Dzięki temu
powolne pobieranie lub wyszukiwanie aktualizuje widoczną wersję roboczą, zanim narzędzie
zwróci wynik końcowy. Aktualizacja postępu jest częściowym wynikiem narzędzia z
pustą zawartością modelu i jawnymi publicznymi metadanymi kanału:
progress.text. Standardowy
wynik narzędzia nadal pojawia się później jako content/details i jest jedyną częścią
zwracaną do modelu.
Dodając postęp do narzędzia, należy emitować krótki, ogólny komunikat i opóźnić go,
aż operacja będzie oczekiwać wystarczająco długo, by komunikat był użyteczny. web_fetch
robi dokładnie to z opóźnieniem 5 sekund:
Tryb szczegółów
OpenClaw używa tego samego formatera dla wersji roboczych postępu i/verbose:
"explain" jest wartością domyślną i zachowuje stabilność wersji roboczych dzięki zwięzłym etykietom.
"raw" dołącza bazowe polecenie, gdy jest dostępne, co przydaje się podczas
debugowania, ale zwiększa ilość informacji na czacie. Na przykład wywołanie node --check /tmp/app.js
jest renderowane inaczej w zależności od trybu:
Tekst polecenia/exec
streaming.progress.commandText (wartość domyślna "raw") steruje ilością szczegółów polecenia
wyświetlanych obok wierszy postępu exec/bash, niezależnie od powyższego trybu szczegółów.
Ustaw wartość "status", aby zachować widoczny wiersz postępu narzędzia, jednocześnie całkowicie ukrywając
tekst polecenia:
Warstwa komentarza
streaming.progress.commentary (wartość domyślna false) przeplata narrację komentarza/wstępu modelu
sprzed użycia narzędzia (💬, na przykład „Sprawdzę… a następnie
…”) z wierszami narzędzi w wersji roboczej. Wspólny kształt konfiguracji dla wszystkich kanałów opisano w sekcji
Strumieniowanie i dzielenie na fragmenty.
Gdy warstwa komentarza jest włączona, wstępy są renderowane tylko jako te przeplatane
wiersze 💬; poniższy nagłówek stanu pozostaje ukryty, dzięki czemu warstwa zachowuje swój
udokumentowany kształt.
Nagłówek stanu
W Discord i Telegram w trybie postępu typowany wstęp modelu sprzed użycia narzędzia staje się nagłówkiem stanu wersji roboczej, gdy tylko jest dostępny. Inne kanały w trybie postępu zachowują dotychczasowe działanie stanu. Nagłówek jest domyślnie włączony i nie omija standardowej bramki aktywności dla krótkich tur; włączeniestreaming.progress.commentary przekazuje wstępy do przeplatanej
warstwy komentarza.
W Discord, gdy dla agenta zostanie wybrany model pomocniczy — jawny
utilityModel albo zadeklarowany domyślny mały model
głównego dostawcy (OpenAI → gpt-5.6-luna,
Anthropic → claude-haiku-4-5) — dostarcza on krótki tekst zastępczy w zwykłym języku,
gdy model nie emituje wstępu lub milczy od około 20 sekund
(nagłówek Telegram obecnie korzysta wyłącznie ze wstępu):
streaming.progress.narration, wartość domyślna
true) i nigdy nie korzysta awaryjnie z modelu głównego: działa tylko z jawnym
utilityModel lub domyślnym modelem zadeklarowanym przez dostawcę dla głównego
dostawcy agenta. Ustaw utilityModel: "", aby całkowicie wyłączyć kierowanie do modelu pomocniczego. Wiersze narzędzi
nadal gromadzą się poniżej i pojawiają się ponownie, jeśli oba źródła stanu przestaną działać. Edycje
wersji roboczej nadal czekają na standardową bramkę aktywności i rzeczywistą
zmianę tekstu, co zapobiega krótkim mignięciom przy szybkich turach i ogranicza częstotliwość edycji w aktywnych
kanałach. Ustaw narration: false, aby wyłączyć tylko tekst zastępczy modelu pomocniczego; nagłówki
wstępu modelu pozostaną włączone:
commandText: "status" dane wejściowe narracji pomijają również tekst poleceń exec/bash,
zgodnie z zawartością wersji roboczej.
Limity wierszy
Ograniczenie liczby widocznych wierszy (domyślnie 8):Rozszerzone renderowanie (Slack)
Slack może renderować wiersze postępu jako strukturalne pola Block Kit zamiast zwykłego tekstu:Ukrywanie wierszy narzędzi/zadań
Zachowanie pojedynczej wersji roboczej postępu przy jednoczesnym ukryciu wierszy narzędzi i zadań:toolProgress: false OpenClaw nadal pomija starsze, samodzielne
komunikaty o postępie narzędzi w tej turze — kanał pozostaje wizualnie nieaktywny aż do
ostatecznej odpowiedzi, z wyjątkiem etykiety, jeśli została skonfigurowana.
Zachowanie kanałów
Kanały bez bezpiecznej obsługi edycji używają zastępczo wskaźników pisania lub
dostarczają wyłącznie ostateczną odpowiedź. Pełne zestawienie zachowania środowiska wykonawczego dla poszczególnych kanałów
znajduje się w sekcji Strumieniowanie i dzielenie na fragmenty.
Finalizacja
Gdy ostateczna odpowiedź jest gotowa, OpenClaw próbuje zachować porządek na czacie:- W trybie
progressna Discordzie ostateczna odpowiedź jest wysyłana jako nowa wiadomość z dołączonym niewielkim potwierdzeniem aktywności-#(na przykład-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s), a wersja robocza statusu jest usuwana po dostarczeniu tej odpowiedzi. W aktywnych kanałach nad odpowiedzią nie pozostaje osierocony dziennik narzędzi; w przypadku ostatecznych odpowiedzi o błędzie wersja robocza pozostaje widocznym zapisem nieudanej tury. - Jeśli wersję roboczą można bezpiecznie przekształcić w ostateczną odpowiedź (tryby
partial/block), OpenClaw edytuje ją w miejscu. - Jeśli kanał korzysta z natywnego strumieniowania postępu, OpenClaw finalizuje ten strumień, gdy natywny transport zaakceptuje ostateczny tekst.
- W przeciwnym razie (multimedia, prośba o zatwierdzenie, jawny cel odpowiedzi, zbyt wiele fragmentów albo nieudana edycja lub wysyłka) OpenClaw wysyła ostateczną odpowiedź zwykłą ścieżką dostarczania kanału, zamiast nadpisywać wersję roboczą.
Rozwiązywanie problemów
Widoczna jest tylko ostateczna odpowiedź. Należy sprawdzić, czychannels.<channel>.streaming.mode ma wartość progress dla konta
lub kanału, który obsłużył wiadomość. Niektóre ścieżki grupowe lub odpowiedzi z cytatem wyłączają
podglądy wersji roboczych w danej turze, gdy kanał nie może bezpiecznie edytować właściwej
wiadomości.
Widoczna jest etykieta, ale nie ma wierszy narzędzi.
Należy sprawdzić streaming.progress.toolProgress. Jeśli ma wartość false, OpenClaw zachowuje
działanie pojedynczej wersji roboczej, ale ukrywa wiersze postępu narzędzi i zadań.
Zamiast edytowanej wersji roboczej widoczna jest nowa ostateczna wiadomość.
Jest to bezpieczne zachowanie zastępcze opisane w sekcji Finalizacja. Może
wystąpić w przypadku odpowiedzi multimedialnych, długich odpowiedzi, jawnych celów odpowiedzi, starych wersji roboczych
Telegrama, brakujących docelowych wątków Slacka, usuniętych wiadomości podglądu lub nieudanej
finalizacji natywnego strumienia.
Nadal widoczne są samodzielne komunikaty o postępie.
Tryb postępu pomija domyślne, samodzielne komunikaty o postępie narzędzi, gdy aktywna jest
wersja robocza. Jeśli samodzielne komunikaty nadal się pojawiają, należy potwierdzić, że tura
rzeczywiście korzysta z trybu progress, a nie streaming.mode: "off" ani ze ścieżki
kanału, która nie może utworzyć wersji roboczej dla tej wiadomości.
Teams działa inaczej niż Discord lub Telegram.
Microsoft Teams używa natywnego strumienia w czatach osobistych zamiast ogólnego
transportu podglądu opartego na wysyłaniu i edycji oraz mapuje streaming.mode: "block" na
dostarczanie bloków Teams, ponieważ nie ma trybu blokowego podglądu wersji roboczej, takiego jak Discord i
Telegram.