Maliyet optimizasyonuKılavuz
Claude Code token kullanımı: araç çıktısını bağlam dışında tutun
Bir PreToolUse kancası ve context-mode eklentisi test günlüklerini Claude Code'un bağlamı dışında nasıl tutar, ayrıca filtreleme ile ve filtresiz oturum maliyeti tahmini.

Bu sayfada
Ajanınız test paketini üç kez çalıştırdı ve fatura görevden daha büyük. Bunun nedeni nadiren yazdığı kod. Nedeni test günlükleri: bir araç sonucu Claude Code'un bağlamına girdiğinde, sonraki her istek onu tekrar taşır. Çözüm, araç çıktısını model görmeden önce küçültmektir. Resmi yol Bash üzerinde bir PreToolUse kancasıdır; üçüncü taraf yolu context-mode eklentisidir. Her ikisi de aşağıda, bir CheapTokens modelinde uzun bir oturum için maliyet tahminiyle birlikte.
Bir günlük neden birçok kez ödenir#
Claude Code maliyetler sayfasına göre (https://code.claude.com/docs/en/costs, 23 Ekim 2026'da kontrol edildi), Claude Code her istekle birlikte tüm konuşmayı gönderir ve her araç kullanımı araç sonuçlarını taşıyan başka bir isteği tetikler. İstem önbelleğe alma geçmişi daha ucuz bir önbelleklenmiş oranda yeniden okur, ancak tokenlar hâlâ oradadır.
Diyelim ki ajan npm test çalıştırdı ve 10.000 satırlık bir günlük aldı. Belgeler bu tür bir günlüğün on binlerce token olabileceğini söylüyor. 30.000 token varsayalım. Sonra ne yaparsanız yapın, bu 30.000 token 11. adımın, 12. adımın, 13. adımın ve siz /clear yapana veya sıkıştırana kadar böyle devam eden adımların girdisinin bir parçasıdır. Ve işin püf noktası bu: günlük bir adım için faydalıdır ve otuz adım boyunca onun için ödeme yaparsınız.
Çözüm 1: test çıktısını filtreleyen bir PreToolUse kancası#
Aynı belgeler sayfası kancaları ön işleme olarak öneriyor: Bash üzerinde bir PreToolUse kancası test komutlarını (npm test, pytest, go test) grep - üzerinden boru hattına yönlendirecek şekilde yeniden yazar. Ajan daha sonra 10.000 satır yeşil nokta yerine yalnızca hataları artı birkaç satır bağlamı görür. Belgeler bunun on binlerce tokenı yüzlerceye dönüştürebileceğini söylüyor.

Bu, o belgeler sayfasındaki betiktir (23 Ekim 2026'da kontrol edildi). jq gerektirir. Klasörü mkdir - ile oluşturun, betiği ~/ olarak kaydedin ve üzerinde chmod +x çalıştırın:
#!/bin/bash
input=$(cat)
cmd=$(echo "$input" | jq -r '.tool_input.command')
pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'
if [[ "$cmd" =~ $pattern ]]; then
filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"
echo "$input" | jq --arg filtered "$filtered_cmd" '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'
else
echo "{}"
fiArdından ~/ içinde kaydedin:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "~/.claude/hooks/filter-test-output.sh" }]
}
]
}
}Çalıştığını kontrol etmek için Claude Code içinde /hooks açın ve PreToolUse girdisini arayın veya claude - ile başlayın ve ajandan npm test çalıştırmasını isteyin. Kanca komutu yeniden yazdığında, dosyada command alanına sahip bir modified tool input keys satırı bulunur. Testler geçerse çıktı boştur, böylece ajan sessiz bir başarı elde eder; çalıştırıcınız hataları farklı yazdırıyorsa deseni ayarlayın.
Çözüm 2: büyük araç sonuçları için context-mode#
Bir kanca yalnızca boru hattına yönlendirebileceğiniz komutları kapsar. Playwright'tan sayfa anlık görüntüleri veya yirmi GitHub sorununun listesi MCP araçlarından gelir. context-mode'un hedeflediği şey budur. README'sine göre (https://github.com/mksglu/context-mode, 23 Ekim 2026'da kontrol edildi; sürüm veya tarih göstermiyor), ham araç çıktısını bağlam penceresinin dışında tutan, oturum durumunu SQLite'ta saklayan ve araç çağrılarını kancalar üzerinden yönlendiren bir MCP sunucusu ve eklentisidir. Claude Code v1.0.33 veya daha yenisini gerektirir ve lisansı OSI açık kaynak lisansı olmayan Elastic License 2.0'dır.
Claude Code içinde yükleyin:
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-modeYeniden başlatın veya /reload-plugins çalıştırın, ardından / ile doğrulayın. Yalnızca MCP varyantı olan claude mcp add context- araçları ekler ancak otomatik yönlendirmesi yoktur.
Proje büyük azalmalar bildiriyor: 315 KB, 5,4 KB olur (%98), 56 KB'lık bir sayfa anlık görüntüsü 299 bayt olur, 986 KB, 62 KB olur. Bunlar yazarın kendi sayılarıdır: bunları tavan olarak kabul edin ve kendi oturumunuzda öncesi ve sonrası /context ile ölçün.
Filtreleme ile ve filtresiz uzun bir oturumun maliyeti#
İşte varsayılan bir oturum üzerindeki aritmetik. 20.000 token ortalama temel bağlamda 40 adımlık bir kodlama oturumu, adım başına 500 çıktı tokenı ve 10, 20 ve 30. adımlarda üç test çalıştırması. Her ham günlük 30.000 token; filtrelenmiş sürüm 500.
-
- adımdan bir günlük, kendisinden sonraki 30 istekte yeniden gönderilir: 30 × 30.000 = 900.000 token. 20. adım: 20 × 30.000 = 600.000. 30. adım: 10 × 30.000 = 300.000. Ek girdi: 900.000 + 600.000 + 300.000 = 1.800.000.
- Filtrelenmiş: (30 + 20 + 10) × 500 = 30.000 ek girdi.
- Temel girdi: 40 × 20.000 = 800.000. Çıktı: 40 × 500 = 20.000.
- Yani oturum filtresiz 800.000 + 1.800.000 = 2.600.000 girdi tokenı ve filtrelenmiş 800.000 + 30.000 = 830.000, her iki durumda da 20.000 çıktı tokenı.
Hesaplama her girdi tokenını tam oranda sayar. Önbelleğe alma gerçek sayıyı düşürür, ancak aynı mantıkla her iki durumu da düşürür. Bu gibi girdi ağırlıklı ajan döngülerine uyan model olan MiniMax-M2.7'nin (MiniMaxAI/, 180K bağlam, 8.192'ye kadar çıktı tokenı) canlı fiyatları aşağıdaki grafiktedir.
Varsayımlar: 40 adım, 20.000 token temel bağlam, adım başına 500 çıktı tokenı, 30.000 tokenlık üç test çalıştırması (filtrelenmiş: 500).
MiniMax-M2.7'de oturum filtresiz $0.133 ve filtrelenmiş $0.0445 tutar ve girdi ile çıktı birlikte sayıldığında toplamda OpenRouter'ın referans fiyatından daha ucuzdur. Filtresiz durumdaki girdinin kabaca üçte ikisi ajanın bir kez okuduğu günlüklerdir.
Önemli olan tam dolar miktarı değil. Önemli olan, filtrenin herhangi bir modelde 2.600.000 girdi tokenının yaklaşık 1.770.000'ini kaldırması (2.600.000 − 830.000 = 1.770.000) ve daha ucuz bir modelin kalan her tokenın fiyatını düşürmesidir.
Claude Code'u bir CheapTokens modelinde çalıştırın#
Claude Code, Anthropic Messages protokolünü konuşur ve CheapTokens bunu destekler. Claude Code için temel URL'de /v1 yoktur. Tam kurulum Claude Code'u CheapTokens'e nasıl bağlarsınız sayfasındadır. Yer tutucu bir anahtarla kısa sürüm:
export ANTHROPIC_BASE_URL=https://api.cheaptokens.dev
export ANTHROPIC_AUTH_TOKEN=YOUR_CHEAPTOKENS_KEY
export ANTHROPIC_MODEL=MiniMaxAI/MiniMax-M2.7
claudedocs sayfasındaki tam kimliği kullanın; fiyat tablolarındaki kısa adlar API tarafından kabul edilmez. Her modelin fiyatları fiyatlandırma sayfasındadır. Bir Claude Code faturasını düşüren diğer alışkanlıklar için (/clear, /compact, /mcp, alt ajanlar), Claude Code nasıl daha ucuz hale getirilir sayfasına bakın. Gerçek bir istekte girdi ve çıktının nasıl sayıldığını görmek için Bir API isteği kaç token kullanır sayfasını okuyun.
Hızlı kontrol listesi#
- Uzun bir oturumda
/contextçalıştırın ve neyin yer kapladığını görün. - Test komutları için Bash kancasını ekleyin; yeniden yazmayı
/hooksveya hata ayıklama günlüğünde doğrulayın. - MCP araçları büyük anlık görüntüler döndürüyorsa context-mode'u deneyin ve öncesi ve sonrası
/contextkarşılaştırın. - İlgisiz görevler arasında
/clear, böylece eski günlükler beraberinde taşınmayı bırakır.



