channels.<channel>.streaming.mode: "progress" dan OpenClaw akan membuat
pesan setelah pekerjaan nyata dimulai, mengeditnya saat agen membaca, merencanakan, memanggil
alat, atau menunggu persetujuan, lalu mengubahnya menjadi jawaban akhir.
Discord sudah menggunakan
streaming.mode: "progress" secara default saat
channels.discord.streaming tidak ditetapkan, sehingga draf progres
muncul di sana tanpa konfigurasi apa pun. Setiap kanal lain menggunakan partial
atau off secara default; lihat Streaming dan pemotongan
untuk tabel default lengkap per kanal.Mulai cepat
Yang dilihat pengguna
Untuk progres alat mentah, label muncul setelah agen memulai pekerjaan bermakna
dan tetap sibuk selama penundaan awal.
Label berada di bagian atas daftar baris progres yang terus bergulir, sehingga akan tergulir keluar setelah
cukup banyak baris pekerjaan konkret muncul. Judul status hanya menampilkan status
agen dalam bahasa biasa kecuali label dikonfigurasi secara eksplisit. Balasan yang
hanya berupa teks biasa tidak pernah menampilkan draf progres; baris hanya muncul untuk pembaruan pekerjaan nyata,
misalnya
🛠️ Bash: run tests, 🔎 Web Search: for "discord edit message",
atau ✍️ Write: to /tmp/file.
Jawaban akhir menggantikan draf di tempatnya jika kanal dapat melakukannya dengan aman;
jika tidak, OpenClaw mengirim jawaban akhir melalui pengiriman normal dan
membersihkan atau berhenti memperbarui draf (lihat Finalisasi).
Pilih mode
channels.<channel>.streaming.mode mengontrol perilaku yang terlihat selama proses berlangsung:
Pilih
progress ketika pengguna lebih peduli pada “apa yang sedang terjadi” daripada melihat
teks jawaban dialirkan token demi token; partial ketika teks jawaban itu sendiri menjadi
sinyal progres; block untuk potongan pratinjau yang lebih besar. Di Discord dan
Telegram, streaming.mode: "block" tetap merupakan streaming pratinjau, bukan
pengiriman balasan blok biasa — gunakan streaming.block.enabled untuk itu.
Konfigurasikan label
Label progres berada di bawahchannels.<channel>.streaming.progress. Label
baris alat mentah default adalah "auto", yang menggunakan label bawaan sederhana Working.
Judul status menyembunyikan label implisit tersebut; tetapkan
label: "auto" secara eksplisit jika Anda juga menginginkan label di atasnya:
label: "auto"):
Kontrol baris progres
Baris progres berasal dari peristiwa proses nyata: alat dimulai, pembaruan item, rencana tugas, persetujuan, keluaran perintah, ringkasan patch, dan aktivitas agen serupa. Baris ini diaktifkan secara default (progress.toolProgress, default true).
Alat juga dapat memancarkan progres bertipe saat satu panggilan masih berjalan. Dengan cara ini,
pengambilan atau pencarian yang lambat memperbarui draf yang terlihat sebelum alat
mengembalikan hasil akhirnya. Pembaruan progres merupakan hasil alat parsial dengan
konten model kosong dan metadata kanal publik yang eksplisit:
progress.text di UI progres kanal. Hasil
alat normal tetap tiba kemudian sebagai content/details dan merupakan satu-satunya bagian
yang dikembalikan ke model.
Saat menambahkan progres ke alat, pancarkan pesan singkat dan umum, lalu tunda
hingga operasi telah tertunda cukup lama agar berguna. web_fetch
melakukan hal ini dengan penundaan 5 detik:
Mode detail
OpenClaw menggunakan pemformat yang sama untuk draf progres dan/verbose:
"explain" adalah default dan menjaga kestabilan draf dengan label ringkas.
"raw" menambahkan perintah yang mendasarinya jika tersedia, yang berguna saat
melakukan debug tetapi lebih ramai dalam obrolan. Misalnya, panggilan node --check /tmp/app.js
dirender secara berbeda menurut mode:
Teks perintah/exec
streaming.progress.commandText (default "raw") mengontrol seberapa banyak detail perintah
yang ditampilkan di samping baris progres exec/bash, terlepas dari mode detail
di atas. Tetapkan ke "status" agar baris progres alat tetap terlihat sekaligus menyembunyikan
teks perintah sepenuhnya:
Jalur komentar
streaming.progress.commentary (default false) menyisipkan narasi
komentar/preambul pra-alat model (💬, misalnya “Saya akan memeriksa… lalu
…”) di antara baris alat dalam draf. Lihat
Streaming dan pemotongan untuk
bentuk konfigurasi bersama di seluruh kanal.
Saat jalur komentar diaktifkan, preambul hanya dirender sebagai baris 💬 yang disisipkan
tersebut; judul status di bawah tidak menghalangi sehingga jalur mempertahankan
bentuk yang didokumentasikan.
Judul status
Di Discord dan Telegram dalam mode progres, preambul pra-alat bertipe dari model menjadi judul status draf setiap kali tersedia. Kanal lain dalam mode progres mempertahankan perilaku status yang sudah ada. Judul ini aktif secara default dan tidak melewati gerbang aktivitas normal untuk giliran singkat; mengaktifkanstreaming.progress.commentary menyerahkan preambul ke jalur
komentar yang disisipkan sebagai gantinya.
Di Discord, ketika model utilitas ditentukan untuk agen — utilityModel
eksplisit, atau default model kecil yang dinyatakan oleh
penyedia utama (OpenAI → gpt-5.6-luna,
Anthropic → claude-haiku-4-5) — model tersebut menyediakan teks pengisi singkat dalam bahasa biasa
saat model tidak memancarkan preambul atau diam selama sekitar 20 detik
(judul Telegram saat ini hanya menggunakan preambul):
streaming.progress.narration, default
true) dan tidak pernah beralih ke model utama sebagai fallback: narasi hanya berjalan dengan
utilityModel eksplisit atau default yang dinyatakan penyedia untuk penyedia
utama agen. Tetapkan utilityModel: "" untuk menonaktifkan perutean utilitas sepenuhnya. Baris alat
terus terakumulasi di bawahnya dan muncul kembali jika kedua sumber status berhenti. Pengeditan
draf tetap menunggu gerbang aktivitas normal dan perubahan
teks yang nyata, sehingga menghindari kilatan pada giliran cepat dan mengurangi frekuensi pengeditan di kanal
yang sibuk. Tetapkan narration: false untuk hanya menonaktifkan teks pengisi model utilitas; judul
preambul model tetap diaktifkan:
commandText: "status", input narasi juga menghilangkan teks perintah exec/bash,
sesuai dengan yang ditampilkan draf.
Batas baris
Batasi jumlah baris yang tetap terlihat (default 8):Rendering kaya (Slack)
Slack dapat merender baris progres sebagai bidang Block Kit terstruktur alih-alih teks biasa:Sembunyikan baris alat/tugas
Pertahankan satu draf progres tetapi sembunyikan baris alat dan tugas:toolProgress: false, OpenClaw tetap menekan pesan progres alat mandiri yang lama
untuk giliran tersebut — saluran tetap terlihat tenang hingga
jawaban akhir, kecuali label jika dikonfigurasi.
Perilaku saluran
Saluran tanpa dukungan pengeditan yang aman kembali menggunakan indikator sedang mengetik atau
pengiriman hanya-jawaban-akhir. Lihat Streaming dan pemotongan untuk
rincian lengkap perilaku runtime per saluran.
Finalisasi
Saat jawaban akhir siap, OpenClaw berupaya menjaga obrolan tetap rapi:- Dalam mode
progressdi Discord, jawaban akhir dikirim sebagai pesan baru dengan tanda terima aktivitas-#kecil yang ditambahkan (misalnya-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s), dan draf status dihapus setelah jawaban tersebut terkirim. Saluran yang sibuk tidak menyisakan log alat tanpa pasangan di atas balasan; jawaban akhir yang berisi kesalahan mempertahankan draf sebagai catatan yang terlihat untuk giliran yang gagal. - Jika draf dapat dengan aman menjadi jawaban akhir (mode
partial/block), OpenClaw mengeditnya di tempat. - Jika saluran menggunakan streaming progres native, OpenClaw memfinalisasi stream tersebut saat transpor native menerima teks akhir.
- Jika tidak (media, perintah persetujuan, target balasan eksplisit, terlalu banyak potongan, atau kegagalan edit/kirim), OpenClaw mengirim jawaban akhir melalui jalur pengiriman saluran normal, alih-alih menimpa draf.
Pemecahan masalah
Saya hanya melihat jawaban akhir. Pastikanchannels.<channel>.streaming.mode bernilai progress untuk akun
atau saluran yang menangani pesan. Beberapa jalur grup atau balasan-kutipan menonaktifkan
pratinjau draf untuk suatu giliran ketika saluran tidak dapat mengedit pesan yang tepat
secara aman.
Saya melihat label, tetapi tidak ada baris alat.
Periksa streaming.progress.toolProgress. Jika nilainya false, OpenClaw mempertahankan
perilaku draf tunggal, tetapi menyembunyikan baris progres alat dan tugas.
Saya melihat pesan akhir baru, bukan draf yang diedit.
Itulah fallback keamanan yang dijelaskan dalam Finalisasi. Hal ini dapat
terjadi pada balasan media, jawaban panjang, target balasan eksplisit, draf Telegram
lama, target utas Slack yang tidak ada, pesan pratinjau yang dihapus, atau kegagalan
finalisasi stream native.
Saya masih melihat pesan progres mandiri.
Mode progres menekan pesan progres alat mandiri default setiap kali
draf aktif. Jika pesan mandiri masih muncul, pastikan giliran tersebut
benar-benar menggunakan mode progress, bukan streaming.mode: "off" atau jalur
saluran yang tidak dapat membuat draf untuk pesan tersebut.
Teams berperilaku berbeda dari Discord atau Telegram.
Microsoft Teams menggunakan stream native dalam obrolan pribadi, bukan transpor
pratinjau kirim-dan-edit generik, dan memetakan streaming.mode: "block" ke
pengiriman blok Teams karena tidak memiliki mode blok pratinjau draf seperti Discord dan
Telegram.