Cara kerjanya
- Giliran percakapan lama diringkas menjadi entri ringkas.
- Ringkasan disimpan dalam transkrip sesi.
- Pesan terbaru 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 ada di disk. Compaction hanya mengubah apa yang dilihat model pada giliran berikutnya.
Auto-compaction
Auto-compaction aktif secara default. Ini berjalan saat sesi mendekati batas konteks, atau saat model mengembalikan error luapan konteks (dalam hal ini OpenClaw melakukan Compaction dan mencoba ulang). Anda akan melihat:embedded run auto-compaction start/completedi log Gateway normal.🧹 Auto-compaction completedalam mode verbose./statusmenampilkan🧹 Compactions: <count>.
Sebelum melakukan Compaction, OpenClaw secara otomatis mengingatkan agen untuk menyimpan catatan penting ke file memori. Ini mencegah hilangnya konteks.
Recognized overflow signatures
Recognized overflow signatures
OpenClaw mendeteksi luapan konteks dari pola error penyedia berikut:
request_too_largecontext length exceededinput exceeds the maximum number of tokensinput token count exceeds the maximum number of input tokensinput is too long for the modelollama error: context length exceeded
Compaction manual
Ketik/compact di chat mana pun untuk memaksa Compaction. Tambahkan instruksi untuk memandu ringkasan:
agents.defaults.compaction.keepRecentTokens diatur, Compaction manual menghormati titik potong OpenClaw tersebut dan mempertahankan ekor terbaru dalam konteks yang dibangun ulang. Tanpa anggaran simpan eksplisit, Compaction manual berperilaku sebagai checkpoint keras dan berlanjut hanya dari ringkasan baru.
Konfigurasi
Konfigurasikan Compaction di bawahagents.defaults.compaction dalam openclaw.json Anda. Kenop yang paling umum tercantum di bawah; untuk referensi lengkap, lihat Pendalaman manajemen sesi.
Menggunakan model lain
Secara default, Compaction menggunakan model utama agen. Aturagents.defaults.compaction.model untuk mendelegasikan peringkasan ke model yang lebih mampu atau terspesialisasi. Override menerima string provider/model-id atau alias polos yang dikonfigurasi di bawah agents.defaults.models:
agents.defaults.compaction.model tetap persis dan tidak mewarisi rantai fallback sesi.
Preservasi pengenal
Peringkasan Compaction mempertahankan pengenal buram secara default (identifierPolicy: "strict"). Override dengan identifierPolicy: "off" untuk menonaktifkan, atau identifierPolicy: "custom" plus identifierInstructions untuk panduan khusus.
Pelindung byte transkrip aktif
Saatagents.defaults.compaction.maxActiveTranscriptBytes diatur, OpenClaw memicu Compaction lokal normal sebelum sebuah run jika JSONL aktif mencapai ukuran tersebut. Ini berguna untuk sesi yang berjalan lama ketika manajemen konteks sisi penyedia dapat menjaga konteks model tetap sehat sementara transkrip lokal terus bertambah. Ini tidak memecah byte JSONL mentah; ini meminta pipeline Compaction normal untuk membuat ringkasan semantik.
Transkrip penerus
Saatagents.defaults.compaction.truncateAfterCompaction diaktifkan, OpenClaw tidak menulis ulang transkrip yang ada di tempat. OpenClaw membuat transkrip penerus aktif baru dari ringkasan Compaction, status yang dipertahankan, dan ekor yang belum diringkas, lalu mencatat metadata checkpoint yang mengarahkan alur branch/restore ke penerus yang telah dipadatkan itu.
Transkrip penerus juga menghapus giliran panjang pengguna yang merupakan duplikat persis dan tiba
di dalam jendela coba ulang singkat, sehingga badai coba ulang channel tidak dibawa ke
transkrip aktif berikutnya setelah Compaction.
OpenClaw tidak lagi menulis salinan .checkpoint.*.jsonl terpisah untuk
Compaction baru. File checkpoint legacy yang sudah ada masih dapat digunakan selama direferensikan
dan dipangkas oleh pembersihan sesi normal.
Pemberitahuan Compaction
Secara default, Compaction berjalan diam-diam. AturnotifyUser untuk menampilkan pesan status singkat saat Compaction dimulai dan selesai:
Flush memori
Sebelum Compaction, OpenClaw dapat menjalankan giliran flush memori senyap untuk menyimpan catatan tahan lama ke disk. Aturagents.defaults.compaction.memoryFlush.model saat giliran housekeeping ini harus menggunakan model lokal alih-alih model percakapan aktif:
Penyedia Compaction yang dapat dipasang
Plugin dapat mendaftarkan penyedia Compaction khusus melaluiregisterCompactionProvider() pada API Plugin. Saat penyedia terdaftar dan dikonfigurasi, OpenClaw mendelegasikan peringkasan kepadanya alih-alih menggunakan pipeline LLM bawaan.
Untuk menggunakan penyedia terdaftar, atur id-nya dalam konfigurasi Anda:
provider otomatis memaksa mode: "safeguard". Penyedia menerima instruksi Compaction dan kebijakan preservasi pengenal yang sama dengan 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.
Compaction vs pemangkasan
| Compaction | Pemangkasan | |
|---|---|---|
| Apa yang dilakukan | Meringkas percakapan lama | Memangkas hasil tool lama |
| Disimpan? | Ya (dalam transkrip sesi) | Tidak (hanya dalam memori, per permintaan) |
| Cakupan | Seluruh percakapan | Hanya hasil tool |
Pemecahan masalah
Terlalu sering melakukan Compaction? Jendela konteks model mungkin kecil, atau output tool mungkin besar. Coba aktifkan pemangkasan sesi. Konteks terasa usang setelah Compaction? Gunakan/compact Focus on <topic> untuk memandu ringkasan, atau aktifkan flush memori agar catatan tetap bertahan.
Butuh awal yang bersih? /new memulai sesi baru tanpa melakukan Compaction.
Untuk konfigurasi lanjutan (token cadangan, preservasi pengenal, mesin konteks khusus, Compaction 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 Compaction (
before_compaction,after_compaction).