Claude prompt caching’in çok güzel bir rakamı ve çok kolay basılacak bir mayını var: cache okumaları normal input maliyetinin 0.1×’i, ama cache yazımları normal input’tan daha pahalı. Anthropic’in güncel dokümanlarında aktif Claude modellerinde 5 dakikalık cache yazımları input fiyatının 1.25×’i, 1 saatlik yazımlar 2×, cache hit’leri ise 0.1× olarak listeleniyor (Anthropic prompt caching docs).
Bu da caching’i sadece bir gecikme özelliği değil, bir fiyatlandırma özelliği yapıyor. Uygulamanız uzun bir system prompt’u, tool schema’yı, örnek paketini, politika demetini, getirilen dokümanları veya çok turlu state’i tekrar ediyorsa, cache yazımlarını ve okumalarını output token’larını ölçtüğünüz ciddiyetle ölçmelisiniz.
Bugün, 14 Haziran 2026 itibarıyla küçük bir pürüz var: Anthropic, Claude Fable 5’i 9 Haziran’da duyurdu; sonra 12 Haziran’da bir güncelleme yayımlayıp Fable 5 ve Mythos 5 erişiminin yeniden sağlanması için çalışırken askıya alındığını söyledi (Anthropic). OneHop da prompt cache desteğiyle birlikte anthropic/claude-fable-5 modelini listeliyor, ancak model sayfasında şu anda geçici olarak kullanılamaz diye işaretliyor (OneHop). Entegrasyonu şimdi kurun, model id’sini yapılandırılabilir tutun ve erişim açıldığında devreye alın.

Geliştiricilerin gerçekten ihtiyacı olan cache hesabı
Anthropic’in prompt cache’i prompt prefix’lerini saklar. Yeniden kullanılacak bölüm birebir aynı olmalı: tools, system içeriği ve messages bu sırayla değerlendirilir; cache, cache_control ile işaretlenen bloğa kadar uygulanır (Anthropic prompt caching docs).
İşe yarayan fiyatlandırma modeli basit. Diyelim ki yeniden kullanılabilir prefix’iniz 100.000 input token.
| Cache modu | Yazma maliyeti çarpanı | Okuma maliyeti çarpanı | Başabaş sezgisi |
|---|---|---|---|
| Cache yok | Her istekte 1.0× | yok | Her seferinde tam input maliyeti ödersiniz |
| 5 dakikalık cache | Bir kez 1.25× | Hit başına 0.1× | İlk yeniden kullanımdan sonra kendini öder |
| 1 saatlik cache | Bir kez 2.0× | Hit başına 0.1× | Daha fazla yeniden kullanım ya da daha uzun boşluklar ister |
Claude Fable 5 için Anthropic, duyuru yazısında milyon input token başına $10 ve milyon output token başına $50 listeliyor; prompt caching dokümanları ise Fable 5 cache fiyatlarını 5 dakikalık yazımlar için $12.50/M, 1 saatlik yazımlar için $20/M ve cache hit’leri için $1/M olarak veriyor (Anthropic, prompt caching docs).
Anthropic liste fiyatlarıyla, 100k token’lık bu prefix’in maliyeti şöyle:
- Normal input:
$1.00 - 5 dakikalık yazım:
$1.25 - 1 saatlik yazım:
$2.00 - Cache okuma:
$0.10
Yani aynı 100k token’lık prefix TTL içinde iki kez kullanılırsa, 5 dakikalık caching maliyeti $1.25 + $0.10 = $1.35 olur; caching yokken $2.00. 1 saatlik cache iki kullanımda $2.10 tutar, yani iki çağrıda kaybeder; ama üçüncü çağrıda ya da daha uzun bir aradan sonra soğuk yeniden yazımdan kaçındığınızda kazanır.
Production’da kullandığım kural bu: sıcak döngüler için varsayılan 5 dakika; insanların durakladığı, agent’ların tool’ları beklediği veya workflow’ların birkaç dakika sonra devam ettiği yerlerde 1 saat.
Caching’i açmanın iki yolu
Anthropic artık iki yaklaşımı dokümante ediyor. En hızlı yol otomatik caching: üst seviyeye bir cache_control alanı ekleyin, konuşma büyüdükçe Claude breakpoint’i ileri taşır. Daha kontrollü yol ise açık breakpoint’ler: stabil prefix’in son content bloğuna cache_control koyun (Anthropic prompt caching docs).
Otomatik caching chat geçmişi ve agent state’i için harika:
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["ONEHOP_API_KEY"],
base_url=os.getenv("ANTHROPIC_BASE_URL", "https://api.onehop.ai/v1"),
)
message = client.messages.create(
model=os.getenv("CLAUDE_MODEL", "anthropic/claude-fable-5"),
max_tokens=700,
cache_control={"type": "ephemeral"},
system="You are a senior backend engineer. Be concise and specific.",
messages=[
{"role": "user", "content": "My app uses FastAPI, Postgres, and Redis."},
{"role": "assistant", "content": "Got it. What do you want to change?"},
{"role": "user", "content": "Design a cache key strategy for user dashboards."},
],
)
print(message.content[0].text)
print(message.usage.model_dump())
Bu, OneHop’a geçiş yolu: Anthropic tarzı isteğinizi koruyun, base URL’i yapılandırılabilir yapın ve https://api.onehop.ai/v1 adresine yönlendirin. OneHop’un model sayfası da model id olarak anthropic/claude-fable-5 gösteriyor ve yeni kullanıcıların kart gerektirmeden $10 ücretsiz kredi aldığını söylüyor (OneHop). Kısa yolu istiyorsanız OneHop’ta Claude Fable 5 sayfasını açın ve $10 ücretsiz krediyle başlayın.
Açık caching, prefix stabil ama kullanıcı mesajı her istekte değişiyorsa daha iyi. Breakpoint’i değişen bölümden önce koyun:
from anthropic import Anthropic
import os
client = Anthropic(
api_key=os.environ["ONEHOP_API_KEY"],
base_url="https://api.onehop.ai/v1",
)
response = client.messages.create(
model="anthropic/claude-fable-5",
max_tokens=500,
system=[
{
"type": "text",
"text": open("system_prompt.md").read(),
"cache_control": {"type": "ephemeral"},
}
],
messages=[
{"role": "user", "content": "Review this migration plan for race conditions."}
],
)
print(response.usage.model_dump())

1 saatlik TTL ile TypeScript sürümü
Uygulamada pahalı statik context ve gerçekçi boşluklar varsa 1 saatlik caching kullanın. Şöyle düşünün: CI bekleyen code review agent’ları, insanların durakladığı müşteri destek copilot’ları, hukuki araştırma oturumları veya tool’ların birkaç dakika sürdüğü çok adımlı veri analizi.
Anthropic’in dokümanları 1 saatlik TTL’i {"type":"ephemeral","ttl":"1h"} olarak gösteriyor ve otomatik caching’in varsayılan olarak 5 dakika kullandığını belirtiyor (Anthropic prompt caching docs).
import Anthropic from "@anthropic-ai/sdk";
import fs from "node:fs";
const client = new Anthropic({
apiKey: process.env.ONEHOP_API_KEY!,
baseURL: process.env.ANTHROPIC_BASE_URL ?? "https://api.onehop.ai/v1",
});
const policyPack = fs.readFileSync("policy-pack.md", "utf8");
const msg = await client.messages.create({
model: process.env.CLAUDE_MODEL ?? "anthropic/claude-fable-5",
max_tokens: 800,
system: [
{
type: "text",
text: policyPack,
cache_control: { type: "ephemeral", ttl: "1h" },
},
],
messages: [
{
role: "user",
content: "Apply the policy pack to this refund request: customer used 3 of 10 seats.",
},
],
});
console.log(msg.content);
console.log(msg.usage);
Önemli kısım sıkıcı: modeli ve base URL’i kodun derinlerine gömmeyin. İkisini de environment variable’larda tutun. Fable 5’in bugünkü erişilebilirliği hareketli; entegrasyonunuz business logic’i düzenlemeden başka bir aktif Claude modeline düşebilmelidir.
Usage içinde ne izlenmeli
Prompt caching, usage alanlarına bakana kadar görünmezdir. Anthropic, caching’i doğrulamak için cache_creation_input_tokens ve cache_read_input_tokens gibi alanların kontrol edilmesini söylüyor; ikisi de sıfırsa prompt cache’lenmemiştir, çoğu zaman da modelin minimum cache’lenebilir uzunluğunu karşılamadığı için (Anthropic prompt caching docs).
Bunları her istek için log’layın:
const usage = msg.usage;
console.log({
input: usage.input_tokens,
output: usage.output_tokens,
cacheCreate: usage.cache_creation_input_tokens,
cacheRead: usage.cache_read_input_tokens,
});
Daha yeni usage nesnelerinde Anthropic dokümanları cache creation’ı ephemeral_5m_input_tokens ve ephemeral_1h_input_tokens gibi TTL’e özel bucket’lara bölünmüş şekilde de gösteriyor. Önce usage nesnesinin tamamını yakalayın. Hangi gateway ve SDK sürümünü çalıştırdığınızı netleştirdikten sonra normalize edin.
İyi dashboard’lar dört soruya cevap verir:
- Cache’e kaç token yazılıyor?
- Cache’ten kaç token okunuyor?
- Route bazında cache okuma/yazma oranı nedir?
- Hangi prompt’lar boşluklardan sonra büyük soğuk yazımlar yaratıyor?
cache_creation_input_tokens yüksek, cache_read_input_tokens ise sıfıra yakın kalıyorsa breakpoint’iniz muhtemelen değişen içerikten sonradır. Daha erkene alın.

5 dakika mı 1 saat mi: kullanıcı davranışına göre seçin
Sıkı istek döngüleri için 5 dakikalık caching kullanın. Her 20 saniyede bir tool çağıran bir coding agent, kullanıcıların hızlı follow-up gönderdiği bir chat uygulaması veya benzer classification işlerinden oluşan bir batch buradan başlamalı. Anthropic dokümanlarına göre yazma primi sadece 1.25× ve her okuma cache ömrünü ücretsiz yeniliyor (Anthropic prompt caching docs).
Pahalı prefix’in beş dakikadan sonra yeniden kullanılma ihtimali varsa 1 saatlik caching kullanın. Human-in-the-loop workflow’lar bunun klasik örneği. Modelin işi dış sistemlere gönderdiği, browser beklediği, CI poll ettiği veya onay için durakladığı uzun çalışan agent’lar da öyle.
Küçük prompt’ları cache’lemeyin. Anthropic, model ve platform bazında minimum cache’lenebilir prompt uzunluklarını dokümante ediyor; Fable 5 için Claude API minimumu 512 token olarak listelenirken Bedrock’ta bazı modeller için farklı minimumlar var (Anthropic prompt caching docs). Daha kısa prompt’lar caching olmadan işlenebilir.
Pratik bir kontrol listesi:
- Stabil içeriği başa koyun: tools, system prompt’ları, örnekler, referans dokümanlar.
- Değişen veriyi cached prefix’ten sonra tutun: timestamp’ler, request id’leri, kullanıcı metni.
- Konuşmalar için otomatik caching ile başlayın.
- Suffix her çağrıda değişiyorsa açık breakpoint’lere geçin.
- 1 saatlik TTL’i yalnızca boşluklar 2× yazımı haklı çıkarıyorsa kullanın.
- Zafer ilan etmeden önce usage alanlarını log’layın.

OneHop üzerinden bağlayın, sonra ölçün
En temiz entegrasyon, tek satırlık endpoint değişikliği ve env ile yapılandırılan model seçimi:
export ONEHOP_API_KEY="..."
export ANTHROPIC_BASE_URL="https://api.onehop.ai/v1"
export CLAUDE_MODEL="anthropic/claude-fable-5"
Sonra Anthropic Messages kodunuzu koruyun ve cache_control ekleyin.
OneHop’un Fable 5 sayfası şu anda resmi listenin altında fiyatlandırma, kart gerektirmeyen $10 başlangıç kredisi ve model için Anthropic Messages route’u tanıtıyor (OneHop). Fable 5 erişimi 12 Haziran Anthropic güncellemesi itibarıyla geçici olarak askıda olduğundan, model fallback’i rollout’unuzun sonradan akla gelen bir parçası değil, baştan tasarlanmış bir parçası olsun.
Kazanç basit. Uygulamanız büyük prefix’leri tekrar ediyorsa, 0.1× maliyetli cached okumalar prompt engineering’i cost engineering’e çevirir. 5 dakikalık caching ile başlayın. Log’lar duraklamalardan sonra soğuk yeniden yazımlar gösterdiğinde seçili workflow’ları 1 saatlik caching’e taşıyın. Erişim geri geldiğinde Claude Fable 5 için kısa yolu istiyorsanız OneHop’ta Claude Fable 5 deneyin ve $10 ücretsiz krediyle başlayın.