OpenClaw verarbeitet eingehende Nachrichten über eine Pipeline aus Sitzungsauflösung, Queueing, Streaming, Tool-Ausführung und Reasoning-Sichtbarkeit. Diese Seite zeigt den Weg von der eingehenden Nachricht bis zur Antwort.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.
Nachrichtenfluss (auf hoher Ebene)
messages.*für Präfixe, Queueing und Gruppenverhalten.agents.defaults.*für Standardwerte für Block-Streaming und Chunking.- Channel-Overrides (
channels.whatsapp.*,channels.telegram.*usw.) für Obergrenzen und Streaming-Schalter.
Deduplizierung eingehender Nachrichten
Channels können dieselbe Nachricht nach erneuten Verbindungen erneut zustellen. OpenClaw hält einen kurzlebigen Cache, der nach Channel/Konto/Peer/Sitzung/Nachrichten-ID geschlüsselt ist, damit doppelte Zustellungen keinen weiteren Agent-Lauf auslösen.Debouncing eingehender Nachrichten
Schnell aufeinanderfolgende Nachrichten vom gleichen Absender können übermessages.inbound
zu einem einzigen Agent-Turn zusammengefasst werden. Debouncing ist pro Channel + Unterhaltung
begrenzt und verwendet die neueste Nachricht für Antwort-Threading/IDs.
Konfiguration (globaler Standard + Overrides pro Channel):
- Debounce gilt für Nur-Text-Nachrichten; Medien/Anhänge werden sofort weitergegeben.
- Steuerbefehle umgehen Debouncing, damit sie eigenständig bleiben. Channels, die explizit Coalescing von DMs desselben Absenders aktivieren, können DM-Befehle im Debounce-Fenster behalten, damit ein aufgeteilt gesendeter Payload in denselben Agent-Turn eingehen kann.
Sitzungen und Geräte
Sitzungen gehören dem Gateway, nicht den Clients.- Direkte Chats werden auf den Hauptsitzungsschlüssel des Agents reduziert.
- Gruppen/Channels erhalten eigene Sitzungsschlüssel.
- Der Sitzungsspeicher und Transkripte liegen auf dem Gateway-Host.
Metadaten von Tool-Ergebnissen
content eines Tool-Ergebnisses ist das für das Modell sichtbare Ergebnis. details eines Tool-Ergebnisses sind
Laufzeitmetadaten für UI-Rendering, Diagnosen, Medienzustellung und Plugins.
OpenClaw hält diese Grenze ausdrücklich ein:
toolResult.detailswird vor Provider-Replay und Compaction-Eingabe entfernt.- Persistierte Sitzungstranskripte behalten nur begrenzte
details; übergroße Metadaten werden durch eine kompakte Zusammenfassung mitpersistedDetailsTruncated: trueersetzt. - Plugins und Tools sollten Text, den das Modell lesen muss, in
contentablegen, nicht nur indetails.
Eingehende Bodies und Verlaufskontext
OpenClaw trennt den Prompt-Body vom Command-Body:BodyForAgent: primärer modellseitiger Text für die aktuelle Nachricht. Channel-Plugins sollten diesen auf den aktuellen prompt-tragenden Text des Absenders fokussieren.Body: Legacy-Prompt-Fallback. Dies kann Channel-Umschläge und optionale Verlaufswrapper enthalten, aber aktuelle Channels sollten sich nicht darauf als primäre Modelleingabe verlassen, wennBodyForAgentverfügbar ist.CommandBody: roher Benutzertext für Directive-/Befehls-Parsing.RawBody: Legacy-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 behalten.
Strukturierter Verlauf, Antworten, weitergeleitete Nachrichten und Channel-Metadaten werden beim Prompt-Aufbau als
nicht vertrauenswürdige Kontextblöcke mit Benutzerrolle gerendert.
Verlaufspuffer sind über messages.groupChat.historyLimit (globaler
Standard) und Overrides pro Channel wie channels.slack.historyLimit oder
channels.telegram.accounts.<id>.historyLimit konfigurierbar (setzen Sie 0, um sie zu deaktivieren).
Queueing und Followups
Wenn bereits ein Lauf aktiv ist, können eingehende Nachrichten in die Queue gestellt, in den aktuellen Lauf gesteuert oder für einen Followup-Turn gesammelt werden.- Konfigurieren Sie dies über
messages.queue(undmessages.queue.byChannel). - Der Standardmodus ist
steer, mit einem Followup-Debounce von 500 ms, wenn Steering auf Queue-basierte Followup-Zustellung zurückfällt. - Modi:
steer,followup,collect,steer-backlog,interruptund der Legacy-Modusqueuemit jeweils einem Element zur Zeit.
Besitz von Channel-Läufen
Channel-Plugins können Reihenfolge bewahren, Eingaben debouncen und Transport-Backpressure anwenden, bevor eine Nachricht in die Sitzungs-Queue gelangt. Sie sollten kein separates Timeout um den Agent-Turn selbst erzwingen. Sobald eine Nachricht zu einer Sitzung geroutet wurde, wird lang laufende Arbeit durch die Sitzungs-, Tool- und Laufzeit- Lebenszyklen gesteuert, sodass alle Channels langsame Turns konsistent melden und davon wiederherstellen.Streaming, Chunking und Batching
Block-Streaming sendet Teilantworten, während das Modell Textblöcke erzeugt. Chunking respektiert Channel-Textlimits und vermeidet das Aufteilen von eingezäuntem Code. Wichtige Einstellungen:agents.defaults.blockStreamingDefault(on|off, standardmäßig aus)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(Leerlauf-basiertes Batching)agents.defaults.humanDelay(menschenähnliche Pause zwischen Blockantworten)- Channel-Overrides:
*.blockStreamingund*.blockStreamingCoalesce(Nicht-Telegram-Channels benötigen explizit*.blockStreaming: true)
Reasoning-Sichtbarkeit und Tokens
OpenClaw kann Modell-Reasoning 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 einen Reasoning-Stream in eine temporäre Entwurfsblase, die nach der endgültigen Zustellung gelöscht wird; verwenden Sie
/reasoning onfür persistente Reasoning-Ausgabe.
Präfixe, Threading und Antworten
Die Formatierung ausgehender Nachrichten ist inmessages zentralisiert:
messages.responsePrefix,channels.<channel>.responsePrefixundchannels.<channel>.accounts.<id>.responsePrefix(Kaskade für ausgehende Präfixe), pluschannels.whatsapp.messagePrefix(WhatsApp-Präfix für eingehende Nachrichten)- Antwort-Threading über
replyToModeund Standards pro Channel
Stille Antworten
Das exakte stille TokenNO_REPLY / no_reply bedeutet „keine für Benutzer sichtbare Antwort zustellen“.
Wenn ein Turn außerdem ausstehende Tool-Medien hat, etwa generiertes TTS-Audio, entfernt OpenClaw
den stillen Text, stellt den Medienanhang aber trotzdem zu.
OpenClaw löst dieses Verhalten nach Unterhaltungstyp auf:
- Direkte Unterhaltungen erlauben Stille standardmäßig nicht und schreiben eine bloße stille Antwort in einen kurzen sichtbaren Fallback um.
- Gruppen/Channels erlauben Stille standardmäßig.
- Interne Orchestrierung erlaubt Stille standardmäßig.
/verbose auf on oder full steht.
Standards liegen unter agents.defaults.silentReply und
agents.defaults.silentReplyRewrite; surfaces.<id>.silentReply und
surfaces.<id>.silentReplyRewrite können sie pro Surface überschreiben.
Wenn die übergeordnete Sitzung einen oder mehrere ausstehende gestartete Subagent-Läufe hat, werden bloße
stille Antworten auf allen Surfaces verworfen, statt umgeschrieben zu werden, sodass die
übergeordnete Sitzung ruhig bleibt, bis das Abschlussereignis des Kindes die echte Antwort zustellt.
Verwandte Themen
- Refaktorierung des Nachrichtenlebenszyklus - Zielentwurf für dauerhaftes Senden und Empfangen
- Streaming — Echtzeit-Nachrichtenzustellung
- Retry — Retry-Verhalten bei Nachrichtenzustellung
- Queue — Queue für Nachrichtenverarbeitung
- Channels — Integrationen für Messaging-Plattformen