Bağlam bir bütçedir, hafıza onun dışında yaşar
Ajanın dikkati sınırlıdır ve pencere doldukça kötüleşir. Yalnızca önemli olanı görünürde tutun, gerisini gerektiğinde yükleyin, uzun vadeli durumu dosyalara yazın.
Daha çok token, daha çok hafıza değil
Büyük bir pencere her şeyi tutabilmek anlamına geliyormuş gibi düşünmek cazip. Anthropic'in bağlam mühendisliği rehberi bunun tersini söylüyor. Bağlam sınırlı bir dikkat bütçesi, ve token sayısı arttıkça model bağlamın herhangi bir parçasını kullanmakta kötüleşiyor. Rehber buna context rot diyor.
Hedef, en çok sinyali taşıyan en küçük token kümesi. Bu, sistem prompt'unu nasıl yazdığınızı da değiştiriyor: her durum için bir kural yığını değil, doğru yükseklikte talimatlar, birkaç temsilî örnek ve birbiriyle çakışmayan araçlar. Rehber, uzun bir kural listesi yerine birkaç iyi örneği tercih ediyor.
Her araç sonucu bu yığına ekleniyor. Bir önceki dersin çıktı boyutuna bu kadar önem vermesinin sebebi bu.
Lazım olduğunda yükleyin
İlk alışkanlık, bir şeyi önceden yüklememek. Bütün kod tabanını pencereye koymak yerine ajan referansları tutuyor, örneğin dosya yollarını, ve ihtiyaç duyunca çalışma anında yüklüyor. İçeriğe ihtiyacı olduğunda bir araç çağırıp yalnızca o kısmı okuyor.
Buna tam zamanında yükleme (just-in-time) diyoruz: önemli dosyayı bul, oku, devam et. Rehbere göre en iyi kurulumlar çoğu zaman karma oluyor: hız için biraz şey baştan yüklenir, gerisi çalışma anında getirilir.
Pencerenin dışındaki notlar
Uzun bir iş, hangi pencereden olursa olsun uzun yaşar. Çözüm, önemli olanı sonraki turun bulabileceği bir yere yazmak. Anthropic'in rehberi yapılandırılmış not almayı ajanın dış hafızası olarak adlandırıyor.
Harness ekibi bunun nasıl göründüğünü gösterdi. Her oturum hiçbir hafıza olmadan başlıyor. O yüzden ilk oturum bir ilerleme kaydı, bir init.sh betiği, ilk git commit'i ve hepsi "başarısız" işaretli bir JSON özellik listesi oluşturuyor. Sonraki her oturum kaydı ve git geçmişini okuyor, temel bir uçtan uca kontrol çalıştırıyor, sonra tek bir özellik yapıyor. Yalnızca passes alanını çevirebiliyor. Ekip JSON'u seçti, çünkü modeller onu Markdown'dan daha az üzerine yazıyor.
Bash döngüsü Ralph aynı fikri daha kaba uyguluyor: her tur taze bir bağlamla başlıyor ve durumu diskteki bir plan dosyasından öğreniyor.
Managed Agents bir adım daha ileri gidiyor. Oturum kaydı yalnızca ekleme kabul ediyor ve hem modelin hem de harness'ın dışında duruyor; harness çökerse kaydı baştan oynatıp devam ediyor.
$ cat progress.md✻ Bitti: ayrıştırıcı iç içe listeleri işliyor✻ Sıradaki: tablo hizalamasını düzelt, sonra bütün testleri çalıştır> progress.md dosyasını oku ve devam et✻ Kaydı ve son commit'leri okur✻ Smoke kontrolünü çalıştırır, sonra tablo hizalamasına başlar# Ajan hatırlamadı. Okudu.
Uzun soluklu harness neden her oturuma ilerleme kaydını ve git geçmişini okuyarak başlıyor?
Compaction ne yapıyor
Bazen tek bir uzun oturumdan kaçamazsınız. Compaction, harness'ın konuşmayı özetleyip o özetten yeni bir pencere başlatması. Claude Code'da özet, en son dokunulan beş dosyayla birlikte tutuluyor.
Bu kayıplı bir kopya. Özetin dışında kalan her şey pencereden gidiyor; önemli bilgilerin bir dosyada durması bu yüzden. Not dosyasına yazılmış bir karar hayatta kalır, lafın arasında geçen bir ayrıntı kalmayabilir.
Aynı soruna ikinci çözüm alt ajan. Bir arama için on binlerce token harcayıp size 1.000 ile 2.000 token'lık bir özet verebiliyor. Gürültü onun penceresinde kalıyor, sizinki temiz.
Compaction sonrasında da ajanın bilmesi gereken bir karar için en iyi yer neresi?
Bölüm tamamlandı
Ajanlar nasıl çalışır kursunun 6 bölümünden 3. bölümü bitirdiniz.
Ajanlar üç biçimde işbirliği yapar: iş dağıtan bir lider, ayrı bir değerlendiriciyle denetlenen bir üretici ve ortak bir depoda çalışan eşler. Üçünde de mesajı dosyalar taşır.
Sonraki bölüm