Messages and delivery
Fortschrittsentwürfe
Fortschrittsentwürfe verwandeln eine Kanalnachricht in eine live aktualisierte Statuszeile, während ein
Agent arbeitet, anstatt einen Stapel temporärer „wird noch bearbeitet“-Antworten zu erzeugen. Legen Sie
channels.<channel>.streaming.mode: "progress" fest. OpenClaw erstellt die
Nachricht, sobald die eigentliche Arbeit beginnt, bearbeitet sie, während der Agent liest, plant, Tools
aufruft oder auf eine Genehmigung wartet, und wandelt sie anschließend in die endgültige Antwort um.
Shell wird ausgeführt...📖 aus docs/concepts/progress-drafts.md🔎 Websuche: nach "discord edit message"🛠️ Bash: Tests ausführenSchnellstart
{ channels: { discord: { streaming: { mode: "progress", }, }, },}Ab hier gelten folgende Standardwerte: eine Startverzögerung von 5 Sekunden (oder ein sofortiger Start bei einem zweiten Arbeitsereignis), kompakte Fortschrittszeilen, während sinnvolle Arbeit stattfindet, und die Unterdrückung der älteren eigenständigen Fortschrittsnachrichten für diesen Durchlauf. Entwürfe mit unformatierten Tool-Zeilen verwenden eine automatische Ein-Wort-Bezeichnung; bei einem ausformulierten Status wird dieser redundante Titel weggelassen, sofern Sie nicht ausdrücklich einen konfigurieren.
Diese Seite behandelt die Bedienung von Fortschrittsentwürfen und die zugehörigen Konfigurationsoptionen. Die vollständige Matrix der Streaming-Modi, kanalspezifische Laufzeithinweise und die Migration veralteter Schlüssel finden Sie unter Streaming und Aufteilung.
Was Benutzer sehen
| Bestandteil | Zweck |
|---|---|
| Bezeichnung | Optionale Start-/Statuszeile wie Working oder Shelling. |
| Fortschrittszeilen | Kompakte Aktualisierungen zum Ausführungsverlauf mit denselben Tool-Symbolen und Detailformatierern wie /verbose. |
Bei unformatiertem Tool-Fortschritt erscheint die Bezeichnung, sobald der Agent mit sinnvoller Arbeit beginnt
und während der anfänglichen Verzögerung beschäftigt bleibt oder sofort ein zweites Arbeitsereignis ausgelöst wird.
Sie steht am Anfang der fortlaufenden Liste der Fortschrittszeilen und scrollt daher aus dem Sichtbereich, sobald
genügend konkrete Arbeitszeilen erscheinen. Ausformulierter Fortschritt zeigt nur die allgemein verständliche
Statusmeldung des Agenten an, sofern nicht ausdrücklich eine Bezeichnung konfiguriert wurde. Antworten, die ausschließlich
aus reinem Text bestehen, zeigen niemals einen Fortschrittsentwurf; eine Zeile erscheint nur bei tatsächlichen Arbeitsaktualisierungen,
beispielsweise 🛠️ Bash: run tests, 🔎 Web Search: for "discord edit message"
oder ✍️ Write: to /tmp/file.
Die endgültige Antwort ersetzt den Entwurf an derselben Stelle, wenn der Kanal dies sicher unterstützt. Andernfalls sendet OpenClaw die endgültige Antwort über die normale Zustellung und bereinigt den Entwurf oder aktualisiert ihn nicht weiter (siehe Abschluss).
Modus auswählen
channels.<channel>.streaming.mode steuert das während der Verarbeitung sichtbare Verhalten:
| Modus | Am besten geeignet für | Anzeige im Chat |
|---|---|---|
off |
Ruhige Kanäle | Nur die endgültige Antwort. |
partial |
Sichtbarer Aufbau des Antworttexts | Ein Entwurf, der mit dem neuesten Antworttext aktualisiert wird. |
block |
Größere Abschnitte der Antwortvorschau | Eine Vorschau, die in größeren Abschnitten aktualisiert oder ergänzt wird. |
progress |
Tool-intensive oder lang laufende Durchläufe | Ein Statusentwurf, anschließend die endgültige Antwort. |
Wählen Sie progress, wenn Benutzern wichtiger ist, „was gerade geschieht“, als zu beobachten,
wie der Antworttext Token für Token gestreamt wird; wählen Sie partial, wenn der Antworttext selbst
das Fortschrittssignal darstellt, und block für größere Vorschauabschnitte. Bei Discord und
Telegram bleibt streaming.mode: "block" Vorschau-Streaming und ist keine normale
Blockantwort-Zustellung — verwenden Sie dafür streaming.block.enabled.
Labels konfigurieren
Fortschritts-Labels befinden sich unter channels.<channel>.streaming.progress. Das standardmäßige
Label für reine Tool-Zeilen ist "auto", wodurch ein Label aus OpenClaws integriertem
Pool aus einzelnen Wörtern ausgewählt wird. Bei kommentiertem Fortschritt wird dieses implizite Label ausgeblendet; setzen Sie
label: "auto" explizit, wenn es auch über der Kommentierung angezeigt werden soll:
Arbeiten, Shell verwenden, Huschen, Krallen einsetzen, Zwicken, Häuten, Blubbern, Gezeiten folgen,Riffe erkunden, Knacken, Sieben, Einlegen, Nautilus sein, Krill fangen, Seepocken sammeln,Hummern, Gezeitentümpel erkunden, Perlen suchen, Schnappen, AuftauchenVerwenden Sie ein festes Label:
{ channels: { discord: { streaming: { mode: "progress", progress: { label: "Untersuchung", }, }, }, },}Verwenden Sie Ihren eigenen Label-Pool (die Auswahl erfolgt weiterhin zufällig/anhand des Seeds, wenn label: "auto" gesetzt ist):
{ channels: { discord: { streaming: { mode: "progress", progress: { label: "auto", labels: ["Prüfung", "Lesen", "Testen", "Abschluss"], }, }, }, },}Blenden Sie das Label aus und zeigen Sie nur Fortschrittszeilen an:
{ channels: { discord: { streaming: { mode: "progress", progress: { label: false, }, }, }, },}Fortschrittszeilen steuern
Fortschrittszeilen stammen aus tatsächlichen Ausführungsereignissen: Tool-Starts, Elementaktualisierungen, Aufgabenplänen,
Genehmigungen, Befehlsausgaben, Patch-Zusammenfassungen und ähnlichen Agentenaktivitäten.
Sie sind standardmäßig aktiviert (progress.toolProgress, Standardwert true).
Tools können außerdem typisierte Fortschrittsmeldungen ausgeben, während ein einzelner Aufruf noch ausgeführt wird. So aktualisiert ein langsamer Abruf oder eine langsame Suche den sichtbaren Entwurf, bevor das Tool sein endgültiges Ergebnis zurückgibt. Die Fortschrittsaktualisierung ist ein partielles Tool-Ergebnis mit leerem Modellinhalt und expliziten öffentlichen Kanalmetadaten:
{ "content": [], "progress": { "text": "Seiteninhalt wird abgerufen...", "visibility": "channel", "privacy": "public", "id": "web_fetch:fetching" }}OpenClaw rendert nur progress.text in der Fortschritts-UI des Kanals. Das normale
Tool-Ergebnis trifft später weiterhin als content/details ein und ist der einzige Teil,
der an das Modell zurückgegeben wird.
Wenn Sie einem Tool Fortschrittsmeldungen hinzufügen, geben Sie eine kurze, allgemeine Meldung aus und verzögern Sie sie,
bis der Vorgang lange genug aussteht, damit die Meldung nützlich ist. web_fetch
tut genau dies mit einer Verzögerung von 5 Sekunden:
const clearProgressTimer = scheduleToolProgress( onUpdate, { text: "Seiteninhalt wird abgerufen...", id: "web_fetch:fetching" }, 5_000, { signal },); try { return await runToolWork();} finally { clearProgressTimer();}Schnelle Aufrufe zeigen keine Fortschrittszeile; lange Aufrufe zeigen eine, solange sie noch ausstehen; bei abgebrochenen Aufrufen wird der Timer gelöscht, bevor ein veralteter Fortschritt angezeigt werden kann. Fortschrittstext ist ein öffentlicher UI-Seitenkanal und darf daher niemals Geheimnisse, unverarbeitete Argumente, abgerufene Inhalte, Befehlsausgaben oder Seitentext enthalten.
Detailmodus
OpenClaw verwendet denselben Formatierer für Fortschrittsentwürfe und /verbose:
{ agents: { defaults: { toolProgressDetail: "explain", // explain | raw }, },}"explain" ist die Standardeinstellung und sorgt mit prägnanten Bezeichnungen für stabile Entwürfe.
"raw" hängt den zugrunde liegenden Befehl an, sofern dieser verfügbar ist. Dies ist beim
Debuggen hilfreich, führt im Chat jedoch zu mehr Ausgaben. Beispielsweise wird ein Aufruf von node --check /tmp/app.js
je nach Modus unterschiedlich dargestellt:
| Modus | Fortschrittszeile |
|---|---|
explain |
🛠️ check js syntax for /tmp/app.js |
raw |
🛠️ check js syntax for /tmp/app.js · node --check /tmp/app.js |
Befehls-/Exec-Text
streaming.progress.commandText (Standardwert "raw") steuert unabhängig vom oben genannten Detailmodus, wie viele Befehlsdetails neben Exec-/Bash-Fortschrittszeilen angezeigt werden. Setzen Sie den Wert auf "status", damit eine Zeile für den Tool-Fortschritt sichtbar bleibt, während der Befehlstext vollständig ausgeblendet wird:
{ channels: { discord: { streaming: { mode: "progress", progress: { commandText: "status", }, }, }, },}Kommentarspur
streaming.progress.commentary (Standardwert false) fügt die vor der Werkzeugnutzung ausgegebenen Kommentare bzw. Präambel-Erläuterungen des Modells (💬, zum Beispiel „Ich prüfe ... und dann ...“) zwischen die Werkzeugzeilen im Entwurf ein. Unter Streaming und Aufteilung finden Sie die kanalübergreifend verwendete gemeinsame Konfigurationsstruktur.
Erläuterter Status
Wenn für den Agenten ein Hilfsmodell aufgelöst wird – entweder ein explizites utilityModel oder das vom primären Provider deklarierte Standard-Kleinmodell (OpenAI → gpt-5.6-luna, Anthropic → claude-haiku-4-5) –, ersetzt der Fortschrittsentwurf die fortlaufenden Werkzeugzeilen durch eine kurze, allgemein verständliche Erläuterung der aktuellen Tätigkeit des Agenten. Sie wird vom kostengünstigeren Modell verfasst und im Verlauf der Arbeit aktualisiert:
Das Standardmodell in Ihrer Konfiguration wird aktualisiert; anschließend wirddas Gateway neu gestartet, damit die Änderung übernommen wird. Ein Aufruf zumAuflisten der Agenten ist fehlgeschlagen und wird erneut versucht.Die Erläuterung ist standardmäßig aktiviert (streaming.progress.narration, Standardwert true) und greift niemals auf das primäre Modell zurück: Sie wird nur mit einem expliziten utilityModel oder einem vom Provider deklarierten Standardmodell für den primären Provider des Agenten ausgeführt. Legen Sie utilityModel: "" fest, um das Hilfsmodell-Routing vollständig zu deaktivieren. Werkzeugzeilen werden darunter weiterhin gesammelt und wieder angezeigt, wenn die Erläuterung endet. Der Entwurf wird zudem erst nach der regulären Aktivitätsschwelle und nur dann bearbeitet, wenn sich der Erläuterungstext tatsächlich ändert. Dadurch werden kurzes Aufblitzen bei schnellen Durchläufen vermieden und unnötige Bearbeitungen in stark ausgelasteten Kanälen reduziert. Deaktivieren Sie die Funktion, um die unverarbeiteten Werkzeugzeilen beizubehalten:
{ channels: { discord: { streaming: { mode: "progress", progress: { narration: false, }, }, }, },}Die Eingabe für die Begleitbeschreibung ist begrenzt und redigiert: Das Utility-Modell erhält den
Text der eingehenden Anfrage sowie dieselben kompakten, redigierten Werkzeugzusammenfassungen, die der Entwurf
darstellen würde – niemals rohe Befehlsausgaben oder Werkzeugergebnisse. Bei
commandText: "status" lässt die Eingabe für die Begleitbeschreibung außerdem den Text von exec/bash-Befehlen aus,
entsprechend der Darstellung im Entwurf.
Zeilenlimits
Begrenzen Sie, wie viele Zeilen sichtbar bleiben (Standardwert 8):
{ channels: { discord: { streaming: { mode: "progress", progress: { maxLines: 4, }, }, }, },}Fortschrittszeilen werden automatisch komprimiert, um den Umbruch von Chat-Blasen zu reduzieren, während der Entwurf bearbeitet wird. OpenClaw kürzt außerdem lange Zeilen, damit wiederholte Entwurfsänderungen nicht bei jeder Aktualisierung anders umbrechen. Das standardmäßige Budget pro Zeile beträgt 120 Zeichen; Fließtext wird an einer Wortgrenze abgeschnitten, während lange Details wie Pfade oder rohe Befehle mit Auslassungspunkten in der Mitte gekürzt werden, sodass das Ende sichtbar bleibt.
Passen Sie das Budget pro Zeile an:
{ channels: { discord: { streaming: { mode: "progress", progress: { maxLineChars: 160, }, }, }, },}Formatierte Darstellung (Slack)
Slack kann Fortschrittszeilen als strukturierte Block-Kit-Felder statt als Klartext darstellen:
{ channels: { slack: { streaming: { mode: "progress", progress: { render: "rich", }, }, }, },}Bei der formatierten Darstellung wird neben den Block-Kit-Feldern immer derselbe Klartextinhalt gesendet, sodass Clients, die das umfangreichere Format nicht darstellen können, weiterhin den kompakten Fortschrittstext anzeigen.
Werkzeug-/Aufgabenzeilen ausblenden
Behalten Sie den einzelnen Fortschrittsentwurf bei, blenden Sie jedoch Werkzeug- und Aufgabenzeilen aus:
{ channels: { discord: { streaming: { mode: "progress", progress: { toolProgress: false, }, }, }, },}Bei toolProgress: false unterdrückt OpenClaw für diesen Durchlauf weiterhin die älteren eigenständigen
Werkzeugfortschrittsmeldungen – der Kanal bleibt bis zur endgültigen Antwort visuell ruhig,
mit Ausnahme der Bezeichnung, sofern eine konfiguriert ist.
Kanalverhalten
| Kanal | Fortschrittsübertragung | Hinweise |
|---|---|---|
| Discord | Eine Nachricht senden und anschließend bearbeiten. | Standardmäßig wird der Modus progress verwendet; die endgültige Antwort enthält einen -#-Aktivitätsbeleg, und der Statusentwurf wird gelöscht, nachdem die Antwort eingegangen ist. |
| Matrix | Ein Ereignis senden und anschließend bearbeiten. | Die Streaming-Konfiguration auf Kontoebene steuert Entwürfe auf Kontoebene. |
| Microsoft Teams | Nativer Teams-Stream in persönlichen Chats. | streaming.mode: "block" wird stattdessen der blockweisen Teams-Zustellung zugeordnet. |
| Slack | Nativer Stream oder bearbeitbarer Entwurfsbeitrag. | Benötigt einen Ziel-Thread für Antworten; DMs auf oberster Ebene ohne einen solchen erhalten weiterhin Entwurfsvorschauen und Aktualisierungen. |
| Telegram | Eine Nachricht senden und anschließend bearbeiten. | Wenn zwischen dem Fortschrittsentwurf und der Antwort eine Nachricht eingeht, wird der Entwurf darunter erneut veröffentlicht (zuerst neu veröffentlichen, dann den alten löschen), statt die Ansicht des Clients springen zu lassen. |
| Mattermost | Bearbeitbarer Entwurfsbeitrag. | Im Modus block wird zwischen Beiträgen mit abgeschlossenem Text und Beiträgen zu Tool-Aktivitäten gewechselt; andere Modi integrieren die Tool-Aktivität in denselben entwurfsartigen Beitrag. |
Kanäle ohne sichere Bearbeitungsunterstützung greifen auf Tippindikatoren oder eine ausschließliche Zustellung der endgültigen Antwort zurück. Unter Streaming und Aufteilung finden Sie die vollständige Aufschlüsselung des Laufzeitverhaltens für jeden Kanal.
Abschluss
Wenn die endgültige Antwort bereit ist, versucht OpenClaw, den Chat übersichtlich zu halten:
- Im Modus
progressauf Discord wird die endgültige Antwort als neue Nachricht gesendet, an die eine kleine-#-Aktivitätsbestätigung angehängt wird (zum Beispiel-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s); der Statusentwurf wird gelöscht, sobald diese Antwort zugestellt wurde. In stark ausgelasteten Kanälen bleibt kein verwaistes Tool- Protokoll oberhalb der Antwort zurück; bei abschließenden Fehlermeldungen bleibt der Entwurf als sichtbarer Nachweis des fehlgeschlagenen Durchlaufs erhalten. - Wenn der Entwurf sicher zur endgültigen Antwort werden kann (Modi
partial/block), bearbeitet OpenClaw ihn direkt. - Wenn der Kanal natives Fortschrittsstreaming verwendet, schließt OpenClaw diesen Stream ab, sobald der native Transport den endgültigen Text akzeptiert.
- Andernfalls (Medien, eine Genehmigungsaufforderung, ein explizites Antwortziel, zu viele Abschnitte oder eine fehlgeschlagene Bearbeitung/Übermittlung) sendet OpenClaw die endgültige Antwort über den normalen Zustellungspfad des Kanals, statt den Entwurf zu überschreiben.
Der Fallback ist beabsichtigt: Das Senden einer neuen abschließenden Antwort ist besser, als Text zu verlieren, eine Antwort dem falschen Thread zuzuordnen oder einen Entwurf mit einem Payload zu überschreiben, den der Kanal nicht sicher darstellen kann.
Fehlerbehebung
Ich sehe nur die endgültige Antwort.
Prüfen Sie, ob channels.<channel>.streaming.mode für das Konto oder den Kanal, das bzw. der die Nachricht verarbeitet hat, auf progress gesetzt ist. Bei einigen Gruppen- oder Antwort-mit-Zitat-Abläufen werden Entwurfsvorschauen für einen Durchlauf deaktiviert, wenn der Kanal die richtige Nachricht nicht sicher bearbeiten kann.
Ich sehe die Kennzeichnung, aber keine Tool-Zeilen.
Prüfen Sie streaming.progress.toolProgress. Wenn der Wert false ist, behält OpenClaw das
Verhalten mit einem einzelnen Entwurf bei, blendet jedoch die Fortschrittszeilen für Tools und Aufgaben aus.
Ich sehe eine neue endgültige Nachricht statt eines bearbeiteten Entwurfs.
Das ist der unter Finalisierung beschriebene Sicherheits-Fallback. Er kann bei Medienantworten, langen Antworten, expliziten Antwortzielen, alten Telegram- Entwürfen, fehlenden Slack-Thread-Zielen, gelöschten Vorschaunachrichten oder einer fehlgeschlagenen Finalisierung des nativen Streams auftreten.
Ich sehe weiterhin eigenständige Fortschrittsnachrichten.
Der Fortschrittsmodus unterdrückt standardmäßige eigenständige Tool-Fortschrittsnachrichten, sobald ein
Entwurf aktiv ist. Wenn weiterhin eigenständige Nachrichten erscheinen, prüfen Sie, ob der Durchlauf
tatsächlich den Modus progress und nicht streaming.mode: "off" oder einen Kanalpfad
verwendet, der für diese Nachricht keinen Entwurf erstellen kann.
Teams verhält sich anders als Discord oder Telegram.
Microsoft Teams verwendet in persönlichen Chats einen nativen Stream anstelle des generischen
Vorschautransports mit Senden und Bearbeiten und ordnet streaming.mode: "block" der blockweisen
Zustellung von Teams zu, da es keinen Entwurfsvorschau-Blockmodus wie Discord und
Telegram bietet.