Nachrichten
Diese Seite führt zusammen, wie OpenClaw eingehende Nachrichten, Sitzungen, Warteschlangen, Streaming und die Sichtbarkeit von Reasoning verarbeitet.Nachrichtenfluss (allgemein)
messages.*für Präfixe, Warteschlangen und Gruppenverhalten.agents.defaults.*für Standardwerte bei Block-Streaming und Chunking.- Kanalüberschreibungen (
channels.whatsapp.*,channels.telegram.*usw.) für Obergrenzen und Streaming-Toggles.
Deduplizierung eingehender Nachrichten
Kanäle können nach Wiederverbindungen dieselbe Nachricht erneut zustellen. OpenClaw führt einen kurzlebigen Cache, der nach Kanal/Konto/Peer/Sitzung/Nachrichten-ID geschlüsselt ist, sodass doppelte Zustellungen keinen weiteren Agent-Lauf auslösen.Debouncing eingehender Nachrichten
Schnell aufeinanderfolgende Nachrichten vom gleichen Absender können übermessages.inbound zu einem einzelnen
Agent-Durchlauf gebündelt werden. Debouncing ist pro Kanal + Konversation abgegrenzt
und verwendet die neueste Nachricht für Antwort-Threading/IDs.
Konfiguration (globaler Standard + Überschreibungen pro Kanal):
- Debouncing gilt für nur Text-Nachrichten; Medien/Anhänge werden sofort geleert.
- Kontrollbefehle umgehen Debouncing, damit sie eigenständig bleiben.
Sitzungen und Geräte
Sitzungen gehören dem Gateway, nicht den Clients.- Direktchats werden in den Hauptsitzungsschlüssel des Agent zusammengeführt.
- Gruppen/Kanäle erhalten ihre eigenen Sitzungsschlüssel.
- Der Sitzungsspeicher und die Transkripte liegen auf dem Gateway-Host.
Eingehende Bodys und Verlaufskontext
OpenClaw trennt den Prompt-Body vom Command-Body:Body: an den Agent gesendeter Prompt-Text. Dieser kann Kanal-Envelopes und optionale Verlaufs-Wrapper enthalten.CommandBody: roher Benutzertext für Directive-/Command-Parsing.RawBody: veralteter Alias fürCommandBody(aus Kompatibilitätsgründen beibehalten).
[Chat messages since your last reply - for context][Current message - respond to this]
CommandBody (oder
RawBody) auf den ursprünglichen Nachrichtentext setzen und Body als kombinierten Prompt belassen.
Verlaufspuffer sind über messages.groupChat.historyLimit (globaler
Standard) und Überschreibungen pro Kanal wie channels.slack.historyLimit oder
channels.telegram.accounts.<id>.historyLimit konfigurierbar (0 zum Deaktivieren).
Warteschlangen und Followups
Wenn bereits ein Lauf aktiv ist, können eingehende Nachrichten in die Warteschlange gestellt, in den aktuellen Lauf gelenkt oder für einen Followup-Durchlauf gesammelt werden.- Konfiguration über
messages.queue(undmessages.queue.byChannel). - Modi:
interrupt,steer,followup,collectsowie Backlog-Varianten.
Streaming, Chunking und Batching
Block-Streaming sendet partielle Antworten, während das Modell Textblöcke erzeugt. Chunking beachtet die Textlimits des Kanals und vermeidet das Aufteilen von Fenced Code. Wichtige Einstellungen:agents.defaults.blockStreamingDefault(on|off, Standard off)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(idle-basiertes Batching)agents.defaults.humanDelay(menschenähnliche Pause zwischen Block-Antworten)- Kanalüberschreibungen:
*.blockStreamingund*.blockStreamingCoalesce(Nicht-Telegram-Kanäle erfordern explizit*.blockStreaming: true)
Sichtbarkeit von Reasoning und Tokens
OpenClaw kann das Reasoning des Modells anzeigen oder ausblenden:/reasoning on|off|streamsteuert die Sichtbarkeit.- Reasoning-Inhalte zählen weiterhin zur Token-Nutzung, wenn sie vom Modell erzeugt werden.
- Telegram unterstützt Reasoning-Streaming in die Entwurfsblase.
Präfixe, Threading und Antworten
Die Formatierung ausgehender Nachrichten ist inmessages zentralisiert:
messages.responsePrefix,channels.<channel>.responsePrefixundchannels.<channel>.accounts.<id>.responsePrefix(Kaskade ausgehender Präfixe) sowiechannels.whatsapp.messagePrefix(eingehendes WhatsApp-Präfix)- Antwort-Threading über
replyToModeund Standards pro Kanal