Bağlam zehirlenmesi
Bağlam zehirlenmesinin ne olduğunu, Bob Shell oturumunda nasıl tanınacağını ve yeni bir oturum başlatarak veya bağlam hijyenini iyileştirerek nasıl kurtarılacağını öğrenin.
Bağlam zehirlenmesi hakkında
Bağlam zehirlenmesi, yanlış veya alakasız bilgilerin bağlam penceresine girerek transkriptte kalması durumudur. Bob, takip istemlerinde bu bilgileri gerçek olarak değerlendirir. Yanıtlar sürüklenmeye başlar. Araç çağrıları hatalı hale gelir. Çalışma hedefi kaybolur.
Bu, tek bir kötü yanıttan farklıdır. Kötü veriler İletilerde oturur (veya bir dosya okuma, komut çıktısı yapıştırma ya da güncel olmayan bir yorum aracılığıyla gelmiş olabilir). Bob, sıfırlayana veya yeni bir oturum başlatana kadar bunu her istemde yeniden gönderir.
Pencerenin nasıl dolduğu ve ne zaman yeni bir oturum başlatılacağı için bkz. Bağlam penceresi yönetimi.
Belirtiler
Aşağıdakilerden herhangi birini fark ettiğinizde büyük olasılıkla bağlam zehirlenmesiyle karşı karşıyasınızdır:
- Daha kötü çıktı: Öneriler tekrarlanıyor, dağılıyor veya repository'yle uyuşmayı bırakıyor.
- Yanlış araç kullanımı: Transkriptteki araç adımları artık istediğinizle uyuşmuyor.
- Takılı kalan çok adımlı iş: Uzun çok istemli akışlar döngüye giriyor veya duruyor.
- Kısa ömürlü düzeltmeler: Düzeltici bir istem bir kez yardımcı oluyor, ancak ardından sorun geri dönüyor.
- Araç karışıklığı: Bob, Araç tanımları değişmemiş olsa bile araçları yanlış kullanıyor.
İletiler zaten büyükse önce token kullanımınızı kontrol edin. Zehirlenme ve aşırı dolu pencere genellikle birlikte ortaya çıkar.
Yaygın nedenler
| Neden | Ne oluyor |
|---|---|
| Oturumdaki yanlış olgular | Bob yanlış bir şey söylüyor. Sonraki değişimler bunu İletilerdeki gerçek olarak ele alıyor. |
| Eski veya yanlış repository metni | Eski yorumlar, README parçaları veya oluşturulan belgeler dosya okumalarını yanıltıyor. |
| Aşırı büyük yapıştırmalar | Gürültü, kırpma veya gizli karakterler içeren günlükler veya parçacıklar İletilere düşüyor. |
| Yoğunlaştırma | Bob eski İletileri özetliyor. Yararlı ayrıntılar kayboluyor. Kalan oturuma egemen olabiliyor. |
| Alakasız bağlam | İlgisiz dosyalar, eski planlar veya önceki bir çalışma hedefi hâlâ transkriptte mevcut. |
Kötü bağlam İletilere girdiğinde, sonraki her istemde devam eder. Bob, yanlış olduğu için makul metni güvenilir biçimde yok saymaz.
Düzeltici istemlerin sınırlamaları
Araç tanımlarını, kuralları veya katı düzeltici bir istemi konuşmaya yapıştırmak, sorunu bir veya iki değişim için maskeleyebilir. Zehirlenmiş İletiler geçmişi hâlâ orada durmaktadır. Bir sonraki konu dışı soru aynı başarısızlığı geri getirebilir.
Güvenilir çözüm yeni bir oturumdur: çıkın ve yeni bir oturum başlatmak için tekrar bob çalıştırın. Bu, Kuralları ve disk üzerindeki proje dosyalarını korurken zehirlenmiş İletileri temizler.
Kurtarma
- Çıkıp tekrar
bobçalıştırarak yeni bir oturum başlatın. Bu, Kuralları ve disk üzerindeki proje dosyalarını korurken zehirlenmiş İletileri temizler. - Daha az yapıştırın. Yalnızca Bob'un ihtiyaç duyduğu günlük satırlarını veya hataları gönderin. Büyük dökümler İletileri artırır ve daha fazla risk getirir.
- Çalışma hedefini bölün. Eski bir transkriptin devam etmemesi için ilgisiz adımlar için ayrı oturumlar kullanın.
- Araç çıktısını kontrol edin. Bir araç çöp döndürürse durun ve Bob'un İletilerde bunun üzerine inşa etmesine izin vermek yerine yeni bir oturum başlatın.
- Metinden çok testlere güvenin. Yorumlar ve kod birbirinden farklı olduğunda Bob'u çalıştırılabilir kontrollere yönlendirin. Bu, bağlam penceresi en iyi uygulamalarıyla aynı rehberliktir.
Önleme
Önlemenin büyük çoğunluğu iyi bağlam hijyeninin sonucudur:
- Repository keşfinden önce çalışma hedefini belirleyin (bağlam penceresi yönetimi).
AGENTS.mdve Kuralları kısa ve işlevsel tutun.- Dosyaları ve günlükleri baştan değil, gerektiğinde ekleyin.
- İlerleme olmadan İletiler büyüdüğünde sıfırlayın.
Repository genelindeki okumalar için subagent'ler kullanın; böylece oturum İletilerde her araç adımını değil subagent sonuçlarını görür.