Temeller

LLM ajanının bağlam penceresi: neler girer ve ajan kuralları neden unutur

Güncellendi: · Skillaria.Top

LLM bağlam penceresi, modelin her yanıtta gördüğü tüm metindir: sistem promptu, talimat dosyaları, konuşma geçmişi, okunan dosyalar ve araç çıktıları. Pencerenin token cinsinden sert bir sınırı vardır, ama dikkat kalitesi bu sınırdan çok önce düşer; bu yüzden uzun oturumda ajan kuralları kaybetmeye başlar. Yardımcı olan şeyler kısa talimatlar, compaction, plan dosyasıyla yeni oturumlar ve gürültülü işi alt ajanlara devretmektir.

LLM bağlam penceresi nedir

LLM bağlam penceresi, modelin bir sonraki yanıtı üretirken aldığı tüm girdi metnidir. Modelin insanlardaki anlamda bir hafızası yoktur: model o anda görevinizle ilgili ne "biliyorsa", hepsi bu pencerededir. Pencerede olmayan şey model için yoktur.

Pencerenin boyutu token ile ölçülür — kelime parçalarıyla. Rusça metinde bir token ortalama İngilizcedekinden kısadır, bu yüzden aynı talimat Rusça yazıldığında daha fazla token tutar. Modern modellerin pencereleri yüz binlerce token olabiliyor ve her şeye yetecekmiş gibi görünüyor. Pratikte ajanın alanı beklediğinizden hızlı tükenir ve performansı ondan da önce düşmeye başlar.

Ajanın bağlam penceresine neler girer

Programlama ajanının bilgi kaynağı tam olarak üç tanedir: görevi anlatan sistem promptu, okuduğu dosyaların içeriği ve çağırdığı araçların çıktısı. Üçü de aynı pencerede yaşar ve yer için yarışır.

NeNe zaman girerGenelde ne kadar yer kaplar
Ajanın sistem promptu ve araç tanımlarıher oturumun başındasabit maliyet, sizin etkiniz az
CLAUDE.md, AGENTS.md ve diğer talimat dosyalarıoturumun başında, tamamıyüzlerce ila on binlerce token — sizin yazdığınıza bağlı
Sizin mesajlarınız ve ajanın yanıtlarıtüm konuşma boyunca birikirher replikte büyür
Okunan dosyalarajan onları açtığındabüyük bir dosya bir seferde binlerce token
Komut çıktıları: testler, loglar, derleme, grepher çağrıdan sonraçoğu zaman en büyük ve en az işe yarayan kısım

Kritik nokta: bunların hiçbiri kendiliğinden kaybolmaz. Yirmi adım önce lazım olan, şimdi başarısız olmuş testlerin logu hâlâ pencerededir ve mevcut adımdan dikkat çalar. Uzun oturum, her geçen dakikada büyüyen bir saman yığınıdır; içinde iğneyi bulmak giderek zorlaşır.

Uzun oturumda ajan kuralları neden unutur

Sık görülen şikâyet: oturumun başında ajan CLAUDE.md'deki kuralları titizlikle uygular, bir saat sonra ihlal etmeye başlar. Kuralları harfi harfine "unutmuş" değildir — kuralın metni hâlâ pencerededir. Sorun, modelin uzun metin üzerinde dikkati nasıl dağıttığıdır.

Lost in the middle

Liu ve ortak yazarlarının 2023 tarihli araştırması, dil modellerinin uzun bağlamın başındaki ve sonundaki bilgiyi ortasındakinden belirgin biçimde daha iyi kullandığını gösterdi. Talimat dosyası oturumun başında yüklenir, ama konuşma ilerledikçe hem üstte hem altta giderek daha fazla metin birikir. Gözün önünde olan kural, zamanla modelin en az "gördüğü" bölgeye düşer.

Kuralların penceredeki payı düşer

Taze bir oturumda talimatlar bağlamın dikkat çekici bir parçasıdır. Yüz araç çağrısından sonra ise loglar, diff'ler ve okunmuş kodun arasında küçük bir parça olurlar. Sinyal aynıdır, ama etrafındaki gürültü on kat artmıştır.

Taze örnekler eski kuralları bastırır

Model son konuşmaya güçlü biçimde dayanır. Ajan kuralı arka arkaya birkaç kez çiğneyip bunun cezasız kaldığını görürse, geçmişteki bu örüntü başlangıçtaki talimat satırından daha ağır basmaya başlar.

Context rot: pencere dolmadan kalitenin bozulması

Context rot ("bağlam çürümesi"), pencere doldukça yanıt kalitesinin düşmesine verilen addır; teknik sınıra hâlâ uzak olunsa bile. Model 200 bin token'ı resmen kabul eder, ama 150 bin token'da 20 bin token'dakine göre daha kötü çalışır: ayrıntıları daha sık karıştırır, zaten reddedilmiş çözümleri tekrar önerir, talimatları kaybeder.

Oturumun "çürüdüğünün" işaretleri:

  • ajan yarım saat önce birlikte reddettiğiniz bir yaklaşımı tekrar önerir;
  • az önce konuşulmuş dosya ve fonksiyon adlarını karıştırır;
  • başta kendi çalıştırdığı kontrolleri çalıştırmayı bırakır;
  • yanıtlar uzar ve bulanıklaşır, "bir de şunu düzelttim" gibi fazlalıklar çıkar.

Bunu çözmek için bir kural daha eklemek işe yaramaz: yeni kural da aynı gürültüde kaybolur. Gürültüyü azaltmak gerekir.

Compaction: bağlamın sıkıştırılması

Compaction, oturum geçmişinin sıkıştırılmasıdır: model neler olduğunun kısa bir özetini yazar ve konuşma tam geçmiş yerine bu özetle devam eder. Pencere boşalır, işin özü korunmuş olur.

Claude Code'da bunun için /compact komutu vardır; sıkıştırırken nelere odaklanılacağını ipucu olarak verebilirsiniz. Pencere sınıra yaklaştığında Claude Code compaction'ı otomatik de yapar. /clear geçmişi tamamen temizler ve sıfırdan başlatır; /context ise pencerenin neyle dolu olduğunu gösterir.

/context
/compact sakla: görevin amacı, nedenleriyle alınan kararlar, değiştirilen dosyaların listesi, neyin kontrol edilmesi gerektiği
/clear

Compaction neden tehlikeli

Yeniden anlatım her zaman ayrıntı kaybeder. Sıkıştırılmış özete reddedilen seçenek ve reddetme nedeni, gereksinimin tam ifadesi ya da yan yana kararlaştırdığınız bir incelik girmeyebilir. Compaction'dan sonra ajan kendi oturumunun başkasının yazdığı notlarıyla çalışır. Bu yüzden önemli şeyleri konuşma geçmişinde değil, her compaction'ı atlatacak dosyalarda tutmak daha güvenlidir.

Compaction mı, yeni oturum mu

DurumNe yapmalı
Görev neredeyse bitti, biraz daha yer lazımNe korunacağını belirterek compaction
Bir görev bitti, yenisine başlanıyorYeni oturum; eski geçmiş yalnızca engel olur
Oturum "çürüdü", ajan döngüye girdiDurumu bir plan dosyasına yazıp yeni oturum açmak
Kod veya log üzerinde uzun araştırma gerekiyorAraştırmayı bir alt ajana vermek

Bağlam penceresi nasıl tasarruf edilir

Bağlam tasarrufu token fiyatıyla ilgili değil, işin kalitesiyle ilgilidir. Pencerede gürültü azaldıkça görevle kurallara daha fazla dikkat kalır.

1. Kısa bir yönlendirici talimat dosyası

Giriş dosyası CLAUDE.md veya AGENTS.md her oturumda baştan sona okunur. 600 satırlık bir dosya kabaca 10–20 bin token sabit yüktür. İçinde kontrol komutlarını, sert kısıtları ve proje haritasını tutun; konulara göre ayrıntıları ihtiyaç olduğunda açılan ayrı belgelere koyun.

2. İhtiyaç anında yüklenen bilgi

Claude Code skills, bağlama önce yalnızca kısa açıklamalarını koyacak şekilde çalışır; tam talimat ise beceri görevde gerektiğinde yüklenir. Deploy, migrasyon, sürüm gibi nadir süreçleri her oturumda ödemeden elinizin altında tutmanın kolay yoludur.

3. Gürültülü iş için alt ajanlar

Alt ajan kendi bağlam penceresinde çalışır ve ana oturuma yalnızca sonucu döndürür. Büyük kodda arama, uzun log analizi, tanımadığınız bir modülü inceleme — hepsini alt ajana verip binlerce satır ham çıktı yerine birkaç paragraf sonuç alabilirsiniz.

4. Sessiz araç çıktısı

Komut çıktısı pencerenin başlıca tüketicisidir. Kontrol komutlarını başarıda tek satır, hatada yalnızca özü yazdıracak şekilde ayarlayın: düşen test ve onun mesajı, tam derleme logu değil.

# gürültülü: her çalıştırmada binlerce satır pencereye
pytest -v

# sessiz: başarıda tek satır, düşmede yalnızca başarısız testler
pytest -q --tb=short

# log tamamı değil, yalnızca sonu ve hatalar
tail -n 50 app.log | grep -i error

5. Bir görev, bir oturum

Bir oturumu üç ilgisiz göreve taşımayın. İlk görevin geçmişi üçüncü görev için işe yaramaz, ama yer kaplar ve ajanı şaşırtır. Bitirdiniz — sonucu kaydettiniz — yeni oturum açtınız.

6. Durum geçmişte değil, dosyalarda

Compaction'ı ve yeni oturumu atlatması gereken her şeyi depoya yazın: amaç, nedenleriyle kararlar, reddedilen seçenekler, yapılanlar ve nasıl doğrulandığı, bir sonraki adım. Örneğin PLAN.md ve PROGRESS.md dosyalarında. Böylece yeni oturum özetle değil, kesin bir belgeyle başlar ve geçmişi rahatça temizleyebilirsiniz.

# PROGRESS.md
## Hedef
İndirim hesabını tam kuruşlara çevirmek

## Yapılanlar (doğrulandı)
- app/payments/discount.py: float → int, make test yeşil
- 041 migrasyonu eklendi, yerelde uygulandı

## Kararlar
- Yuvarlama — bankacılık yuvarlaması, ödeme sağlayıcısındaki gibi

## Reddedilenler
- Modelde Decimal: webhook serileştirmesini bozuyor

## Sonraki adım
Sipariş ödeme e2e senaryosunu güncellemek ve make e2e çalıştırmak

Kritik kurallar yalnızca pencerede olmamalı

Kusursuz düzenlenmiş bir bağlam bile kuralların uygulanmasını garanti etmez: pencereye yazılan metin modele etki eder, ama çalıştırılabilir bir yasak değildir. İhlali kabul edilemeyen kurallar mekanik olarak kontrol edilmelidir. Claude Code'da bunun için hook'lar vardır — ajanın olaylarında çalışan ve eylemi engelleyebilen komutlar — ve belirli araçları veya komutları yasaklayan izin ayarları. Linter'lar, testler ve CI, ajanın penceresinde ne olduğundan bağımsız çalışır.

İyi bir harness kuralı: otomatik kontrol edilebilen her şey otomatik kontrol edilir, bağlamda ise yalnızca yargı gerektiren şey kalır.

Sonuç

LLM bağlam penceresi, ajanın görevinizi gördüğü tek yerdir ve talimatlar, geçmiş, okunan dosyalar ve komut çıktıları oturum bitene kadar birikerek onu sandığınızdan hızlı doldurur. Kalite teknik sınırdan çok önce düşer, uzun bağlamın ortasındaki kurallar kaybolur ve compaction yeri kurtarırken ayrıntıya mal olur. Talimatları kısa tutun, nadir bilgileri ihtiyaç anında yükleyin, gürültülü işi alt ajanlara verin, durumu dosyalarda tutun ve kritik kuralları hook'lar ile kontrollerle destekleyin. Ajan bağlamıyla çalışma, harness engineering kursunda uygulamalı olarak ele alınır.

Sık sorulan sorular

Claude'un bağlam penceresi kaç token?

Modele ve plana göre değişir; standart referans yaklaşık 200 bin token'dır, bazı modellerde ve yapılandırmalarda daha fazladır. Kesin değerleri Anthropic'in ilgili model belgelerinden kontrol edin.

Daha büyük pencereli bir model unutulan kural sorununu çözer mi?

Kısmen: yer artar, ama lost in the middle ve context rot etkisi ortadan kalkmaz. Büyük pencere kısa talimatların ve temiz oturumun yerini tutmaz.

Ajan bir kuralı çiğnediğinde mesajda tekrar etmek gerekir mi?

Tek seferlik bir hatırlatma yardımcı olur, çünkü bağlamın sonundaki taze metin modelin daha iyi gördüğü yerdedir. Ama sürekli hatırlatmanız gerekiyorsa kuralı bir kontrol ya da hook ile sabitleyin.

Claude Code'da bağlamın neyle dolu olduğunu nasıl görürüm?

/context komutu sistem promptunun, araçların, bellek dosyalarının ve mesaj geçmişinin ne kadar yer kapladığını gösterir. Şişmiş bir CLAUDE.md'nin ya da uzun geçmişin pencereyi yediğini hızlıca görmenin yoludur.

Compaction sırasında ilk olarak ne kaybolur?

Yalnızca konuşmada var olan anlaşmalar: reddedilen seçenekler, gereksinim netleştirmeleri, küçük incelikler. Depo dosyalarına yazılmış her şeyi ajan yeniden okuyabilir.