Dasar

Jendela konteks LLM agen: apa yang masuk ke dalamnya dan mengapa agen lupa aturan

Diperbarui: · Skillaria.Top

Jendela konteks LLM adalah seluruh teks yang dilihat model setiap kali menjawab: prompt sistem, berkas instruksi, riwayat percakapan, berkas yang dibaca, dan keluaran alat. Jendela punya batas keras dalam token, tetapi kualitas perhatian turun jauh sebelum batas itu, sehingga di sesi panjang agen mulai kehilangan aturan; membantu instruksi yang singkat, kompaksi, sesi baru dengan berkas rencana, dan memindahkan kerja berisik ke subagen.

Apa itu jendela konteks LLM

Jendela konteks LLM adalah seluruh teks yang diterima model sebagai masukan untuk menghasilkan setiap jawaban. Model tidak punya ingatan dalam arti manusia: semua yang ia «ketahui» tentang tugas Anda pada saat itu berada di jendela ini. Yang tidak ada di jendela, bagi model tidak ada.

Ukuran jendela diukur dalam token — potongan kata. Untuk teks berbahasa Indonesia atau Rusia, satu token rata-rata lebih pendek daripada untuk bahasa Inggris, sehingga instruksi yang sama sering memakan lebih banyak token. Model modern punya jendela ratusan ribu token, sehingga tampaknya tempat cukup untuk semuanya. Dalam praktiknya, ruang agen habis lebih cepat dari perkiraan, dan kualitas kerjanya menurun bahkan lebih cepat lagi.

Apa saja yang masuk ke jendela konteks agen

Untuk agen pemrograman ada tiga sumber informasi: prompt sistem dengan deskripsi tugas, isi berkas yang dibaca, dan keluaran alat yang dipanggil. Ketiganya hidup di satu jendela yang sama dan saling berebut tempat.

ApaKapan masukBiasanya memakan berapa
Prompt sistem agen dan deskripsi alatdi awal setiap sesibiaya tetap, hampir tidak bisa Anda ubah
CLAUDE.md, AGENTS.md, dan berkas instruksi lainnyadi awal sesi, utuhdari ratusan hingga puluhan ribu token — bergantung pada Anda
Pesan Anda dan jawaban agenterkumpul sepanjang percakapantumbuh dengan setiap giliran
Berkas yang dibacaketika agen membukanyaberkas besar — ribuan token sekaligus
Keluaran perintah: tes, log, build, grepsetelah setiap pemanggilansering kali bagian terbesar dan paling tidak berguna

Yang penting: tidak ada yang hilang dengan sendirinya. Log tes yang gagal dan dibutuhkan dua puluh langkah lalu tetap berada di jendela dan mengambil perhatian dari langkah saat ini. Sesi panjang adalah tumpukan yang terus membesar, di mana semakin sulit menemukan jarum.

Mengapa agen melupakan aturan di sesi panjang

Keluhan yang sering terdengar: di awal sesi agen dengan cermat mematuhi aturan dari CLAUDE.md, tetapi setelah satu jam kerja mulai melanggarnya. Ia tidak «lupa» dalam arti harfiah — teks aturan masih ada di jendela. Masalahnya ada pada cara model membagi perhatian ke teks yang panjang.

Lost in the middle

Penelitian Liu dan rekan-rekannya pada 2023 menunjukkan: model bahasa jauh lebih baik memanfaatkan informasi dari awal dan akhir konteks yang panjang dibanding dari tengahnya. Berkas instruksi dimuat di awal sesi, tetapi seiring percakapan semakin banyak teks menumpuk di atas dan di bawahnya. Aturan yang tadinya terlihat jelas pelan-pelan jatuh ke zona yang paling kurang «terlihat» oleh model.

Porsi aturan dalam jendela menyusut

Di sesi yang baru dimulai, instruksi adalah bagian yang cukup besar dari konteks. Setelah seratus pemanggilan alat, instruksi itu menjadi potongan kecil di antara log, diff, dan kode yang sudah dibaca. Sinyalnya sama, tetapi derau di sekitarnya puluhan kali lebih banyak.

Contoh baru mengalahkan aturan lama

Model sangat bergantung pada apa yang terjadi di percakapan belakangan. Jika agen beberapa kali berturut-turut melanggar aturan dan lolos, pola itu di riwayat mulai lebih berbobot daripada satu baris instruksi di suatu tempat di awal.

Context rot: penurunan kualitas sebelum batas jendela

Context rot («pembusukan konteks») adalah sebutan untuk efek ketika kualitas jawaban model turun seiring jendela terisi, meskipun batas teknisnya masih jauh. Model secara formal menerima 200 ribu token, tetapi pada 150 ribu ia bekerja lebih buruk daripada pada 20 ribu: lebih sering keliru pada detail, mengulang solusi yang sudah ditolak, dan kehilangan instruksi.

Tanda-tanda sesi sudah «busuk»:

  • agen mengusulkan pendekatan yang tadi setengah jam lalu sudah Anda tolak bersama;
  • tertukar nama berkas dan fungsi yang sudah dibahas;
  • berhenti menjalankan pemeriksaan yang di awal ia jalankan sendiri;
  • jawaban makin panjang dan kabur, muncul tambahan «sekalian saya perbaiki».

Menambah satu aturan lagi untuk mengatasi ini tidak berguna: aturan baru juga akan hilang di tengah derau yang sama. Yang perlu dikurangi adalah deraunya.

Kompaksi konteks

Kompaksi adalah pemadatan riwayat sesi: model menulis ringkasan tentang apa yang terjadi, dan percakapan dilanjutkan dengan ringkasan itu, bukan dengan riwayat lengkap. Jendela terbebaskan, dan inti pekerjaan tampaknya tetap terjaga.

Di Claude Code tersedia perintah /compact, yang bisa diberi petunjuk tentang apa yang harus difokuskan saat pemadatan. Ketika jendela mendekati batas, Claude Code juga melakukan kompaksi secara otomatis. Perintah /clear menghapus seluruh riwayat dan memulai dari awal, sedangkan /context menunjukkan apa saja yang memakan jendela saat ini.

/context
/compact simpan: tujuan tugas, keputusan beserta alasannya, daftar berkas yang diubah, apa yang masih perlu diperiksa
/clear

Bahaya dari kompaksi

Ringkasan selalu kehilangan detail. Di ringkasan itu mungkin tidak masuk varian yang ditolak beserta alasannya, rumusan persis dari persyaratan, atau nuansa yang disepakati sekilas. Setelah kompaksi, agen bekerja dengan catatan tentang sesinya sendiri yang ditulis orang lain. Karena itu, hal-hal penting lebih aman disimpan bukan di riwayat percakapan, melainkan di berkas yang bertahan melewati kompaksi apa pun.

Kompaksi atau sesi baru

SituasiYang dilakukan
Tugas hampir selesai, hanya butuh sedikit ruang lagiKompaksi dengan petunjuk tentang apa yang harus disimpan
Satu tugas selesai, mulai tugas lainSesi baru, riwayat lama hanya mengganggu
Sesi «busuk», agen berputar-putarCatat keadaan di berkas rencana, mulai sesi baru
Perlu menyelidiki kode atau log dalam waktu lamaSerahkan penyelidikan ke subagen

Cara menghemat jendela konteks

Menghemat konteks bukan soal harga token, melainkan kualitas kerja. Makin sedikit derau di jendela, makin banyak perhatian yang tersisa untuk tugas dan aturan.

1. Berkas instruksi yang singkat sebagai router

CLAUDE.md atau AGENTS.md masuk utuh di setiap sesi. Berkas 600 baris setara kira-kira 10–20 ribu token biaya tetap. Simpan di sana perintah verifikasi, batasan keras, dan peta proyek, sedangkan rincian per topik ditaruh di dokumen terpisah yang dibuka hanya bila diperlukan.

2. Pengetahuan yang dimuat sesuai kebutuhan

Dalam Claude Code skills, yang pertama masuk ke konteks hanyalah deskripsi singkat, sedangkan instruksi lengkapnya dimuat ketika skill dibutuhkan untuk tugas. Ini cara praktis menyimpan prosedur yang jarang — deploy, migrasi, rilis — tanpa membayarnya di setiap sesi.

3. Subagen untuk kerja yang berisik

Subagen bekerja di jendela konteks sendiri dan hanya mengembalikan hasil ke sesi utama. Pencarian di kode besar, pembacaan log yang panjang, mempelajari modul yang asing — semuanya bisa diserahkan ke subagen, dan sebagai gantinya Anda mendapat beberapa paragraf kesimpulan, bukan ribuan baris keluaran mentah.

4. Keluaran alat yang senyap

Keluaran perintah adalah pemakan jendela terbesar. Atur perintah verifikasi agar saat berhasil hanya mencetak satu baris, dan saat gagal hanya bagian intinya: tes yang gagal beserta pesannya, bukan seluruh log build.

# berisik: ribuan baris ke dalam konteks setiap kali dijalankan
pytest -v

# senyap: saat berhasil satu baris, saat gagal hanya tes yang jatuh
pytest -q --tb=short

# log: bukan seluruhnya, hanya ekor dan kesalahan
tail -n 50 app.log | grep -i error

5. Satu tugas — satu sesi

Jangan menyeret satu sesi melalui tiga tugas yang tidak berkaitan. Riwayat tugas pertama tidak berguna untuk tugas ketiga, tetapi tetap memakan tempat dan membingungkan agen. Selesai — catat hasilnya — buka sesi baru.

6. Keadaan disimpan di berkas, bukan di riwayat

Semua yang harus bertahan melewati kompaksi dan sesi baru, tulis di repositori: tujuan, keputusan beserta alasannya, varian yang ditolak, apa yang sudah dikerjakan dan bagaimana diverifikasi, langkah berikutnya. Misalnya di PLAN.md dan PROGRESS.md. Dengan begitu sesi baru dimulai bukan dengan ceritera ulang, melainkan dengan dokumen yang tepat, dan riwayat bisa dibersihkan tanpa khawatir.

# PROGRESS.md
## Tujuan
Ubah perhitungan diskon menjadi satuan sen bulat

## Selesai (terverifikasi)
- app/payments/discount.py: float → int, make test hijau
- Migrasi 041 ditambahkan, diterapkan lokal

## Keputusan
- Pembulatan — banker's rounding, seperti di penyedia pembayaran

## Ditolak
- Decimal di model: merusak serialisasi webhook

## Langkah berikutnya
Perbarui skenario e2e checkout dan jalankan make e2e

Aturan kritis — tidak hanya di dalam jendela

Bahkan konteks yang tersusun sempurna tidak menjamin aturan dipatuhi: teks di jendela adalah pengaruh terhadap model, bukan larangan yang bisa dieksekusi. Jika pelanggaran tidak dapat diterima, aturan harus diperiksa secara mekanis. Di Claude Code untuk itu ada hooks — perintah yang berjalan pada event agen dan bisa memblokir tindakan — serta pengaturan izin yang melarang alat atau perintah tertentu. Linter, tes, dan CI bekerja terlepas dari apa yang sedang terjadi di jendela agen.

Aturan yang baik untuk harness: semua yang bisa diperiksa otomatis, diperiksa otomatis; dan di dalam konteks hanya tersisa hal-hal yang memerlukan penilaian.

Ringkasan

Jendela konteks LLM adalah satu-satunya tempat agen melihat tugas Anda, dan ia terisi lebih cepat daripada yang terlihat: instruksi, riwayat, berkas yang dibaca, dan keluaran perintah menumpuk sampai sesi berakhir. Kualitas turun jauh sebelum batas teknis, aturan dari tengah konteks panjang terlewat, dan kompaksi menyelamatkan ruang dengan mengorbankan detail. Jaga instruksi tetap singkat, muat pengetahuan langka sesuai kebutuhan, serahkan kerja berisik kepada subagen, simpan keadaan di berkas, dan dukung aturan kritis dengan hook dan pemeriksaan. Cara bekerja dengan konteks agen dibahas praktis di kursus harness engineering.

Pertanyaan umum

Berapa token dalam jendela konteks Claude?

Bergantung pada model dan paket, ukuran acuannya sekitar 200 ribu token, sebagian model dan konfigurasi memiliki lebih banyak. Nilai pastinya lihat di dokumentasi Anthropic untuk model tertentu.

Apakah model dengan jendela besar menyelesaikan masalah lupa aturan?

Sebagian. Ruangnya lebih banyak, tetapi efek lost in the middle dan context rot tidak hilang. Jendela besar tidak menggantikan instruksi yang singkat dan sesi yang bersih.

Perlukah mengulang aturan penting dalam pesan jika agen melanggarnya?

Pengingat sekali membantu, karena teks yang baru ada di akhir konteks lebih mudah dilihat model. Tetapi jika Anda harus terus-menerus mengingatkan, kunci aturan itu dengan pemeriksaan atau hook.

Bagaimana mengetahui apa yang memakan jendela di Claude Code?

Perintah /context menunjukkan berapa banyak tempat yang dipakai prompt sistem, alat, berkas memori, dan riwayat pesan. Cara cepat untuk melihat apakah CLAUDE.md yang membengkak atau riwayat panjang yang memakan tempat.

Apa yang paling cepat hilang saat kompaksi?

Kesepakatan yang hanya ada di percakapan: varian yang ditolak, penjelasan persyaratan, nuansa kecil. Semua yang tertulis di berkas repositori bisa dibaca ulang oleh agen.