SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-27

Claude Code oturumlarında yavaşlama ve maliyet sorunu

Claude Code oturumlarında her adımda tüm bağlamın yeniden gönderilmesi maliyetleri artırır. /context komutu ile şişkinliği analiz edin ve /compact ile bellek kullanımını optimize edin.

Uzun süreli Claude Code oturumlarının yavaşlaması ve maliyet artışı nasıl önlenir

Uzun süreli bir Claude Code oturumu, her adımda tüm bağlamı (context) yeniden gönderdiği ve bu bağlam sürekli büyüdüğü için yavaşlar ve maliyetli hale gelir. Çözüm, belirli bir sırayla uygulanan temizlik işlemleridir. Pencereyi neyin doldurduğunu görmek için /context komutunu çalıştırın, her istekte ücret ödediğiniz öğeleri ayıklayın, ardından ilgisiz görevler arasında /clear komutunu ve tek bir uzun görev içinde talimat vermek için /compact komutunu kullanın. Çalışmalarınızı kesintisiz bloklar halinde sürdürün; çünkü soğuk bir prompt cache, ucuz bir okuma işlemini, söylediklerinizin tamamının yeniden yazıldığı maliyetli bir sürece dönüştürür.

Sayaçların neden çalıştığına dair yanıt, bir aracı oturumunun arkasındaki token sayacı bölümünde açıklanmıştır.

Değişiklik yapmadan önce /context dosyasını okuyun

Pencerenin neyle dolduğunu tahmin etmeyin. Claude Code size bunu bildirecektir.

/context [all], mevcut bağlam kullanımını renkli bir ızgara olarak çizer ve bağlam yoğunluklu araçlar ile bellek şişmesi için optimizasyon önerileri sunar; all, öğe bazlı dökümü tam ekran modunda genişletir. Sonucu beş ayrı grup olarak değerlendirin.

  • Sistem istemi. Claude Code'un kendi çalışma yönergeleri. Oturum boyunca sabittir.
  • Araç tanımları. Bağlı olan her MCP (Model Context Protocol) sunucusu dahil olmak üzere, aracın çağırabileceği her aracın şeması.
  • Bellek dosyaları. CLAUDE.md ve otomatik bellek, oturum başlangıcında yüklenir.
  • Dosyalar ve araç sonuçları. Okunan her dosya ve komutlarınızın geri döndürdüğü her çıktı.
  • Mesaj geçmişi. Sizin hamleleriniz ve aracın yanıtları.

İlk üç grup, oturum süresince her istekte ödenen sabit bir maliyettir. Son ikisi ise zamanla büyür. Sabit maliyeti başlangıçta bir kez kesin; büyüyen kısmı ise sürekli yönetin.

Pencerenin dolduğunu belirten iki ifade mevcuttur:

Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.
Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.

Birincisi kesin bir sınırdır ve istek reddedilir; eşleşen API (uygulama programlama arayüzü) hatası Prompt is too long olarak görünür. İkincisi ise bir sıkıştırma penceresidir; bu pencere, 1 milyon token kapasiteli bir modelde modelin gerçek bağlam penceresinin altında kalabilir. İstekler bu noktadan sonra da başarılı olmaya devam eder, bu nedenle bu bir reddetme değil, bir uyarıdır.

Ücretli bir planda /usage, uzun bağlam veya önbellek kaçırmaları gibi davranışları işaretleyerek ve son dönemdeki kullanımı bireysel becerilere, alt aracılara ve MCP sunucularına atayarak diğer yarısını ekler. Eğer size kotanın zaten dolduğunu bildirirse, hangi sınır penceresini beklediğiniz, bağlamı kırpmanın size şu an yardımcı olup olmayacağına veya çalışmaya devam etmek için farklı bir yol izlemeniz gerekip gerekmediğine karar vermenizi sağlar.

CLAUDE.md kalıcı bir vergi niteliğindedir, bu yüzden yalın tutun

CLAUDE.md öğeniz oturum başlangıcında bağlama yüklenir ve orada kalır. Eğer ayrıntılı bir dağıtım prosedürü içeriyorsa, bir test dosyasındaki yazım hatasını düzeltirken bu belirteçler mevcuttur. Anthropic'in rehberliği, yalnızca temel bilgileri dahil etmeyi ve dosyayı 200 satırın altında tutmayı önerir.

Prosedürleri yeteneklere (skills) taşıyın. Bir yetenek yalnızca çağrıldığında yüklenir, bu nedenle haftada iki kez çalıştırdığınız bir iş akışı diğer günlerde hiçbir maliyet oluşturmaz. Yeteneklerin bir sıkıştırma işleminden sonra kendi bütçeleri vardır: gövdeler yeniden enjekte edilir, yetenek başına 5.000 belirteç ve toplamda 25.000 belirteç ile sınırlandırılır, en eskiler ilk önce atılır. Kısaltma işlemleri dosyanın başını korur, bu nedenle en önemli talimatları SKILL.md dosyasının en üstüne yerleştirin.

Sıkıştırma işleminden neyin sağ çıkacağı, bir talimatın nereye ait olduğuna karar verir.

  • Sistem istemi ve çıktı stili değişmez, çünkü bunlar mesaj geçmişinin bir parçası değildir.
  • Proje kök dizinindeki CLAUDE.md, kapsam dışı kurallar ve otomatik bellek diskten yeniden enjekte edilir.
  • paths: ön bilgisine sahip bir kural, eşleşen bir dosya tekrar okunana kadar kaybolur.
  • Bir alt dizindeki iç içe geçmiş CLAUDE.md, o alt dizindeki bir dosya tekrar okunana kadar kaybolur.
  • Kancalar (hooks) etkilenmez, çünkü bir kanca kod olarak çalışır ve asla bağlama girmez.

Bu nedenle, güvendiğiniz bir kural proje kök dizinindeki CLAUDE.md dosyasına aittir: Claude Code önce eski araç çıktılarını temizler ve ardından özetler, bu nedenle konuşmanın başındaki talimatlar kaybolabilir. Belleği /memory ile düzenleyin. Claude Code, oturum başlangıcında yüklediği kopyayı tutar, bu nedenle oturum ortasındaki bir kırpma işlemi istem önbelleğini korur ve bir sonraki /clear, /compact veya yeniden başlatma işlemine kadar uygulanmaz. Bağlam kaybı, bir kuralın takip edilmemesinin yalnızca bir nedenidir; bu nedenle kural açıkça pencerede olduğu halde yine de göz ardı ediliyorsa, onu yeniden yazmadan önce diğer nedenleri gözden geçirin.

Görevler arasında /clear, tek bir görev içinde /compact kullanımı

Bu iki komut birbirinin yerine kullanılabilir gibi görünse de maliyetleri oldukça farklıdır.

/clear [name], boş bir bağlam ile yeni bir konuşma başlatır. Herhangi bir istek göndermediği için maliyeti yoktur. Önceki konuşmayı /resume seçicisinde etiketlemek için bir isim verin; /reset ve /new bu komutun takma adlarıdır. Alakasız bir göreve geçtiğiniz anda bu komutu kullanın; aksi takdirde eski görev, yeni konuşmanın her mesajında tekrar gönderilir ve yeniden ücretlendirilir.

/compact [instructions], aynı konuşmaya devam ederken bağlamı boşaltır: şimdiye kadarki geçmişi özetler ve onunla değiştirir. Sürekliliğe ihtiyaç duyduğunuz uzun bir görev sırasında bunu kullanın.

/compact komutuna her zaman bir talimat verin. Talimatsız bir /compact, çalışmanın hangi kısmına hala ihtiyaç duyduğunuzu bilmeyen varsayılan bir istemle özetleme yapar. Talimatlı bir kullanım ise bunu korur:

/compact focus on the auth bug fix
/compact keep only the plan and the diff

Eğer her seferinde aynı nedenle sıkıştırma yapıyorsanız, projenizin CLAUDE.md dosyasında bir # Compact instructions başlığı altında kalıcı bir talimat oluşturun. Yeni bir oturumda /compact komutu Not enough messages to compact. çıktısını verir; bu sadece henüz bir geçmişin olmadığı anlamına gelir.

Burada iki maliyet türü birbirine karıştırılmaktadır. Özetleme isteği ön ekinizi paylaşır, bu nedenle geçmişi yeniden işlemek yerine mevcut önbelleği okur ve sürenin büyük kısmı özetin oluşturulmasına harcanır. Büyük bir bağlamı sıkıştırmak yine de büyük bir istektir, çünkü özetlenen konuşma girdidir. Sıkıştırma işleminden sonraki adım yavaş olan kısım değildir: çok daha kısa bir istem için önbelleği yeniden oluşturur.

Daha ucuz iki komut daha mevcuttur. /rewind [description], kodu ve konuşmayı bir kontrol noktasına geri döndürür; tamamen terk etmek istediğiniz bir yol için sıkıştırmadan daha etkilidir, çünkü zaten önbelleğe alınmış bir ön eke kadar kırpma yapar. /recap, geçmişi değiştirmek yerine bir özet ekler ve komut çıktısı olarak sunar, böylece önbelleğe alınmış ön ek bozulmadan kalır.

Otomatik sıkıştırma sürekli tetiklenirse şu çıktı alınır:

Autocompact is thrashing: the context refilled to the limit...

Sıkıştırma başarılı oldu ancak bir dosya veya araç çıktısı pencereyi art arda birkaç kez doldurduğu için Claude Code yeniden denemeyi durdurdu. Büyük dosyayı satır aralıklarıyla okuyarak, büyük çıktıyı dışarıda bırakan bir odakla /compact çalıştırarak, bu işi bir alt temsilciye (subagent) taşıyarak veya önceki konuşma bittiyse /clear komutunu kullanarak durumu kurtarın.

MCP sunucuları sabit ek yük getirir

Bağlandığınız her MCP sunucusu, tüm oturum boyunca her isteğe ek yük bindirir. Sunucuyu kullansanız da kullanmasanız da bu maliyeti ödersiniz.

Claude Code bu durumu hafifletir. MCP araç tanımları varsayılan olarak ertelenir; bu sayede Claude belirli bir aracı kullanana kadar bağlama yalnızca araç isimleri dahil edilir. Sunucularınızın gerçek maliyetini görmek için /context komutunu, bugün kullanmayacağınız bir sunucuyu kaldırmak için ise /mcp disable <name> komutunu çalıştırın. Eğer kendi MCP sunucularınızı bir VPS üzerinde çalıştırıyorsanız, aynı hesaplama mantığı tek bir sunucunun kaç aracı dışa açması gerektiğini sınırlar.

Bu işlemi oturumun başında gerçekleştirin. Tanımlar ertelenmiş durumda kaldığı sürece, bir sunucuya bağlanmak veya bağlantıyı kesmek yalnızca konuşmaya ekleme yapar ve önbellek korunur. Araç araması kapalı olduğu için veya bir sunucu erteleme kapsamı dışında tutulduğu için tanımların önek (prefix) kısmına yüklendiği durumlarda, aynı değişiklik bir sonraki isteğin her şeyi yeniden okumasına neden olur.

Ayrıntılı araç çıktısını bağlama girmeden önce filtreleyin

Bir araç sonucu girdidir ve bu girdi sonraki her turda yeniden gönderilir. 20.000 token'lık çıktı üreten bir test çalışması tek seferlik bir maliyet değildir; bu çıktı pencereden çıkana kadar her turda tekrar ödeme yaparsınız.

Filtrelemeyi kaynağında yapın. Bir test çalışmasını Claude görmeden önce hatalarına indirgeyen bir kanca (hook), o çıktı yığınını bu turda ve yeniden gönderildiği her turda birkaç yüz token'a dönüştürür:

npm test 2>&1 | grep -E "FAIL|Error:" | head -40

Kancalar kod olarak çalıştıkları için hiçbir zaman bağlama girmezler. Çıktısı bir ekranı aşan her araç için bunu uygulayın. Aynı mantık 3.000 satırlık bir dosya için de geçerlidir: ihtiyacınız olan satır aralığını isteyin, çünkü dosyanın tamamı bir kez geldiğinde pencerede kalmaya devam eder.

Ajanın okuyacağı kapsamı belirleyin ve gürültülü işleri devredin

Dosya adını ve belirtiyi içeren bir komut, yalnızca ilgili dosyayı okur. Projeyi düzenlemeye yönelik genel bir istek ise ajanın ilgili gördüğü her şeyi okur ve bu okumaların her biri bağlam penceresinde kalır.

Ayrıntılı işleri bir alt ajana devredin. Test çalıştırmaları ve günlük işleme süreçleri gerçek bağlamı tüketir; bir alt ajan bu çıktıyı kendi penceresinde tutar ve yalnızca bir özet döndürür. Bunun karşılığında: bir alt ajan kendi önbelleğini oluşturur, ilk çağrıda isabet almaz ve abonelik durumunda bile beş dakikalık önbellek ömrünü kullanır. Görev devri, ana bağlamınızı güvenilir bir şekilde korur. Bu yöntem, toplam token kullanımını her zaman düşürmez.

Önbellek saati: çalışma süreleri

Prompt caching, yeniden gönderimi uygun maliyetli kılan unsurdur: öneki okumak için temel girdi oranının 0.1 katı, yazmak için 1.25 katı veya bir saatlik kullanım ömrüyle yazmak için 2 katı maliyet oluşur. Her kullanım, girişi ek bir maliyet olmaksızın yeniler; bu nedenle saat, son kullanımdan itibaren işlemeye başlar. Bu çarpanlar faturanın şeklini belirler ancak tutarını göstermez; bu yüzden tam bir bağlam penceresini dolar bazlı bir rakama dönüştürmek için bir milyon token'ın gerçek maliyeti ile birlikte değerlendirin.

Hangi kullanım ömrüne sahip olacağınız kimlik doğrulama yönteminize bağlıdır; "önbelleğiniz beş dakika sonra sona erer" şeklindeki genel bir ifade bu noktada hatalı olur.

  • Claude aboneliğinde, Claude Code otomatik olarak bir saatlik kullanım ömrü talep eder.
  • Planınızın limitini aşıp kullanım kredilerini kullanmaya başladığınızda, bu kullanım için faturalandırılırsınız ve süre beş dakikaya düşer.
  • API anahtarı veya bulut sağlayıcısı üzerinden kullanımda süre beş dakikada kalır. ENABLE_PROMPT_CACHING_1H=1 bir saatlik kullanım ömrünü seçer, FORCE_PROMPT_CACHING_5M=1 ise bunu tekrar düşürür.

Ritim tavsiyesi her iki durumda da aynıdır: kesintisiz çalışma süreleri ile ilerleyin, çünkü kullanım ömrünü aşan boşluklar bir sonraki adımınızda birikmiş tüm önekin yeniden yazılmasına neden olur. tmux içindeki ayrılmış bir Claude Code oturumu boşta kaldığında hiçbir maliyet oluşturmaz, ancak boşta geçen süre sıcak önbelleğin kaybedilmesine yol açar.

Bazı eylemler siz çalışmaya devam ederken önbelleği siler: model değiştirme, çaba seviyesini değiştirme, hızlı modu açma, bir MCP sunucusuna bağlanma veya bağlantıyı kesme, bir eklentiyi etkinleştirme veya devre dışı bırakma, bir aracı tamamen reddetme, sıkıştırma ve Claude Code'u yükseltme. /model genellikle sürpriz bir durumdur, çünkü her modelin kendi önbelleği vardır; bu nedenle içerik aynı olsa bile bir sonraki istek, önbellek isabeti olmadan tüm geçmişi okur. Bu yeniden okuma işlemi hedef modelin oranları üzerinden faturalandırılır, bu yüzden oturum ortasında Fable'a geçiş yapmak, birikmiş tüm geçmişinizi Fable 5'in yayınlanmış girdi oranı üzerinden ücretlendirir.

Dosyaları düzenlemek, CLAUDE.md üzerinde değişiklik yapmak, becerileri ve komutları çağırmak, /recap çalıştırmak, geri almak ve bir alt temsilci oluşturmak önbelleği korur. Önbellek kapsamı tek bir makine ve tek bir dizinle sınırlıdır, bu nedenle farklı dizinlerdeki iki oturum birbirinin önbelleğini göremez. Bu kapsam hesabınızdan ziyade CLI'yı takip eder, bu yüzden hiçbir veri, Linux üzerinde CLI'nın yanında ayrı bir beta kurulumu olan Claude masaüstü uygulamasına aktarılmaz.

Önbelleklemenin çalışıp çalışmadığını görmek için current_usage dosyasını okuyun. cache_creation_input_tokens, önbellek yazma oranında yazılmıştır; cache_read_input_tokens ise standart girdi oranının yaklaşık onda biri hızında sunulmuştur. Yüksek bir okuma-oluşturma oranı sağlıklı bir durumdur. Eğer oluşturma oranı her adımda yüksek kalıyorsa, önekinizdeki bir şey sürekli değişiyor demektir.

Daha büyük bir bağlam penceresi bu sorunu çözer mi?

Kısmen. Güncel modellerin birçoğu 1 milyon tokenlık bağlam penceresini desteklemektedir ve sıkıştırma işlemi bu daha büyük sınırda da aynı şekilde çalışır. Ekonomi değişmez; çünkü tam istem her seferinde yeniden gönderilir ve her adımda faturalandırılır. Daha büyük bir pencere, ne zaman harekete geçmek zorunda kalacağınıza karar verir; hijyen ise maliyeti belirler. Sorun üst sınırdan ziyade fatura ise, çalışma şeklinize hangi Claude planının uygun olduğu, dolar mı yoksa plan kotası mı harcayacağınızı belirler.

API'de bağlam düzenleme ve sıkıştırma farklı işlemlerdir

Eğer Messages API üzerinde kendi ajansınızı oluşturuyorsanız, slash komutları mevcut değildir ve bu işlevi kendiniz uygulamanız gerekir. Bu çalışma için en baştan bütçe ayırın; çünkü API'nin küçük bir kayıt kredisinin ötesinde ücretsiz bir katmanı yoktur, bu nedenle kırpılmamış geçmişin her bir turu tam olarak faturalandırılır. Hangi sağlayıcı üzerinde geliştirme yapacağınız, herhangi bir kırpma işlemi gerçekleşmeden önce bu aritmetiği belirler. Eğer seçim aşamasındaysanız, sadece ana token başına ücretleri karşılaştırmak yerine aynı iş yükünün her iki API'deki maliyetini hesaplayın. Sunucu tarafındaki iki özellik bu işi yapar ancak bunlar aynı özellik değildir.

Bağlam düzenleme (Context editing), konuşma geçmişi büyüdükçe belirli içerikleri seçici olarak temizler ve temizlenen her sonucun yerine bir yer tutucu metin koyar; böylece Claude bir şeyin kaldırıldığını anlar. Bu bir beta özelliğidir: anthropic-beta: context-management-2025-06-27 gönderin ve stratejileri context_management.edits altında yapılandırın. clear_tool_uses_20250919 araç sonuçlarını temizler, clear_thinking_20251015 ise düşünme bloklarını yönetir. Bunun trigger değeri varsayılan olarak 100.000 girdi token'ıdır, keep son 3 araç kullanımına ayarlıdır ve clear_tool_inputs değeri false olarak belirlenmiştir; böylece girdiler kalır ve sadece sonuçlar silinir.

Sıkıştırma (Compaction) bir özet oluşturur ve tüm konuşma geçmişini bu özetle değiştirir. Bu da bir beta özelliğidir: anthropic-beta: compact-2026-01-12 gönderin ve compact_20260112 düzenleme türünü kullanın. Tetikleyici varsayılan olarak {"type": "input_tokens", "value": 150000} değerindedir ve bu değer en az 50.000 olmalıdır.

Sıkıştırmanın, ajanları sessizce bozan bir teslim kuralı vardır. Yanıt, özeti içeren bir compaction içerik bloğu ile başlar ve ardından normal metin bloğu gelir. Bu bloğu sonraki isteklerde geri göndermeniz gerekir; API daha sonra ondan önceki tüm içerik bloklarını bırakır. Uygulamada: sadece metni değil, response.content içeriğinin tamamını ekleyin.

Anthropic belgeleri, sunucu tarafı sıkıştırmayı uzun süreli konuşmalarda bağlamı yönetmek için birincil strateji, bağlam düzenlemeyi ise nelerin temizleneceği üzerinde daha hassas kontrol sağlayan seçenek olarak tanımlar. Öncelikle model desteğini kontrol edin. Mevcut Opus, Sonnet ve Fable modelleri sıkıştırmayı destekler; claude-haiku-4-5 desteklemez ve güncel liste sıkıştırma sayfasında yer alır. Bu beta özelliklerinin hiçbiri, belgelerinde istemcinin gönderdiği tek seferlik bir özetleme isteği olarak tanımlanan Claude Code'un kendi /compact özelliğini çalıştırmaz.

FAQ

Claude Code oturumum neden çalıştıkça yavaşlıyor ve maliyeti artıyor?

Çünkü her adımda tüm konuşma geçmişi yeniden gönderilir; bu nedenle gün boyu açık kalan bir oturumda sorulan tek satırlık bir soru, tüm günün yükünü taşır. Prompt caching, önbellek sıcak kaldığı sürece bunu temel girdi ücretinin 0.1 katı gibi düşük bir maliyetle tutar; ancak bir adım önbelleği ıskaladığında, aynı önek 1.25 katı maliyetle yeniden yazılır. Pencereyi neyin doldurduğunu görmek için /context komutunu çalıştırın ve mekanizmayı anlamak için Claude Code oturumunda nelerin ücretlendirildiği konusunu okuyun.

Claude Code içindeki /clear ve /compact arasındaki fark nedir?

/clear, boş bir bağlam ile yeni bir konuşma başlatır. Herhangi bir istek göndermediği için maliyeti yoktur ve birbiriyle ilgisiz görevler arasında geçiş yaparken doğru tercihtir. /compact ise aynı konuşmayı sürdürür ve geçmişi bir özetle değiştirir; bu nedenle uzun süren tek bir görev içinde doğru tercihtir. /compact keep only the plan and the diff örneğinde olduğu gibi bir odak noktası belirtin, çünkü nelerin korunacağına bu talimat karar verir.

Claude Code bağlam penceremi nelerin tükettiğini nasıl görebilirim?

/context komutunu veya öğe bazında tam döküm için /context all komutunu çalıştırın. Bu komut; sistem istemini, araç tanımlarını, MCP sunucularını, bellek dosyalarını ve geçmişi renkli bir ızgara olarak gösterir; ayrıca bağlam yoğunluğu yüksek araçlar ve bellek şişkinliği için öneriler sunar. Ücretli bir planda, /usage komutu son dönemdeki kullanımı bireysel yeteneklere, alt aracılara ve MCP sunucularına göre de sınıflandırır.

Sıkıştırma yerine 1 milyon token'lık bağlam penceresi kullanmalı mıyım?

Daha büyük bir pencere sorunu çözmek yerine sadece erteler. Opus 4.8 ve Sonnet 5 dahil olmak üzere güncel birçok model 1 milyon token'lık bağlam penceresini destekler ve sıkıştırma işlemi bu modellerde de aynı şekilde çalışır. Her adımda tam istem yeniden gönderilir ve ücretlendirilir; bu nedenle 400.000 token'lık bir konuşma, pencereye sığsa da sığmasa da maliyetlidir.

Claude API'sinde bağlam düzenleme (context editing) ile sıkıştırma (compaction) arasındaki fark nedir?

Bağlam düzenleme, çoğunlukla araç sonuçları olmak üzere eski içeriği seçici olarak temizler ve her birinin yerine, Claude'un kaldırıldığını anlaması için yer tutucu metinler bırakır. Sıkıştırma ise bir özet oluşturur ve tüm geçmişi bu özetle değiştirir. Anthropic belgeleri, uzun süreli konuşmalar için birincil strateji olarak sıkıştırmayı tanımlar ve bağlam düzenlemeyi daha hassas bir seçenek olarak konumlandırır. Her ikisi de kendi başlıklarına sahip beta özelliklerdir ve her ikisi de Claude Code'un /compact komutundan bağımsızdır.