Context Window Claude Code: Compaction dan Kendali Token

Karena setiap permintaan membawa seluruh percakapan, dan setiap panggilan tool adalah permintaan lain yang membawa kumpulan hasil baru. Prompt caching membuat pembacaan ulang riwayat itu lebih murah tetapi tidak gratis, jadi pertanyaan satu baris di sesi yang terbuka seharian tetap menarik kuota untuk seluruh percakapan.
Pakai clear ketika Anda berpindah ke pekerjaan yang tidak berhubungan, karena tidak berbiaya dan memulai dari awal. Pakai compact ketika Anda masih pada tugas panjang yang sama dan butuh kesinambungan — tetapi ingat compaction membaca percakapan yang diringkasnya, jadi meringkas konteks yang sangat besar itu sendiri permintaan besar.
Bisa. Sertakan instruksi bersama perintah compact, misalnya meminta ia fokus pada keluaran tes dan berkas yang sudah disunting, atau tambahkan bagian instruksi compact yang tetap di CLAUDE.md proyek Anda sehingga setiap compaction di repositori itu mempertahankan hal yang sama.
Masukkan lebih sedikit ke konteks sejak awal. Jaga berkas memori yang selalu dimuat tetap pendek — panduannya kira-kira di bawah dua ratus baris — pindahkan prosedur ke skill yang dimuat sesuai kebutuhan, saring keluaran perintah yang bertele-tele dengan hook sebelum Claude melihatnya, dan delegasikan pekerjaan bervolume tinggi ke subagent agar hanya ringkasan yang kembali.
Sekitar tujuh kali token sesi standar ketika teammate berjalan dalam plan mode, karena setiap teammate adalah instans terpisah dengan context window sendiri. Menjaga tim tetap kecil, memakai model yang lebih murah untuk teammate, dan mematikannya begitu pekerjaan selesai adalah kendali utamanya.

Ringkasan Utama
Claude Code mengirim seluruh percakapan pada setiap permintaan, jadi sesi yang dibiarkan terbuka seharian tetap menarik kuota bahkan untuk pertanyaan satu baris. Compaction meringkas riwayat lama untuk melapangkan ruang, membersihkan sesi tidak berbiaya, dan penghematan terbesar datang dari memindahkan instruksi keluar dari konteks ke skill, hook, dan subagent.
Ada satu momen di setiap sesi Claude Code yang panjang ketika semuanya melambat dan menjadi lebih mahal tanpa alasan yang terlihat. Anda bertanya hal kecil, jawabannya bagus, dan entah bagaimana giliran itu lebih mahal daripada refactor yang Anda kerjakan sejam lalu. Tidak ada yang rusak — Anda memang sedang membayar percakapannya, bukan pertanyaannya.
Memahami sebabnya membuat solusinya menjadi jelas, dan sebagian besar solusinya adalah kebiasaan, bukan setelan. Anthropic memublikasikan angka nyata di sini, dan angka itu layak dibaca sebelum mengoptimalkan apa pun.
Model mental yang penting: setiap permintaan membawa seluruh percakapan, dan setiap panggilan tool adalah permintaan lain yang membawa kumpulan hasil baru. Beberapa efek berbeda menumpuk di atasnya.
Sebagai kalibrasi, Anthropic melaporkan rata-rata sekitar tiga belas dolar per developer per hari aktif di penggelaran enterprise, dengan sembilan puluh persen pengguna di bawah tiga puluh dolar per hari aktif. Kalau Anda jauh di luar itu, penyebabnya biasanya sesi yang tak pernah dibersihkan atau model yang dibiarkan di tingkat termahal.

Ketiganya sering dipertukarkan dalam percakapan padahal fungsinya benar-benar berbeda. Salah memilih adalah cara orang kehilangan pekerjaan atau membayar ringkasan yang sebenarnya tidak dibutuhkan.
| Aksi | Fungsinya | Kapan menjadi pilihan tepat |
|---|---|---|
| Auto-compaction | Meringkas riwayat lama secara otomatis saat sesi mendekati jendela compaction-nya | Jaring pengaman bawaan; Anda menyadarinya sebagai peringatan, bukan sebagai keputusan |
| Perintah compact | Meringkas sesuai permintaan, dan menerima instruksi tentang apa yang harus dipertahankan | Tugas panjang, masih tugas yang sama, dan Anda ingin kesinambungan melewati ringkasan itu |
| Perintah clear | Memulai sesi baru tanpa riwayat sama sekali | Berpindah ke pekerjaan yang tidak berhubungan — dan ini tidak berbiaya, tidak seperti compaction |
| Rewind | Mengembalikan percakapan dan kode ke checkpoint sebelumnya | Claude menempuh jalur yang salah dan Anda ingin token serta berkasnya kembali |
Yang tidak kentara adalah asimetri biayanya. Compaction membaca percakapan yang diringkasnya, jadi meringkas konteks yang sangat besar itu sendiri permintaan besar, sementara membersihkan sesi gratis. Kalau Anda tidak butuh kesinambungan, bersihkan saja.
Ringkasan generik mempertahankan hal yang salah. Anda bisa memberi tahu apa yang penting, baik per pemanggilan maupun sebagai instruksi tetap di berkas memori proyek.
# Steer what a compaction keeps, instead of accepting a generic summary
/compact Focus on the failing test output and the files we already edited
# Or make it the default for this repository, in CLAUDE.md:
#
# # Compact instructions
# When you are using compact, please focus on test output and code changes
# Starting unrelated work? Clearing is free; compacting is not.
/clear
# See where the context actually went before deciding
/contextDalam pekerjaan saya sendiri, instruksi yang paling membantu adalah mempertahankan keluaran tes dan daftar berkas yang sudah diedit. Justru itulah detail yang cenderung dibuang ringkasan, dan kehilangannya berarti giliran berikutnya membaca ulang berkas yang sudah ia pahami.
Waspadai lingkaran compaction: sesi yang begitu besar sehingga meringkasnya mahal, langsung membesar lagi, lalu diringkas lagi. Kalau Anda meringkas lebih dari sekali atau dua kali pada tugas yang sama, masalah sesungguhnya adalah terlalu banyak yang masuk ke konteks sejak awal — biasanya keluaran perintah yang bertele-tele yang seharusnya disaring sebuah hook.
Perubahan dengan daya ungkit terbesar bukan mengelola konteks dengan lebih baik, melainkan memasukkan lebih sedikit ke dalamnya. Empat langkah, kira-kira berurut menurut imbal hasilnya.
Pola di balik keempatnya sama: konteks seharusnya memuat apa yang dibutuhkan tugas saat ini, dan tidak memuat apa pun yang sekadar mungkin berguna. Sisanya harus bisa diambil sesuai kebutuhan.

Satu contoh konkret lebih berharga daripada prinsipnya. Hook dengan imbal hasil tertinggi yang saya jalankan menyaring keluaran tes sehingga hanya kegagalan yang sampai ke model, karena menjalankan tes itu sering sekaligus sangat bertele-tele.
// settings.json — a PreToolUse hook that filters test output before it
// ever reaches the model. Tens of thousands of tokens become hundreds.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "~/.claude/hooks/filter-test-output.sh" }
]
}
]
}
}
// The same idea in three other shapes:
// a skill -> domain knowledge on demand instead of exploration
// a subagent -> verbose work in its own window, a summary comes back
// a CLI tool -> gh, aws and psql add no per-tool listing to contextDua kebiasaan terkait layak diadopsi bersamaan. Utamakan perkakas baris perintah dibanding integrasi bila keduanya ada, karena CLI tidak menambah daftar tool ke konteks. Dan pasang code intelligence untuk bahasa bertipe, sehingga satu lompat-ke-definisi menggantikan pencarian yang disusul membaca empat berkas kandidat.
Tampilkan pemakaian konteks di status line agar selalu terlihat, dan periksa ke mana perginya dengan perintah context sebelum mengoptimalkan. Menebak berkas atau tool mana yang memenuhi jendela sangat tidak bisa diandalkan; rinciannya biasanya mengejutkan.
Ini lingkar kerja yang benar-benar saya jalani, dan tidak butuh disiplin lagi begitu menjadi kebiasaan.
Semua ini bukan soal berhemat demi berhemat. Konteks yang lebih ramping adalah konteks yang lebih tajam: model membelanjakan perhatiannya pada berkas yang penting alih-alih pada transkrip semua yang Anda kerjakan sejak sarapan.
Konteks adalah satu-satunya sumber daya dalam sesi agentik yang sepenuhnya Anda kendalikan, dan hampir semua keluhan biaya bermuara pada membiarkannya tumbuh tanpa pengawasan. Bersihkan antar tugas, jaga instruksi yang selalu dimuat tetap pendek, saring keluaran bertele-tele sebelum tiba, dan compaction berubah menjadi peristiwa langka alih-alih pajak berulang.