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
| Penyebab | Yang terjadi |
|---|---|
| Fakta yang buruk dalam sesi | Bob menyatakan sesuatu yang salah. Pertukaran selanjutnya memperlakukannya sebagai kebenaran dalam Messages. |
| Teks repo yang sudah usang atau salah | Komentar yang sudah ketinggalan zaman, fragmen README, atau dokumen yang dihasilkan menyesatkan pembacaan file. |
| Tempel yang berlebihan | Log atau cuplikan dengan noise, pemotongan, atau karakter tersembunyi mendarat di Messages. |
| Kondensasi | Bob merangkum Messages yang lebih lama. Detail yang berguna hilang. Yang tersisa dapat mendominasi sesi. |
| Konteks yang tidak relevan | File 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
boblagi. 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.mddan 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.