Ringkasan Utama
Claude Code mendukung context window satu juta token pada Fable 5, Sonnet 5, Opus 4.6 ke atas, dan Sonnet 4.6, dengan ketersediaan berbeda per paket. Ia memakai harga model standar tanpa premi di atas 200K token. Jendela itu mengubah kapan auto-compaction menyala, bukan apakah Anda perlu mengelola konteks, dan ia bisa dibatasi ke 200K secara sengaja.
Sesi panjang pertama yang saya jalankan di jendela sejuta token melangkah lebih jauh daripada sesi mana pun sebelumnya, lalu menghasilkan jawaban terburuknya di akhir. Tidak ada yang gagal. Percakapannya memang raksasa, keputusan yang relevan sudah dibuat tiga ratus ribu token sebelumnya, dan saya berhenti melakukan satu hal yang dulu menjaga sesi tetap tajam: membuang apa yang sudah tidak penting.
Jendela yang lebih besar memang berguna, dan ia bukan pengganti disiplin konteks. Tulisan ini membahas siapa yang mendapat jendela 1M pada paket mana, bagaimana ambang auto-compaction sebenarnya ditentukan, tiga tempat untuk menyetelnya dan mana yang menang, kenapa Anda mungkin sengaja membatasi jendelanya, dan apa yang rusak ketika ada gateway di tengah.
Siapa yang mendapatkannya, dan pada paket apa
Extended context didukung pada Fable 5, Sonnet 5, Opus 4.6 ke atas, dan Sonnet 4.6. Ketersediaannya lalu bergantung pada paket Anda, dan pembagiannya bukan seperti dugaan orang — Opus dan Sonnet 4.6 diperlakukan berbeda pada langganan yang sama.
Extended context per paket:
| Paket | Opus dengan context 1M | Sonnet 4.6 dengan context 1M |
|---|---|---|
| Max, Team, dan Enterprise | Termasuk dalam langganan | Butuh usage credits |
| Pro | Butuh usage credits | Butuh usage credits |
| API dan pay-as-you-go | Akses penuh | Akses penuh |
Claude Code hanya memeriksa syarat paket itu ketika menyambung langsung ke Anthropic API. Arahkan base URL ke sebuah gateway sementara login tersimpan Anda tetap jadi kredensial aktif, dan ia berhenti memeriksa usage credits — opsi 1M tetap ada di picker dan gateway-lah yang menentukan apakah request berhasil. Itu perbedaan perilaku yang nyata, bukan celah yang layak diandalkan.
Sonnet 5 tidak punya versi 200K untuk dijadikan cadangan
Di Anthropic API, Sonnet 5 selalu berjalan dengan jendela sejuta token. Tidak ada varian 200K, tidak ada sufiks untuk dipilih, dan tidak ada usage credits yang dibutuhkan di paket mana pun. Sesi melakukan auto-compact sebelum jendelanya penuh, di sekitar 967 ribu token secara default.
Dua konfigurasi menganggarkannya 200K, dan keduanya layak dikenali karena gejalanya identik — sesi yang melakukan compact jauh lebih awal daripada dugaan Anda. Di balik gateway, Claude Code tidak bisa memverifikasi dukungan 1M, jadi ia menganggarkan secara konservatif sampai Anda memilih entri 1M di model picker. Dan variabel disable menahan setiap model berjendela 1M native ke 200K secara desain.
Tiga tempat menyetel jendelanya, dan mana yang menang
Auto-compact window adalah seberapa penuh konteks boleh terisi sebelum Claude Code memadatkan percakapan. Ia disetel di tiga tempat dengan prioritas ketat, dan yang di tengah punya sifat yang layak diketahui: launch flag tidak bisa didahului oleh scope setting berprioritas lebih tinggi, sedangkan command bisa.
# Three places to set the auto-compact window, in order of
# precedence. Accepts 100K to 1M tokens.
# 1. Environment variable — beats everything, and /autocompact
# reports the override instead of changing anything.
CLAUDE_CODE_AUTO_COMPACT_WINDOW=500000
# 2. The launch flag — overrides your saved setting for one
# launch without changing it. NOT preempted by managed settings.
claude --autocompact 500k
claude --autocompact auto # the window tuned for your model
# 3. The command, which saves to your user settings.
/autocompact 500k
/autocompact auto
# Accepted forms: 200000, 500k, 1M, or a bare 100-1000 meaning
# thousands. The env var takes ONLY the plain token count.
# Claude Code caps the window at the model's real context window.Kalau Anda menjalankan command autocompact dan sesinya tetap memakai jendela lama, itu bukan bug — ada scope berprioritas lebih tinggi seperti managed settings yang menyediakannya. Claude Code tetap menyimpan nilai Anda untuk nanti dan memberi tahu bahwa ia melakukannya. Launch flag adalah jalan menembusnya untuk satu sesi tanpa berdebat dengan setting organisasi Anda.
Membatasi jendelanya dengan sengaja
Mematikan jendela besar terdengar aneh sampai Anda punya alasannya. Deployment yang butuh batas atas yang bisa diprediksi, kendali biaya yang mengasumsikan percakapan terbatas, dan perbandingan di mana Anda ingin dua sesi berperilaku sama semuanya alasan yang sah. Perilakunya saat Anda melakukan itu spesifik, dan interaksinya dengan auto-compact window sering menjebak orang.
# Cap every model at 200K, including ones with a native 1M
# window such as Sonnet 5 and Fable 5.
CLAUDE_CODE_DISABLE_1M_CONTEXT=1
# - 1M variants disappear from the /model picker
# - with auto-compaction ON, sessions compact at 200K.
# Setting the auto-compact window above 200K does NOT lift
# the hold, because the window is capped at the model's
# context window and the model is now treated as 200K.
# - with auto-compaction OFF, sessions stop at 200K with the
# context-limit error instead of compacting.
# Behind a gateway, Claude Code cannot verify 1M support, so a
# Sonnet 5 session budgets 200K. Pick the 1M entry in the model
# picker to get the full window back.Gateway dan ID model kustom: tiga kasus, bukan satu
Pada gateway atau deployment kustom, Claude Code bisa mengasumsikan context window untuk sebuah ID model yang berbeda dari aslinya. Ada variabel untuk mendeklarasikan jendela yang benar, dan cara ia berlaku sepenuhnya bergantung pada bentuk ID-nya:
- ID yang tidak diawali prefiks Claude, tidak memuat penanda 1M, dan tidak bisa diresolusi ke model Claude: variabelnya berlaku langsung dan compaction proaktif berjalan pada jendela yang dideklarasikan.
- ID yang memuat penanda 1M tetapi selebihnya tak dikenali: Claude Code mengasumsikan jendela 1M dan variabelnya tidak berlaku sendirian. Setel juga variabel disable, dan harapkan peringatan startup bahwa batas 200K tidak ditegakkan — peringatan itu memang wajar pada konfigurasi ini.
- ID yang diawali prefiks Claude atau bisa diresolusi ke model Claude: variabelnya baru berlaku ketika compaction dimatikan sepenuhnya. Claude Code meresolusi ID yang memuat nama model Claude ke model tersebut, bahkan yang membawa penanda 1M sekalipun.
Untuk ID model yang sama sekali tidak dikenali Claude Code, ada variabel yang membuatnya memadatkan percakapan hanya setelah API menolaknya karena terlalu panjang. Pemulihan itu tidak berjalan ketika gateway menulis ulang error-nya menjadi kalimat yang tidak dikenali Claude Code — dan itu persis situasi ketika Anda paling membutuhkannya. Kalau Anda menjalankan gateway, periksa dulu apa yang ia lakukan pada body error sebelum mengandalkan jalur tersebut.
Harganya lebih sederhana daripada konfigurasinya
Jendela 1M memakai harga model standar tanpa premi untuk token di atas 200 ribu. Pada paket yang extended context-nya termasuk dalam langganan, pemakaiannya tetap ditanggung langganan; pada paket yang menjangkaunya lewat usage credits, token itu ditagihkan ke credits. Tidak ada tarif long-context terpisah yang perlu dipikirkan.
Biaya sesungguhnya ada di tempat lain dan tidak tercetak di tagihan. Jendela lebih besar berarti prefix lebih besar untuk di-cache, percakapan lebih panjang untuk diproses ulang setiap kali sesuatu membatalkan cache itu, dan compaction yang jauh lebih mahal ketika akhirnya menyala setelah jeda melebihi masa hidup cache. Melanjutkan sesi yang sangat panjang setelah pembaruan versi adalah kasus terburuk dari ketiganya sekaligus.
Kenapa jendela lebih besar tidak otomatis berarti sesi lebih baik
Studi Anthropic sendiri atas sesi Claude Code menemukan bahwa sesi pengguna ahli lebih panjang, bukan lebih pendek — dua belas aksi dan sekitar 3.200 kata melawan lima aksi dan 600 kata untuk pemula. Panjang bukan masalahnya. Panjang yang tidak dikelola itulah masalahnya. Tiga hal memburuk seiring percakapan membesar, terlepas dari apakah ia muat:
- Biaya setiap pembatalan cache sebanding dengan panjang percakapan, jadi ganti model di tengah tugas jauh lebih mahal pada 800K daripada pada 80K.
- Compaction setelah jeda idle yang panjang memproses ulang seluruh riwayat sebagai input tanpa cache, dan tagihan itu sebanding dengan jendela yang Anda biarkan terisi.
- Keputusan yang dibuat lebih awal memang masih ada di dalam jendela, tetapi ia bersaing dengan semua yang datang sesudahnya — muat tidak sama dengan ditemukan.
Kebiasaan yang selamat saat saya pindah ke jendela besar adalah menyetel ambang auto-compact jauh di bawah batas atas model, bukan tepat di batasnya. Compaction pada titik yang saya pilih, di antara tugas, jauh lebih murah daripada compaction yang menyala di tengah tugas setelah jeda idle. Jendela itu ruang cadangan untuk tugas yang memang membutuhkannya, bukan target untuk diisi.
Perlakukan jendela sejuta token sebagai asuransi, bukan sebagai kapasitas. Ia berarti sesi yang memang perlu membaca separuh repository tidak mati di tengah jalan, dan itu bernilai besar. Ia tidak berarti sesi yang sudah berjalan sejak pagi tadi masih layak diteruskan, dan disiplin yang membuat 200K bisa dikerjakan — compact di batas tugas, rewind alih-alih compact saat meninggalkan jalur, mulai baru saat topiknya berubah — persis disiplin yang membuat 1M layak dimiliki.
Sumber & bacaan lanjutan
- Dokumentasi Claude Code — Model configuration dan extended context
- Dokumentasi Claude Code — Explore the context window
- Dokumentasi Claude Code — Environment variables
- Dokumentasi Claude Code — Settings reference (autoCompactWindow)
- Dokumentasi Claude Code — Manage costs
- Dokumentasi Claude Code — How Claude Code uses prompt caching
- Dokumentasi Claude Code — LLM gateways
- Dokumentasi Claude Code — Referensi error

