Context Compaction
Tujuan
Menyusutkan percakapan panjang sebelum meluap melewati jendela konteks model, menjaga ringkasan yang berfungsi alih-alih kehilangan alur.
Cara kerjanya
src/session/(agent-session + compact-modes) menjalankan compaction padacompaction.thresholdPercent/thresholdTokensdari jendela, atau manual via/compact.- Tiga mode (
src/session/compact-modes.ts):soft- merangkum lokal dengan model aktif (lewati endpoint remote).remote- merangkum via endpoint remote / compaction native provider.snapcompact- mengarsipkan riwayat ke gambar bitmap padat yang dibaca kembali model (tanpa panggilan LLM; menolak teks fokus).
/compact [mode] [focus...]- mode yang dikenal di awal diperlakukan sebagai pemilih mode, jika tidak seluruh string argumen adalah instruksi fokus (kompatibel mundur).compaction.strategymemilih strategi ringkasan (mis.context-full) kecuali mode menimpanya.
Konfigurasi
compaction:
enabled: true # default skema: true
strategy: ... # strategi ringkasan (context-full, ...)
thresholdPercent: 80 # auto-compact saat konteks mencapai 80%
thresholdTokens: ... # atau saat jumlah token mencapai ini
remoteEnabled: ... # izinkan compaction sisi provider
reserveTokens: 16384 # token yang dijaga bebas selama compaction
keepRecentTokens: 20000 # token terbaru disimpan verbatim
autoContinue: true # lanjutkan turn setelah compaction
handoffSaveToDisk: ... # simpan riwayat pra-compaction
Contoh nyata
> /compact # rangkum lokal, jaga fokus
> /compact soft focus on the TBM integration
> /compact remote # compaction native provider
> /compact snapcompact # arsip bitmap, tanpa panggilan LLM
Screenshot

/compact pada sesi kosong menampilkan pesan empty-state (“Nothing to compact”).
Perilaku kegagalan
- Mode yang menuntut jalur remote (
requiresRemote) tanpa endpoint remote yang di-set memberi peringatan dan jatuh kembali ke ringkasan lokal. snapcompactdengan teks fokus adalah error (menolak fokus).
Batasan
- Ringkasan kehilangan detail secara desain;
keepRecentTokensmelindungi bagian ekor. - Pengukuran waktu/token tidak diukur end-to-end dengan sesi panjang yang nyata.
Status pengujian
PARTIAL - strategi compaction diimplementasikan di src/session/ dan parsing mode dicakup test parse (logika parse compact-modes); belum ada test compaction long-context full-session yang di-commit. Bukti: src/session/compact-modes.ts + key skema compaction.*.