Pesan
Halaman ini menyatukan cara OpenClaw menangani pesan masuk, sesi, antrean, streaming, dan visibilitas reasoning.Alur pesan (tingkat tinggi)
messages.*untuk prefiks, antrean, dan perilaku grup.agents.defaults.*untuk default block streaming dan chunking.- Override channel (
channels.whatsapp.*,channels.telegram.*, dll.) untuk batas dan toggle streaming.
Deduplikasi pesan masuk
Channel dapat mengirim ulang pesan yang sama setelah reconnect. OpenClaw menyimpan cache berumur pendek yang dikunci berdasarkan channel/account/peer/session/message id sehingga pengiriman duplikat tidak memicu run agen lain.Debouncing pesan masuk
Pesan cepat yang berurutan dari pengirim yang sama dapat digabungkan menjadi satu giliran agen melaluimessages.inbound. Debouncing dicakup per channel + percakapan
dan menggunakan pesan terbaru untuk threading/ID balasan.
Konfigurasi (default global + override per channel):
- Debounce berlaku untuk pesan teks saja; media/lampiran langsung di-flush.
- Perintah control melewati debouncing agar tetap mandiri.
Sesi dan perangkat
Sesi dimiliki oleh gateway, bukan oleh klien.- Chat langsung digabungkan ke kunci sesi utama agen.
- Grup/channel mendapatkan kunci sesinya sendiri.
- Session store dan transkrip berada di host gateway.
Body pesan masuk dan konteks riwayat
OpenClaw memisahkan body prompt dari body perintah:Body: teks prompt yang dikirim ke agen. Ini dapat mencakup envelope channel dan wrapper riwayat opsional.CommandBody: teks pengguna mentah untuk parsing directive/perintah.RawBody: alias lama untukCommandBody(dipertahankan demi kompatibilitas).
[Pesan chat sejak balasan terakhir Anda - untuk konteks][Pesan saat ini - balas ini]
CommandBody (atau
RawBody) ke teks pesan asli dan mempertahankan Body sebagai prompt gabungan.
Buffer riwayat dapat dikonfigurasi melalui messages.groupChat.historyLimit (default global)
dan override per channel seperti channels.slack.historyLimit atau
channels.telegram.accounts.<id>.historyLimit (setel 0 untuk menonaktifkan).
Antrean dan followup
Jika sebuah run sudah aktif, pesan masuk dapat dimasukkan ke antrean, diarahkan ke run saat ini, atau dikumpulkan untuk giliran followup.- Konfigurasikan melalui
messages.queue(danmessages.queue.byChannel). - Mode:
interrupt,steer,followup,collect, plus varian backlog.
Streaming, chunking, dan batching
Block streaming mengirim balasan parsial saat model menghasilkan blok teks. Chunking mengikuti batas teks channel dan menghindari pemisahan fenced code. Pengaturan utama:agents.defaults.blockStreamingDefault(on|off, default off)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(batching berbasis jeda)agents.defaults.humanDelay(jeda mirip manusia di antara balasan blok)- Override channel:
*.blockStreamingdan*.blockStreamingCoalesce(channel non-Telegram memerlukan*.blockStreaming: trueeksplisit)
Visibilitas reasoning dan token
OpenClaw dapat menampilkan atau menyembunyikan reasoning model:/reasoning on|off|streammengontrol visibilitas.- Konten reasoning tetap dihitung terhadap penggunaan token saat dihasilkan oleh model.
- Telegram mendukung stream reasoning ke bubble draf.
Prefiks, threading, dan balasan
Pemformatan pesan keluar dipusatkan dimessages:
messages.responsePrefix,channels.<channel>.responsePrefix, danchannels.<channel>.accounts.<id>.responsePrefix(kaskade prefiks keluar), sertachannels.whatsapp.messagePrefix(prefiks masuk WhatsApp)- Reply threading melalui
replyToModedan default per channel