Keracunan konteks

Pelajari apa itu keracunan konteks, cara mengenalinya dalam sesi Bob Shell, dan cara memulihkannya dengan memulai sesi baru atau meningkatkan kebersihan konteks.

Tentang keracunan konteks

Keracunan konteks terjadi saat informasi yang salah atau tidak relevan masuk ke context window dan tetap ada dalam transcript. Bob memperlakukan informasi tersebut sebagai fakta pada prompt tindak lanjut. Respons mulai menyimpang. Tool call menjadi tidak akurat. Tujuan kerja hilang.

Ini berbeda dari satu jawaban yang buruk. Data yang buruk ada di Messages (atau masuk melalui pembacaan file, penempelan output perintah, atau komentar yang sudah usang). Bob mengirim ulang setiap prompt sampai kamu reset atau memulai sesi baru.

Untuk cara window terisi dan kapan harus memulai sesi baru, lihat Manajemen context window.

Gejala

Kamu kemungkinan besar menghadapi keracunan konteks saat kamu melihat salah satu dari berikut ini:

  • Output yang memburuk: Saran berulang, menyimpang, atau tidak lagi cocok dengan repo.
  • Penggunaan alat yang salah: Langkah-langkah alat dalam transcript tidak lagi sesuai dengan apa yang kamu minta.
  • Pekerjaan multi-langkah yang macet: Alur multi-prompt yang panjang berulang atau terhenti.
  • Perbaikan berumur pendek: Prompt korektif membantu sekali, tetapi kemudian masalah muncul kembali.
  • Kebingungan alat: Bob menyalahgunakan alat meskipun Tool definitions tidak berubah.

Jika Messages sudah besar, periksa penggunaan token kamu terlebih dahulu. Keracunan dan window yang terlalu penuh sering terjadi bersamaan.

Penyebab umum

PenyebabYang terjadi
Fakta yang buruk dalam sesiBob menyatakan sesuatu yang salah. Pertukaran selanjutnya memperlakukannya sebagai kebenaran dalam Messages.
Teks repo yang sudah usang atau salahKomentar yang sudah ketinggalan zaman, fragmen README, atau dokumen yang dihasilkan menyesatkan pembacaan file.
Tempel yang berlebihanLog atau cuplikan dengan noise, pemotongan, atau karakter tersembunyi mendarat di Messages.
KondensasiBob merangkum Messages yang lebih lama. Detail yang berguna hilang. Yang tersisa dapat mendominasi sesi.
Konteks yang tidak relevanFile yang tidak terkait, rencana lama, atau tujuan kerja sebelumnya masih ada dalam transcript.

Setelah konteks yang buruk ada dalam Messages, konteks tersebut tetap ada di setiap prompt berikutnya. Bob tidak secara andal mengabaikan teks yang masuk akal hanya karena salah.

Keterbatasan prompt korektif

Menempelkan Tool definitions, aturan, atau prompt korektif yang ketat ke dalam percakapan mungkin menyembunyikan masalah untuk satu atau dua pertukaran. Riwayat Messages yang tercemar masih ada. Pertanyaan berikutnya yang tidak relevan dapat membawa kegagalan yang sama kembali.

Perbaikan yang andal adalah sesi baru: keluar dan jalankan bob lagi untuk memulai dari awal. Ini menghapus Messages yang tercemar sambil menjaga Rules dan file proyek di disk.

Pemulihan

  • Mulai sesi baru dengan keluar dan menjalankan bob lagi. Ini menghapus Messages yang tercemar sambil menjaga Rules dan file proyek di disk.
  • Tempel lebih sedikit. Kirim hanya baris log atau error yang diperlukan Bob. Dump yang besar meningkatkan Messages dan memperkenalkan lebih banyak risiko.
  • Pisahkan tujuan kerja. Gunakan sesi terpisah untuk langkah-langkah yang tidak terkait sehingga transcript yang basi tidak terbawa.
  • Periksa output alat. Jika alat mengembalikan sampah, berhenti dan mulai sesi baru daripada membiarkan Bob membangun berdasarkan itu di Messages.
  • Percayai tes daripada teks. Saat komentar dan kode tidak selaras, arahkan Bob ke pemeriksaan yang dapat dijalankan. Ini adalah panduan yang sama dengan praktik terbaik context window.

Pencegahan

Sebagian besar pencegahan merupakan hasil dari kebersihan konteks yang baik:

  • Tetapkan lingkup tujuan kerja sebelum eksplorasi repo (manajemen context window).
  • Jaga AGENTS.md dan Rules tetap singkat dan operasional.
  • Tambahkan file dan log saat diperlukan, bukan di muka.
  • Reset saat Messages tumbuh tanpa kemajuan.

Untuk pembacaan seluruh repo, gunakan subagent sehingga sesi melihat hasil subagent, bukan setiap langkah alat dalam Messages.

Pelajari lebih lanjut

Bagaimana topik ini?