Zum Inhalt springen

OpenClaw Streaming konfigurieren: Block-Streaming optimieren

Kennst du das? Du schickst eine Nachricht an deinen Bot und starrst sekundenlang auf einen leeren Bildschirm, während die KI im Hintergrund rattert. Nichts killt die User-Experience schneller als langes Warten ohne Feedback.

Streaming ist hier die Lösung, aber die Umsetzung ist je nach Gateway (Telegram, Discord oder Slack) oft knifflig. OpenClaw nimmt dir diese Arbeit ab und bietet verschiedene Layer an, um Antworten flüssig und direkt zu übertragen.

OpenClaw nutzt zwei getrennte Streaming-Layer:

  • Block-Streaming (Channels): Gibt fertige Blöcke aus, während der Assistant schreibt. Das sind normale Channel-Nachrichten (keine Token-Deltas).
  • Preview-Streaming (Telegram/Discord/Slack): Aktualisiert eine temporäre Preview-Nachricht während der Generierung.

Aktuell gibt es kein echtes Token-Delta-Streaming direkt in Kanal-Nachrichten. Preview-Streaming basiert auf Nachrichten (Senden + Bearbeiten/Anhängen).

Block-Streaming sendet den Output des Assistants in groben Chunks, sobald diese verfügbar sind.

Model output
└─ text_delta/events
├─ (blockStreamingBreak=text_end)
│ └─ chunker emits blocks as buffer grows
└─ (blockStreamingBreak=message_end)
└─ chunker flushes at message_end
└─ channel send (block replies)

Legende:

  • text_delta/events: Model-Stream-Events (können bei nicht-streaming Modellen spärlich sein).
  • chunker: EmbeddedBlockChunker, der Min/Max-Grenzen und Break-Präferenzen anwendet.
  • channel send: Die tatsächlichen ausgehenden Nachrichten (Block-Antworten).

Steuerung:

  • agents.defaults.blockStreamingDefault: "on"/"off" (Standard ist off).
  • Channel-Overrides: *.blockStreaming (und Varianten pro Account), um "on"/"off" pro Kanal zu erzwingen.
  • agents.defaults.blockStreamingBreak: "text_end" oder "message_end".
  • agents.defaults.blockStreamingChunk: { minChars, maxChars, breakPreference? }.
  • agents.defaults.blockStreamingCoalesce: { minChars?, maxChars?, idleMs? } (führt gestreamte Blöcke vor dem Senden zusammen).
  • Kanal-Hard-Cap: *.textChunkLimit (z. B. channels.whatsapp.textChunkLimit).
  • Kanal-Chunk-Modus: *.chunkMode (length ist Standard, newline splittet bei Leerzeilen/Absatzgrenzen vor dem Length-Chunking).
  • Discord Soft-Cap: `channels.
OpenClaw

OpenClaw Expert

Noch festgefahren?

Wenn diese Seite nicht hilft, frage OpenClaw Expert nach Schritt-fuer-Schritt-Loesungen.