Bir görev üzerinde bir saat çalıştıktan sonra ajan birden, yarım saat önce reddettiğiniz bir seçeneği yeniden öneriyor. Ya da elle düzelttiğiniz dosyayı tekrar özetliyor. Unutkanlık gibi görünüyor, ama çalışma biçimi böyle: ajan sınırlı boyuttaki bir pencereye bakıyor ve projenin tamamını değil, yalnızca bu pencereye sığanları görüyor.
Pencerenin nelerle dolduğunu, /context komutuyla nasıl inceleyeceğinizi ve boş alan neredeyse kalmadığında ne yapacağınızı ele alalım.

Bağlam ve sınırı
Bağlam, modelin bir sonraki adımda erişebildiği bilgilerdir: mesajlarınız, ajanın yanıtları, okunan kod, komut çıktıları ve proje talimatları. Bağlam penceresi, bu bilgilerin aynı anda ne kadarının sığabileceğini belirler. Bu, diskteki boş alan ya da bilgisayarınızın RAM'i değildir.
Karışıklığa en sık yol açan fark da buradan doğar. Birbirine kolayca karıştırılan üç şey var:
- diskteki dosyalar - araçlarla okunabilen proje içeriği;
- kaydedilmiş oturum geçmişi - diskte duran ve yeniden açılabilen konuşma kaydı;
- mevcut bağlam - modelin tam şu anda erişebildiği bilgiler.
Bu kümeler birbiriyle ilişkili, ama aynı değiller. Bir dosya klasörde durduğu hâlde konuşmaya hiç girmemiş olabilir. Konuşmada ise dosyanın yarım saat önceki sürümü kalmış olabilir. Bu yüzden "bunu konuşmuştuk" demek, ajanın önünde güncel bilgiler bulunduğu anlamına gelmez.
- Proje dosyası
- Araçla okuma
- Yanıt için gereken bilgiler
Dosyanın var olmasıyla ajanın ondan haberdar olması arasında bir okuma adımı vardır. Claude Code bu adımı kendisi atar: projede arama yapar, gereken dosyayı açar ve ilgili koda geçer. Her yolu önceden tek tek belirtmeniz gerekmez. Ama bu adım atılana kadar, konuşma açısından dosya yoktur.
Tüm bunların hacmi token cinsinden ölçülür: token, modelin hem isteğinizi hem de okuduğu kodu böldüğü metin parçasıdır. Bir token tam bir kelime olabileceği gibi kelimenin bir parçası da olabilir; bu yüzden kelime sayısından token sayısını bulamazsınız.
İlk sorudan önce pencereyi neler doldurur?
İlk kelimenizi yazmadan önce bile pencerenin bir kısmı doludur. /context komutu tam olarak neyle dolu olduğunu gösterir:

Oturum henüz açılmışken 200k tokenin 4k'sı çoktan kullanılmıştır ve bunların hepsi sistem yüküdür: System prompt ajanın kendi talimatlarıdır, Memory files yüklenen CLAUDE.md ve proje kurallarıdır, Skills ise kullanılabilir skill'lerin listesidir. Konuşmanın kendisi olan Messages satırı şimdilik boştur.
Bir saatlik çalışmadan sonra, üstelik birkaç MCP sunucusu da bağlıyken dağılım şöyle görünebilir:
/context
System prompt 3.2k ( 2%) sistem talimatları
System tools 12.1k ( 6%) yerleşik araçların açıklamaları
MCP tools 21.4k (11%) bağlı harici sunucular
Memory files 1.8k ( 1%) CLAUDE.md, rules, auto memory
Messages 45.2k (22%) konuşmanız, dosyalar, loglar
Free space 116.3k (58%)Bu, belirli bir sürümün gerçek çıktısı değil, temsili bir örnektir: satırların listesi ve ekrandaki düzen Claude Code sürümüne ve projeye bağlı araçlara göre değişir; pencerenin boyutuysa modele bağlıdır. Genel görünüm yine de aşağı yukarı aynıdır ve buradan çıkarılacak birkaç pratik sonuç var:
- temel sistem yükü - ajanın talimatları ve yerleşik araçlarının açıklamaları - her zaman vardır ve bunu siz değiştiremezsiniz;
- bağladığınız her MCP sunucusu, hiç kullanmasanız bile araçlarının listesini pencereye ekler. "Lazım olur belki" diye bağlamak, her oturumda bunun bedelini ödemek demektir;
- uzayıp giden bir
CLAUDE.mddosyası da her başlatmada yeniden token tüketir. Kısa tutmak için bir neden daha; - çalışma ilerledikçe aslında yalnızca bir satır büyür: mesajlar. Takip etmeniz gereken de bu.
Claude Code elinizin altındaysa /context komutunu çalıştırın, birkaç dosyayı okumasını isteyin ve komutu yeniden çalıştırın. Mesajlar satırının gözünüzün önünde büyüdüğünü görecek, tek bir okumanın ne kadara mal olduğunu anlayacaksınız.
Çalışma sırasında neler birikir?
Bundan sonra pencereyi siz doldurursunuz, üstelik yalnızca sözlerle değil. Ajanın okuduğu ve isteğiniz üzerine aldığı her şey bağlama eklenir:
| Kaynak | Yer kaplayan içerik |
|---|---|
| Konuşma | mesajlarınız, ajanın yanıtları, reddedilen seçenekler de dahil |
| Okunan dosyalar | tam içerik ya da gereken bölümler |
| Araç sonuçları | komut çıktısı, bulunan satırlar, tarayıcıdan gözlemler |
| Skill ve MCP içerikleri | kullanılan skill'in talimatları, çağrılan aracın açıklaması |
İstek ile karşılığında gelen bağlamın boyutu çok farklı olabilir. "Tüm logu göster" yalnızca üç kelimeden oluşur, ama sonucu binlerce satır tutar. Bu yüzden büyük bir çıktı, uzun bir sorudan daha zararlı olabilir.
Kaynakları seçerek paylaşma alışkanlığı da buradan gelir. Bir yolun önüne gelen @ işareti dosyayı konuşmaya ekler; yolu yazarken öneriler de görünür: @src/reward-flow.js dosyasını oku ve puan sayısının nerede belirlendiğini açıkla. Bir klasörden @ ile söz etmek, içindeki tüm dosyaların yüklendiği anlamına da gelmez: klasör bağlantısı dosya listesini verir. Sorunuza uygun kaynağı seçin. Dosyaya ve klasöre başvurma arasındaki bu fark, dosya aktarma belgelerinde de açıklanıyor.
Küçük bir nokta daha. Sonrasında on değerini elle yirmi yaptıysanız önceki yanıt kendiliğinden güncellenmez. Yeni bir değerlendirmeden önce dosyanın güncel içeriğini okumasını isteyin. Bir zamanlar okunmuş dosyaya verilen bağlantı, konuşmadaki eski metni diskteki dosyanın canlı bir kopyasına dönüştürmez.
Yer kalmadığında
Bağlam penceresinin boyutu sınırlıdır, ama oturum da cümlenin ortasında kesilmez. Pencere doldukça Claude Code sıkıştırma yapar: ayrıntılı geçmişi kısa bir özetle değiştirerek yer açar. Bu işlem otomatik gerçekleşir; zamanlaması modele ve ayarlara bağlıdır.

/compact komutuyla sıkıştırmayı kendiniz de başlatabilirsiniz. Elle başlatmanın avantajı, zamanı sizin seçmenizdir; örneğin yeni ve büyük bir işe başlamadan hemen önce. Ayrıca nelerin korunması gerektiğini belirtebilirsiniz:
/compact Görevin amacını ve değişiklik kapsamını,
ayrı bir işleyici içeren reddedilen seçeneği
ve sonraki adımı koru: arama alanının temizlendiğini kontrol et.Sıkıştırmayla ilgili temel nokta şu: pencerede konuşmanın kendisi değil, özeti kalır. Özete girmeyen ayrıntı pencereden çıkar; sıkıştırmadan sonra "ama yirmi dakika önce kabul etmiştin" diye tartışmanın anlamı yoktur. Gereken bilgiyi dosyadan yeniden bulmak daha kolaydır. Proje talimatlarıysa kaybolmaz: kök dizindeki CLAUDE.md yeniden yüklenir.
İkinci komut olan /clear hiçbir şeyi sıkıştırmaz. Yeni bir konuşma başlatır: önceki konuşma kayıtlı kalır ve /resume ile yeniden açılabilir; proje dosyaları değişmez, proje talimatları da her zamanki gibi yüklenir.
| Komut | Ne yapar? | Ne zaman seçilir? |
|---|---|---|
/context | pencerenin nelerle dolu olduğunu gösterir | alanın nereye gittiği belli değilse |
/compact | geçmişi kısa bir özete dönüştürür | görev aynı, ama geçmiş çok birikmişse |
/clear | yeni bir konuşma başlatır | görev değiştiyse |
Seçim kuralı basit: görev aynıysa sıkıştırın, değiştiyse yeni bir konuşma açın. Tek bir sorunu incelerken her komuttan sonra konuşmayı temizlemeniz gerekmez; gözlemler ve açıklamalar işinize yarar. Yeni bir konuya geçmeden önceyse gerekli sonucu birkaç satırla kaydetmek iyi olur: "ödül src/reward-config.js içinde belirleniyor, puan src/reward-flow.js içinde veriliyor". Bu not, tüm konuşmayı yeniden yazmadan nereye döneceğinizi gösterir.
Pencereyi daha verimli kullanma
Pencereyi en baştan gereksiz şeylerle doldurmazsanız bu üç komuta o kadar sık ihtiyaç duymazsınız. En çok işe yarayan birkaç alışkanlık:
- Sorunuzu net sorun. Belirsiz bir isteği yerine getirmek için ajan araştırmaya koyulur: gereksiz dosyaları okur, seçenekleri değerlendirir. Dosya adını ve beklentinizi belirtmek hem yerden hem zamandan tasarruf sağlar.
- Her şeyi gelişigüzel aktarmayın. Başarısız bir testle ilgili soru için tüm log değil, hatanın çevresindeki satırlar yeterlidir.
- Proje talimatlarını kısa tutun.
CLAUDE.mdher oturumda yüklenir. Uzun başvuru metinlerini, gerektiğinde okunacak ayrı dosyalarda tutmak daha iyidir. - Gereksiz MCP sunucularını kapatın. "Lazım olur belki" diye bağlanan bir sunucu her başlatmada yer kaplar, ama hiçbir fayda sağlamaz.
- Geniş kapsamlı araştırmaları bir subagent'a verin. Kendi penceresinde çalışıp bir özet döndürür; okuduğu onlarca dosya da onun bağlamında kalır.
Akılda tutulması gerekenler
Bağlam, "projede bulunanlar" değil, masanın üzerine koyduklarınızdır. Diskteki dosya, geçmiş kaydı ve mevcut penceredeki bilgiler birbirinden farklı üç şeydir. Aralarındaki karışıklık, aldığınız tuhaf yanıtların çoğunu açıklar.
Sonuçta üç şey yapmanız yeterli: /context ile pencerenin doluluk durumuna bakın, gereken kaynağı @ ile paylaşın ve konuşmayı sıkıştırmaya mı yoksa yenisini başlatmaya mı, zamanında karar verin. Duruma göre seçim yapın: sıkıştırma gereken dosyayı okumanın yerini tutmaz; dosyayı paylaşmak da ajanın akıl yürütmesini sizin yerinize doğrulamaz.
GO TO FULL VERSION