Compaction
Setiap model memiliki jendela konteks — jumlah maksimum token yang dapat diprosesnya. Saat percakapan mendekati batas tersebut, OpenClaw memadatkan pesan-pesan lama menjadi ringkasan agar chat dapat terus berlanjut.Cara kerjanya
- Giliran percakapan yang lebih lama diringkas menjadi entri padat.
- Ringkasan disimpan dalam transkrip sesi.
- Pesan-pesan terbaru tetap dipertahankan utuh.
toolResult yang sesuai. Jika titik pemisahan jatuh
di dalam blok tool, OpenClaw memindahkan batasnya agar pasangan tersebut tetap bersama dan
ekor saat ini yang belum diringkas tetap dipertahankan.
Riwayat percakapan lengkap tetap tersimpan di disk. Pemadatan hanya mengubah apa yang
dilihat model pada giliran berikutnya.
Pemadatan otomatis
Pemadatan otomatis aktif secara default. Ini berjalan saat sesi mendekati batas konteks, atau saat model mengembalikan error luapan konteks (dalam hal ini OpenClaw memadatkan dan mencoba lagi). Tanda tangan luapan yang umum mencakuprequest_too_large, context length exceeded, input exceeds the maximum number of tokens, input token count exceeds the maximum number of input tokens, input is too long for the model, dan ollama error: context length exceeded.
Sebelum memadatkan, OpenClaw secara otomatis mengingatkan agen untuk menyimpan
catatan penting ke file memory. Ini mencegah hilangnya konteks.
agents.defaults.compaction di openclaw.json Anda untuk mengonfigurasi perilaku pemadatan (mode, token target, dan sebagainya).
Ringkasan pemadatan mempertahankan pengenal buram secara default (identifierPolicy: "strict"). Anda dapat menggantinya dengan identifierPolicy: "off" atau memberikan teks kustom dengan identifierPolicy: "custom" dan identifierInstructions.
Anda juga dapat menentukan model yang berbeda untuk peringkasan pemadatan melalui agents.defaults.compaction.model. Ini berguna ketika model utama Anda adalah model lokal atau kecil dan Anda ingin ringkasan pemadatan dihasilkan oleh model yang lebih mampu. Override ini menerima string provider/model-id apa pun:
Penyedia pemadatan yang dapat dipasang
Plugins dapat mendaftarkan penyedia pemadatan kustom melaluiregisterCompactionProvider() pada API plugin. Saat penyedia terdaftar dan dikonfigurasi, OpenClaw mendelegasikan peringkasan kepadanya alih-alih menggunakan pipeline LLM bawaan.
Untuk menggunakan penyedia yang terdaftar, setel id penyedia di konfigurasi Anda:
provider secara otomatis memaksa mode: "safeguard". Penyedia menerima instruksi pemadatan dan kebijakan pelestarian pengenal yang sama seperti jalur bawaan, dan OpenClaw tetap mempertahankan konteks sufiks giliran terbaru dan giliran terpisah setelah output penyedia. Jika penyedia gagal atau mengembalikan hasil kosong, OpenClaw kembali ke peringkasan LLM bawaan.
Pemadatan otomatis (aktif secara default)
Saat sesi mendekati atau melampaui jendela konteks model, OpenClaw memicu pemadatan otomatis dan dapat mencoba lagi permintaan asli dengan menggunakan konteks yang telah dipadatkan. Anda akan melihat:🧹 Auto-compaction completedalam mode verbose/statusmenampilkan🧹 Compactions: <count>
Pemadatan manual
Ketik/compact di chat mana pun untuk memaksa pemadatan. Tambahkan instruksi untuk memandu
ringkasan:
Menggunakan model yang berbeda
Secara default, pemadatan menggunakan model utama agen Anda. Anda dapat menggunakan model yang lebih mampu untuk ringkasan yang lebih baik:Pemberitahuan mulai pemadatan
Secara default, pemadatan berjalan tanpa pemberitahuan. Untuk menampilkan pemberitahuan singkat saat pemadatan dimulai, aktifkannotifyUser:
Pemadatan vs pemangkasan
| Compaction | Pemangkasan | |
|---|---|---|
| Apa yang dilakukan | Merangkum percakapan lama | Memangkas hasil tool lama |
| Disimpan? | Ya (dalam transkrip sesi) | Tidak (hanya di memori, per permintaan) |
| Cakupan | Seluruh percakapan | Hanya hasil tool |
Pemecahan masalah
Terlalu sering memadatkan? Jendela konteks model mungkin kecil, atau output tool mungkin besar. Coba aktifkan pemangkasan sesi. Konteks terasa usang setelah pemadatan? Gunakan/compact Focus on <topic> untuk
memandu ringkasan, atau aktifkan memory flush agar catatan
tetap tersimpan.
Butuh mulai dari awal? /new memulai sesi baru tanpa melakukan pemadatan.
Untuk konfigurasi lanjutan (cadangan token, pelestarian pengenal, engine konteks kustom, pemadatan sisi server OpenAI), lihat
Pendalaman Manajemen Sesi.
Terkait
- Sesi — manajemen dan siklus hidup sesi
- Pemangkasan Sesi — memangkas hasil tool
- Konteks — bagaimana konteks dibangun untuk giliran agen
- Hooks — hook siklus hidup pemadatan (before_compaction, after_compaction)