Editörünüzü açıp bir oturum başlatıyorsunuz. Siz daha hiçbir şey yazmadan, imleç istem alanına tam oturmadan bile, ajan çoktan hatırı sayılır miktarda okuma yapmış oluyor. Sistem istemini, çağırabildiği her aracın tanımlarını, davranış talimatlarını, projenizin CLAUDE.md dosyasını (ya da .cursorrules ya da AGENTS.md), geçerli olan yola özgü tüm kuralları ve bellek dosyasında ne varsa hepsini içine almış olur. Siz ilk kelimenizi söylediğinizde, ajanın zihninde sizin, projenizin ve nasıl davranması gerektiğinin modeli çoktan oluşmuştur.
Naif zihinsel model şudur: siz yazarsınız, ajan yanıtlar. Gerçek sıralama ise şu: ajan bağlamınızı okur, siz yazarsınız, ajan yanıtlar. O sessiz ilk adım, yani siz konuşmadan önce ajanın sizi okuması, sonucunuzun şaşırtıcı ölçüde büyük bir kısmının belirlendiği yerdir. Üstelik ona verdiğiniz bağlamın gerçekten işe yarayıp yaramadığına dair kanıtlar, çoğumuzun sandığından daha rahatsız edici.
Kısa Versiyon
- Yapay zekâ kodlama ajanları ilk mesajınızdan önce önceden yazılmış bağlamı yükler: sistem istemleri, araç tanımları ve CLAUDE.md, Cursor kuralları, GitHub Copilot talimatları ya da desteklendiği veya içe aktarıldığı yerlerde AGENTS.md gibi araca özgü talimat dosyaları. Konuşmayı siz başlatmazsınız; ajanın okuması başlatır.
- Bu ön yükleme, siz tek bir karakter bile yazmadan kullanılabilir bağlam penceresinin önemli bir kısmını yiyip bitirir; dolayısıyla gerçek çalışma bütçeniz, modelin ilan ettiği pencerenin düşündürdüğünden daha küçüktür.
- Ampirik bulgu, işin sezgiye aykırı kısmı: geliştiricilerin yazdığı bağlam dosyaları biraz yardımcı oluyor (görev başarısında yaklaşık +%4), gerçek bir bedelle (çıkarım maliyetinde yaklaşık +%19); LLM tarafından üretilen ya da kopyala-yapıştır yapılan bağlam dosyaları ise sonuçları aslında bir miktar daha kötü.
- Modelinizi kendi sunucunuzda barındırmak ne yapabileceğinizi değiştirir bkz., yapmak zorunda olduklarınızı değil do. Oturum öncesi mimari her yerde aynıdır; yerel araçlar yalnızca onu incelemenize ve denetlemenize olanak tanır. Gerçekten anladığınız bağlamı yazma disiplini ortadan kalkmaz.
Naif Model Yanlış: Ajan Önce Okur
Bir Claude Code oturumunun başladığı anı tam olarak gözünüzde canlandırın. Sistem istemi girer. Araç tanımları girer. Sonra, siz daha hiçbir şey söylemeden CLAUDE.md dosyanız iletilir ve buradaki mekanik ayrıntı önemlidir. Anthropic'in kendi belgeleri açıkça şunu söylüyor: CLAUDE.md içeriği “sistem komutundan sonra bir kullanıcı mesajı olarak iletilir,” “her konuşmanın başında” yüklenir. Dolayısıyla transkriptteki çok ilk kullanıcı turu siz değilsiniz. Bu sizin dosyanız, adınıza konuşuyor, siz gelmeden önce şartları belirliyor.
O açılış anında gerçekte yüklenen şey bir yığın: sistem istemi, araç tanımları, davranış talimatları, proje ve kullanıcı bağlam dosyalarınız, o an devrede olan dosyalarla eşleşen yola özgü kurallar ve ajanın kendi tuttuğu bir bellek dosyası. Claude Code'da bağlam dosyaları dört düzeyli bir hiyerarşiyle çözümlenir (yönetilen politika, sonra kullanıcı (~/.claude/CLAUDE.md), sonra proje (./CLAUDE.md), sonra yerel (./CLAUDE.local.md)) ve tam bu sırayla birleştirilir. Otomatik bellek de kendi payını ekler: ajanın kendi başına yazıp okuduğu bir MEMORY.md dosyasının ilk 200 satırı (veya 25KB'ı) her oturumda yüklenir.
Bunların hiçbiri bedava değil. Altyapı yükü (sistem istemi, araç tanımları, davranış talimatları) daha ilk mesajınız ulaşmadan etkin bağlam penceresinin kayda değer bir kısmını tüketir. Bu, ajanın nasıl ajan olacağını bilmesi için ödediğiniz vergidir ve aramaya gitmedikçe görünmez.
Tüm bunları yönetme disiplini etrafında bir isim şekilleniyor. Anthropic'in uygulamalı yapay zeka ekibi buna bağlam mühendisliği: “LLM çıkarımı sırasında en uygun token (bilgi) kümesini derleme ve koruma stratejilerinin bütünü.” Yararlı bir terim, çünkü yazdığınız dosyayı robota bırakılan bir nottan, kıt ve pahalı bir kaynağı neyin işgal edeceğine dair mimari bir karara dönüştürüyor.
Dört Ajan, Sizi Önce Okumanın Dört Yolu
Tüm ajanlar sizi aynı şekilde okumuyor. İki eksen boyunca ayrılıyorlar: ne oturum başlangıcında yüklenir (seçilmiş bir dosya hiyerarşisi, her zaman etkin kurallara karşı, tüm repo taramasına karşı), ve bunun ne kadarını inceleyebileceğiniz, yani mekanizmanın belirlenimci ve denetlenebilir bir çıktı mı, yoksa güvenmek zorunda olduğunuz anlamsal bir dizin mi olduğu. Claude Code, Cursor, GitHub Copilot ve Aider asıl bu iki eksende ayrışıyor.
| Araç | Oturum başında ne yüklenir | Mekanizma | Denetlenebilirlik |
|---|---|---|---|
| Claude Code | CLAUDE.md hierarchy + .claude/rules/ + otomatik bellek; AGENTS.md yalnızca içe aktarıldıysa veya sembolik bağlantı yapıldıysa | Dosya tabanlı hiyerarşi; yol kapsamlı kurallar gecikmeli yüklenebilir; sıkıştırma ve yeniden okuma davranışı değişir | Dosyalarınız ve belleğiniz için yüksek; sistem istemi özel kalır |
| Cursor | Proje, Takım ve Kullanıcı Kuralları; AGENTS.md desteği; semantik bağlam için kod tabanı dizini | Okunabilir kural dosyaları ve anlamsal kod tabanı indeksleme | Karma: kurallar okunabilir, ancak dizin alımı daha az şeffaf |
| GitHub Copilot | Depo genelinde copilot-instructions.md artı yola özgü .instructions.md desteklendiği yerde | Copilot iş akışlarına uygulanan özel talimat dosyaları | Orta: dosyalar okunabilir, ancak kapsam ürün yüzeyine bağlıdır |
| Aider | Git deposundan türetilmiş kompakt bir repo-map, artı manuel olarak eklenen/okunan dosyalar | Token bütçesi için optimize edilmiş sembol/grafik tabanlı repo haritası | Yüksek: repo-map incelenebilir, ancak yine de tüm repoyu kelimesi kelimesine değil, seçilmiş bir haritadır |
Cursor'ın ayrımı en öğretici olanıdır. Kuralları sizin kontrolünüzdeki okunabilir dosyalarda bulunur, ancak aynı zamanda bir tüm kod tabanınızın anlamsal dizini, @codebase aramasına güç veren ve gerçekten inceleyemeyeceğiniz vektör gömmeleri. Aider diğer uçta yer alır: tüm git deponuzu okur ve bir repo-map, deterministik biçimde, hiçbir yerde embedding kullanmadan. Modele tam olarak neyin verildiğini denetleyebilirsiniz. Aynı mimari tersine çevirme, ama çok farklı bir görünürlük. Araç araç daha ayrıntılı karşılaştırma için, agentic CLI dünyasını şurada ele aldık: agentic kodlama CLI kapışması ve doğrudan karşı karşıya geldi OpenCode vs Claude Code başka bir yerde.
Araca özgü biçimlerin altında, araçlar arası bir standart yerleşiyor. AGENTS.md, ajan araçları ekosisteminde (OpenAI Codex, Amp, Google'ın Jules'ü, Cursor ve Factory) ortaya çıktı ve artık Agentic AI Foundation tarafından Linux Foundation bünyesinde yönetilmektedir, 60.000'den fazla depoda benimsendi. Oturum öncesi bağlam dosyası böylece araca özgü bir kolaylıktan birinci sınıf, taşınabilir bir artefakta yükseliyor: sektör, “ajanın siz konuşmadan önce okuduğu şey”in kendi standardını hak ettiğinde uzlaşıyor.
Kanıtlar Bunların Herhangi Birinin İşe Yarayıp Yaramadığı Hakkında Ne Söylüyor
Konforlu hikayenin kırıldığı yer burası. ETH Zurich'teki bir ekip (Gloaguen, Mündler, Müller, Raychev ve Vechev) kontrollü bir değerlendirme yaptı, “AGENTS.md Değerlendirmesi,” bu depo düzeyindeki bağlam dosyalarının kodlama ajanlarının performansını gerçekten iyileştirip iyileştirmediği üzerine. İncelenen ajanlar ve modeller genelinde sonuç ne “bağlam dosyaları işe yarıyor” ne de “bağlam dosyaları başarısız” oldu. Güncel özet, bağlam dosyalarının görev başarısını genel olarak artırmadığını ve çıkarım maliyetini ortalama %20'den fazla yükselttiğini söylüyor. Makalenin ayrıntılı sonuçlarında geliştiricilerin yazdığı dosyalar istisnaydı: performansı ortalama yaklaşık %4 iyileştirdiler, ancak maliyeti %19'a kadar artırdılar. LLM tarafından üretilen dosyalar ters yöne gitti; performansı ortalama yaklaşık %3 düşürürken maliyeti %20'den fazla yükseltti. Üçüncü bir bulgu tabloyu netleştiriyor: bir araç bir bağlam dosyasında adı geçtiğinde ajanlar o aracı 1,6-2,5 kat daha sık çağırıyor ve bunun yararlı mı zararlı mı olduğu, tamamen bu ek çağrıların yerinde olup olmadığına bağlı.
LLM tarafından üretilen dosyalar satırında bir saniye durun, çünkü asıl yükü taşıyan satır o. Kendi yazmadığınız bir dosya, ister bir model üretmiş olsun ister “en iyi CLAUDE.md yapılandırmaları” diye bir topluluk paketinden indirilip deponuza atılmış olsun, ajanın gözünde kod tabanınızı gerçekten bilmeyen birinin talimatları gibi okunur. Çalışmadaki modellerde bunun net sonucu eksiydi: biraz daha kötü sonuçlar için daha fazla token ödediniz. Augment Code incelemesi bu konuda meseleyi iyi özetliyor: biriken sonucu “ajanınızın bağlamı bir çekmece dolusu öteberi” diye tanımlıyor. İçine küreklediğiniz makul görünen her talimatın bir bedeli var ve sizin yazmadıklarınız, anlamadıkları bir kod tabanı için, genelde geri verdiğinden fazlasına mal olur.
Ben bunu ne “bağlam dosyaları kötüdür” ne de “bağlam dosyaları iyidir” diye okuyorum. Verilerle temas ettiği anda dağılan tam da bu ya hep ya hiç çerçeveleridir. Daha dar okuma şu: bağlam, bilinçli olarak tasarladığınız bir altyapıdır ve sizin yazmadığınız, üstelik anlamadığı bir kod tabanı için hazırlanmış bir dosya, hediye değil maliyettir. Kapsam çekincesi de önemli. Bu, makalenin test ettiği modeller ve ajanlar için bulduğu sonuçtur, her LLM için geçerli evrensel bir yasa değil. Ama güçlü biçimde tek bir yönü işaret ediyor ve satıcı tarafından da doğrulanıyor: Anthropic'in kendi uygulamalı yapay zekâ ekibi, her şeyi önden yüklemek yerine çalışma zamanında araçlar aracılığıyla bağlamı “tam zamanında” yükleme yönündeki kaymayı not etti ve bazı verileri önden getirip geri kalanını çalışma zamanında keşfeden melez bir yaklaşımı anlatıyor. CLAUDE.md'yi yayınlayan şirket daha az ön yükleme yapmaya meylediyorsa, dev bir bağlam dosyasını kopyalayıp yapıştırma refleksi ikinci bir bakışı hak ediyor.
Bölümün özeti: yazarlık, bağlamın işe yarayıp yaramayacağını öngören sinyaldir. Token maliyeti her iki durumda da aynıdır; getiriyi değiştiren şey, talimatların kod tabanını gerçekten bilen birinden gelip gelmediğidir.
Yavaşça Kaybolan Bağlam: Neden Oturum Başlangıcı Tüm Hikaye Değildir
Ön yükleme kısıtı belirler. Ama kısıtı ayakta tutmaz. Geliştiricilerin sürekli tökezlediği yer hikâyenin ikinci yarısı: oturumun başında özenle kurduğunuz bağlam, oturum ilerledikçe aşınır ve bunu sessizce yapar.
Bunu hayal etmenin yararlı bir yolu, Mem0 ekibinin çerçevelemesinden geliyor; buna göre bir bağlam penceresi RAM'dir, depolama değil, geçici ve sınırlı, talimatlarınızın kalıcı olarak yaşadığı bir yer değil. Başta bir şey yükleyin, oradadır; ona hiç dokunmadan yeterince uzun devam edin, solup gider, tıpkı referans vermeyi bıraktığınız bir değişkenin sonunda üzerine yazılması gibi. Araştırmacıların talimat çürümesi diye tanımladığı örüntünün ardındaki mekanizma budur. Gamage ve meslektaşlarının 2026 yılı çalışması atlama kısıtlarının özellikle kırılgan olduğunu buldu: test edilen bir ortamda uyum, 5. turda %73 iken 16. turda yaklaşık %33'e düştü. Bu bir laboratuvar bulgusu, evrensel bir sabit değil, ama uzun oturumlarda birçok kişinin hissettiği şeyle örtüşüyor.
Oturum sınırı, işin daha da netleştiği yerdir. Bir Hacker News tartışmasındaki geliştiriciler oluşturulan alt ajanların bağlam devri sorunları yaşayabildiğini bildiriyor; yani görevin ortasında devredilen iş, üst oturumun bağlamının sandığınızdan azıyla gelebiliyor. Boşta geçen sürenin de kendine ait bir maliyeti var: şu tartışma başlığında, Anthropic'ten Boris Cherny görüşünü bildirdi, tartışma, boşta kalan bir oturumun size hiçbir uyarı vermeden yüz binlerce token'lık büyük bir önbellek ıskası yeniden inşasını nasıl tetikleyebileceğini ele alıyor. Topluluğun sürekli bildirdiği ortak nokta sessizlik: sıkıştırma çalışır, önceki muhakeme budanır, kalite düşer ve ekranda bunun olduğunu söyleyen hiçbir şey yoktur. Siz sadece çıktının kötüleştiğini fark edersiniz.
Kendi sunucunda barındırmak size daha fazla kontrol sağlar mı?
Her şeyi kendiniz çalıştırın (Ollama artı Open WebUI ya da yerel bir modele yönlendirilmiş Aider veya Continue.dev gibi bir ajan) ve “artık daha fazla kontrolüm var mı?” sorusunun dürüst yanıtı şudur: elde ettiğiniz şey daha fazla görünürlük, daha fazla içsel kontrol değil. Bu ayrım meselenin özüdür.
Kendi altyapınızda barındırmanın size gerçekten kazandırdığı şey inceleyebilmektir. Hiçbir konuşma verisi altyapınızdan çıkmaz. Kapalı bir sistem istemine güvenmek yerine sistem isteminin tamamını okuyabilirsiniz. Aider gibi deterministik bir araçla her model çağrısına tam olarak neyin girdiğini denetleyebilirsiniz: repo-map okunabilir bir çıktıdır, Cursor'ın gömme indeksi gibi anlamsal bir kara kutu değil. Denetlenebilirliği ve yeniden üretilebilirliği önemseyen, “ajan gerçekte ne gördü?” sorusuna yanıt verebilmeyi önemseyen herkes için bu incelenebilirlik gerçektir ve hiç de az bir şey değildir.
Ama mimari tersine çevrilme, modelin nerede çalıştığıyla ilgilenmez. Ollama üzerinden yerel bir modelde, bulut API'sine bağlı Claude Code'da ya da abonelikle Cursor'da olun, ajan yine de siz konuşmadan önce oturum öncesi bağlamını okur ve o bağlamı yine de bilinçli olarak tasarlamanız gerekir. Disiplin birebir aynıdır. Kendi kendine barındırma size mekanizmaya açılan daha net bir pencere verir; farklı bir mekanizma vermez ve kendi yazmadığınız bir bağlamı yüklediğinizde ne olduğuna dair ETH Zurich dersinden sizi kesinlikle muaf tutmaz. Yani bütün bundan alınacak tek değişiklik şu: bağlam dosyasını ajana verdiğiniz bir hediye gibi görmeyi bırakın, işletme maliyeti olan bir altyapı gibi görmeye başlayın. Kod tabanı hakkında gerçekten anladığınız şeyleri yazın, daha fazla değil daha az yükleyin ve ajanın önce sizi okuduğunu unutmayın; okuduğu o “siz” sürümü, arkasında durabileceğiniz bir sürüm olmalı.
Sıkça Sorulan Sorular
Yapay Zeka Kodlama Ajanları Bir Şey Yazmadan Önce Dosyalarınızı Okur mu?
Evet. Oturum başlarken bir yapay zekâ kodlama ajanı sistem istemini, araç tanımlarını ve bağlam dosyalarınızı (CLAUDE.md, .cursorrules veya AGENTS.md), ayrıca varsa repo-map ya da bellek dosyasını yükler; hepsi de ilk mesajınızdan önce. Özellikle Claude Code'da CLAUDE.md, sistem isteminin hemen ardından bir kullanıcı mesajı olarak iletilir; yani sohbet fiilen sizinle değil, dosyanızla başlar.
CLAUDE.md Gibi Bağlam Dosyaları Gerçekten Ajan Performansını İyileştirir mi?
Kısmen, ve çoğu insanın varsaydığından daha az. İçinde ETH Zurich'in AGENTS.md tarzı dosyaların değerlendirmesi, mevcut özet, bağlam dosyalarının genel olarak görev başarısını artırmadığını ve çıkarım maliyetini ortalama %20'nin üzerinde yükselttiğini söylüyor. Ayrıntılı sonuçlar uygulayıcılar için daha yararlı: geliştiricilerin sağladığı dosyalar performansı ortalama yaklaşık %4 iyileştirdi ama maliyeti %19'a kadar artırdı; buna karşılık LLM tarafından üretilen dosyalar performansı ortalama yaklaşık %3 düşürdü ve maliyeti %20'den fazla yükseltti. Pratik okuma: kendi yazdığınız ve anladığınız bir dosya biraz yardımcı olabilir; yazmadığınız bir dosya sessizce size pahalıya patlayabilir.
Mesaj Göndermeden Önce Bağlam Penceresinin Ne Kadarı Kullanılıyor?
Kayda değer bir pay. Sistem istemi, araç tanımları ve davranış talimatları herhangi bir kullanıcı girdisinden önce yüklenir ve birlikte etkin bağlam penceresinin ciddi bir bölümünü tüketir. Bu sabit başlangıç yükü yüzünden kullanılabilir çalışma bütçeniz modelin ilan edilen bağlam penceresinden küçüktür.
Bir Yapay Zeka Modelini Kendi Sunucunuzda Barındırmak Size Bağlam Üzerinde Daha Fazla Kontrol Sağlar mı?
Daha fazla görünürlük, daha fazla doğal denetim değil. Kendi altyapınızda barındırmak, sistem isteminin tamamını incelemenize izin verir, konuşma verilerini kendi altyapınızda tutar ve (Aider gibi deterministik bir araçla) her çağrıya tam olarak neyin girdiğini denetlemenizi sağlar. Ama oturum öncesi bağlam mimarisi bulut araçlarındakiyle aynıdır ve bağlamınızı yine bilinçli olarak tasarlamanız gerekir.
AGENTS.md nedir?
AGENTS.md, kodlama ajanlarına bir kod tabanıyla nasıl çalışacaklarını anlatan açık bir biçimdir; README'nin ajana bakan karşılığıdır. Ajan araç ekosisteminin genelinde ortaya çıktı (OpenAI Codex, Amp, Google'ın Jules'ü, Cursor ve Factory) ve bugün Linux Foundation çatısı altındaki Agentic AI Foundation tarafından yürütülüyor. 60.000'den fazla depoda benimsenmiş olması onu oturum öncesi ajan bağlamı için yükselen araçlar arası standart yapıyor.