channels.<channel>.streaming.mode: "progress", OpenClaw crea il
messaggio quando inizia il lavoro effettivo, lo modifica mentre l’agente legge, pianifica, chiama
strumenti o attende un’approvazione, quindi lo trasforma nella risposta finale.
Discord usa già
streaming.mode: "progress" come valore predefinito quando
channels.discord.streaming non è impostato, quindi le bozze di avanzamento
vengono visualizzate senza alcuna configurazione. Ogni altro canale usa come valore predefinito partial
o off; consultare Streaming e suddivisione in blocchi
per la tabella completa dei valori predefiniti di ciascun canale.Avvio rapido
Cosa vedono gli utenti
Per l’avanzamento non elaborato degli strumenti, l’etichetta appare quando l’agente inizia un lavoro significativo
e rimane occupato per tutta la durata del ritardo iniziale.
Si trova nella parte superiore dell’elenco scorrevole delle righe di avanzamento, quindi scorre fuori dalla vista quando
appaiono abbastanza righe di lavoro concreto. Un’intestazione di stato mostra solo lo stato
dell’agente in linguaggio semplice, a meno che non venga configurata esplicitamente un’etichetta. Le risposte costituite
esclusivamente da testo normale non mostrano mai una bozza di avanzamento; una riga appare solo per aggiornamenti di lavoro effettivi,
ad esempio
🛠️ Bash: run tests, 🔎 Web Search: for "discord edit message"
o ✍️ Write: to /tmp/file.
La risposta finale sostituisce la bozza sul posto quando il canale può farlo in modo
sicuro; altrimenti OpenClaw invia la risposta finale tramite il normale recapito e
ripulisce la bozza o smette di aggiornarla (consultare Finalizzazione).
Scelta di una modalità
channels.<channel>.streaming.mode controlla il comportamento visibile durante l’elaborazione:
Scegliere
progress quando per gli utenti è più importante sapere “cosa sta succedendo” che osservare
lo streaming del testo della risposta token per token; partial quando il testo stesso della risposta è
il segnale di avanzamento; block per blocchi di anteprima più grandi. Su Discord e
Telegram, streaming.mode: "block" rimane uno streaming dell’anteprima, non il normale
recapito delle risposte in blocchi: usare streaming.block.enabled per quest’ultimo.
Configurazione delle etichette
Le etichette di avanzamento si trovano inchannels.<channel>.streaming.progress. L’etichetta predefinita
per le righe non elaborate degli strumenti è "auto", che usa la semplice etichetta integrata Working.
Un’intestazione di stato nasconde tale etichetta implicita; impostare
esplicitamente label: "auto" se si desidera visualizzare un’etichetta anche sopra di essa:
label: "auto"):
Controllo delle righe di avanzamento
Le righe di avanzamento derivano da eventi di esecuzione reali: avvio di strumenti, aggiornamenti di elementi, piani delle attività, approvazioni, output dei comandi, riepiloghi delle patch e attività simili dell’agente. Sono abilitate per impostazione predefinita (progress.toolProgress, valore predefinito true).
Gli strumenti possono inoltre emettere aggiornamenti di avanzamento tipizzati mentre una singola chiamata è ancora in esecuzione. In questo
modo, un recupero o una ricerca lenta aggiorna la bozza visibile prima che lo strumento
restituisca il risultato finale. L’aggiornamento di avanzamento è un risultato parziale dello strumento con
contenuto del modello vuoto e metadati pubblici espliciti del canale:
progress.text nell’interfaccia di avanzamento del canale. Il normale
risultato dello strumento arriva comunque in seguito come content/details ed è l’unica parte
restituita al modello.
Quando si aggiunge l’avanzamento a uno strumento, emettere un messaggio breve e generico e ritardarlo
finché l’operazione non è rimasta in sospeso abbastanza a lungo da renderlo utile. web_fetch
esegue esattamente questa operazione con un ritardo di 5 secondi:
Modalità dei dettagli
OpenClaw usa lo stesso formattatore per le bozze di avanzamento e/verbose:
"explain" è il valore predefinito e mantiene stabili le bozze mediante etichette concise.
"raw" aggiunge il comando sottostante quando disponibile, risultando utile durante
il debug ma più invasivo nella chat. Ad esempio, una chiamata node --check /tmp/app.js
viene visualizzata diversamente in base alla modalità:
Testo dei comandi/exec
streaming.progress.commandText (valore predefinito "raw") controlla la quantità di dettagli del comando
mostrati accanto alle righe di avanzamento exec/bash, indipendentemente dalla modalità dei dettagli
indicata sopra. Impostarlo su "status" per mantenere visibile una riga di avanzamento dello strumento nascondendo
completamente il testo del comando:
Corsia dei commenti
streaming.progress.commentary (valore predefinito false) alterna la narrazione dei commenti/preamboli
del modello prima degli strumenti (💬, ad esempio “Verificherò… quindi
…”) con le righe degli strumenti nella bozza. Consultare
Streaming e suddivisione in blocchi per la
struttura di configurazione condivisa tra i canali.
Quando la corsia dei commenti è abilitata, i preamboli vengono visualizzati solo come queste righe 💬
alternate; l’intestazione di stato descritta di seguito non viene mostrata, affinché la corsia mantenga la
struttura documentata.
Intestazione di stato
Su Discord e Telegram in modalità di avanzamento, il preambolo tipizzato del modello prima degli strumenti diventa l’intestazione di stato della bozza quando è disponibile. Gli altri canali in modalità di avanzamento mantengono il comportamento di stato esistente. L’intestazione è attiva per impostazione predefinita e non aggira il normale criterio di attività per i turni brevi; l’abilitazione distreaming.progress.commentary inoltra invece i preamboli alla corsia
dei commenti alternati.
Su Discord, quando viene risolto un modello di utilità per l’agente, ovvero un
utilityModel esplicito o il valore predefinito
del modello piccolo dichiarato dal provider principale (OpenAI → gpt-5.6-luna,
Anthropic → claude-haiku-4-5), questo fornisce un breve testo riempitivo in linguaggio semplice
quando il modello non emette alcun preambolo o rimane inattivo per circa 20 secondi
(attualmente l’intestazione di Telegram usa solo il preambolo):
streaming.progress.narration, valore predefinito
true) e non ricorre mai al modello principale: viene eseguita solo con un
utilityModel esplicito o un valore predefinito dichiarato dal provider per il provider
principale dell’agente. Impostare utilityModel: "" per disabilitare completamente l’instradamento di utilità. Le righe degli strumenti
continuano ad accumularsi sotto e ricompaiono se entrambe le fonti di stato si interrompono. Le modifiche
della bozza continuano ad attendere il normale criterio di attività e un’effettiva
variazione del testo, evitando brevi apparizioni nei turni rapidi e riducendo il numero di modifiche nei canali
molto attivi. Impostare narration: false per disabilitare solo il testo riempitivo del modello di utilità; le intestazioni
dei preamboli del modello rimangono abilitate:
commandText: "status", l’input della narrazione omette anche il testo dei comandi exec/bash,
in modo coerente con quanto mostrato dalla bozza.
Limiti delle righe
Limitare il numero di righe che rimangono visibili (valore predefinito 8):Rendering avanzato (Slack)
Slack può visualizzare le righe di avanzamento come campi strutturati di Block Kit anziché come testo normale:Nascondere le righe di strumenti/attività
Mantenere la singola bozza di avanzamento ma nascondere le righe di strumenti e attività:toolProgress: false, OpenClaw continua a sopprimere i precedenti messaggi autonomi
sull’avanzamento degli strumenti per quel turno: il canale rimane visivamente silenzioso fino
alla risposta finale, ad eccezione dell’etichetta, se ne è configurata una.
Comportamento del canale
I canali che non supportano modifiche sicure ripiegano sugli indicatori di digitazione o
sulla consegna della sola risposta finale. Consultare Streaming e suddivisione in blocchi per la
descrizione completa del comportamento di runtime per ciascun canale.
Finalizzazione
Quando la risposta finale è pronta, OpenClaw tenta di mantenere ordinata la chat:- Nella modalità
progresssu Discord, la risposta finale viene inviata come nuovo messaggio con una piccola ricevuta di attività-#aggiunta (ad esempio-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s) e la bozza di stato viene eliminata dopo la consegna della risposta. Nei canali molto attivi non rimangono registri orfani degli strumenti sopra la risposta; in caso di errore finale, la bozza viene mantenuta come traccia visibile del turno non riuscito. - Se la bozza può diventare in sicurezza la risposta finale (modalità
partial/block), OpenClaw la modifica direttamente. - Se il canale utilizza lo streaming nativo dell’avanzamento, OpenClaw finalizza tale stream quando il trasporto nativo accetta il testo finale.
- Altrimenti (contenuti multimediali, una richiesta di approvazione, una destinazione di risposta esplicita, troppi blocchi o una modifica/un invio non riusciti), OpenClaw invia la risposta finale tramite il normale percorso di consegna del canale anziché sovrascrivere la bozza.
Risoluzione dei problemi
Viene visualizzata solo la risposta finale. Verificare chechannels.<channel>.streaming.mode sia progress per l’account
o il canale che ha gestito il messaggio. Alcuni percorsi di gruppo o di risposta con citazione disabilitano
le anteprime delle bozze per un turno quando il canale non può modificare in sicurezza il
messaggio corretto.
Viene visualizzata l’etichetta, ma non le righe degli strumenti.
Verificare streaming.progress.toolProgress. Se è false, OpenClaw mantiene il
comportamento con una singola bozza, ma nasconde le righe di avanzamento degli strumenti e delle attività.
Viene visualizzato un nuovo messaggio finale anziché una bozza modificata.
Si tratta del ripiego di sicurezza descritto in Finalizzazione. Può
verificarsi per risposte con contenuti multimediali, risposte lunghe, destinazioni di risposta esplicite, vecchie bozze di Telegram,
destinazioni di thread Slack mancanti, messaggi di anteprima eliminati o una
finalizzazione dello stream nativo non riuscita.
Vengono ancora visualizzati messaggi autonomi sull’avanzamento.
La modalità di avanzamento sopprime i messaggi autonomi predefiniti sull’avanzamento degli strumenti ogni volta che è
attiva una bozza. Se vengono ancora visualizzati messaggi autonomi, verificare che il turno stia
effettivamente utilizzando la modalità progress e non streaming.mode: "off" o un percorso del canale
che non può creare una bozza per quel messaggio.
Teams si comporta diversamente da Discord o Telegram.
Microsoft Teams utilizza uno stream nativo nelle chat personali anziché il trasporto generico
di anteprima basato su invio e modifica e associa streaming.mode: "block" alla
consegna a blocchi di Teams, poiché non dispone di una modalità a blocchi per l’anteprima delle bozze come Discord e
Telegram.