// dokumentacja openclaw

Streaming w OpenClaw — blokowy, podglądowy i chunking

Mechanizmy streamingu

OpenClaw oferuje dwa odrębne mechanizmy streamingu:

  1. Streaming blokowy (block streaming) — dostarcza ukończone bloki jako normalne wiadomości kanału w miarę generowania treści
  2. Streaming podglądowy (preview streaming) — aktualizuje tymczasowe wiadomości podglądu podczas generowania (Telegram, Discord, Slack)

System nie oferuje prawdziwego streamingu token-delta do wiadomości kanałowych. Streaming podglądowy operuje na bazie wiadomości, używając wzorca wyślij-i-edytuj.

Architektura streamingu blokowego

Przepływ przetwarza wyjście modelu przez zdarzenia delta tekstu, stosuje logikę chunkowania, a następnie wysyła bloki jako odpowiedzi kanału.

Kluczowe opcje konfiguracji:

  • agents.defaults.blockStreamingDefault — włącz/wyłącz streaming (domyślnie wyłączony)
  • agents.defaults.blockStreamingBreak — wybierz text_end lub message_end
  • agents.defaults.blockStreamingChunk — ustaw minChars, maxChars i breakPreference
  • agents.defaults.blockStreamingCoalesce — scalanie bloków z czasem bezczynności
  • Nadpisania per kanał przez *.blockStreaming i *.textChunkLimit

Algorytm chunkowania

EmbeddedBlockChunker implementuje inteligentne dzielenie tekstu:

  • Próg minimalny — czeka aż bufor osiągnie minChars
  • Granica maksymalna — preferuje podziały przed maxChars; wymusza podział na limicie
  • Preferencja podziału — akapit → nowa linia → zdanie → spacja → twardy podział
  • Obsługa bloków kodu — nigdy nie dzieli wewnątrz ogradzań kodu; zamyka i otwiera ponownie, zachowując poprawność Markdown

Koalescencja i tempo

Scalanie bloków: kolejne fragmenty scalają się w przerwach bezczynności (idleMs), redukując fragmentację przy zachowaniu progresywnego dostarczania. Domyślny minChars wzrasta do 1500 dla Signal, Slack i Discord.

Opóźnienia zbliżone do ludzkich: agents.defaults.humanDelay dodaje losowe pauzy między odpowiedziami blokowymi. Opcje: off (domyślnie), natural (800–2500 ms) lub niestandardowe zakresy.

Tryby streamingu podglądowego

Kanoniczne ustawienie: channels.<channel>.streaming

Dostępne opcje: off, partial, block, progress

  • Telegram — obsługuje wszystkie tryby; używa wzorca edycji wiadomości
  • Discord — obsługuje wszystkie tryby; używa chunkowania wersji roboczych
  • Slack — obsługuje wszystkie tryby, w tym natywne API streamingu i styl dopisywania (append)