AI Ajanları için Önbellekleme Stratejileri: Maliyetleri Kısmadan Kaliteyi Korumak
AI Ajanları için Önbellekleme Stratejileri: Maliyetleri Kısmadan Kaliteyi Korumak
Araştırma ajanınız günde 50 görev çalıştırıyor. Her görev aynı 3.000 token’lık sistem istemiyle, aynı 2.500 token’lık araç tanımlarıyla ve aynı 5.000 token’lık bilgi tabanıyla başlıyor. Bu, 50 kez tekrarlanan 10.500 token anlamına geliyor — modelin her seferinde özdeş biçimde okuduğu günde 525.000 token. Standart fiyatlandırmayla, aynı içeriği tekrar tekrar işlemek için ödeme yapıyorsunuz.
Önbellekleme, üretim ajanları için en az çabayla en yüksek etkiyi sağlayan optimizasyondur. Yalnızca prompt önbellekleme, önbelleğe alınan içerik için girdi token maliyetlerini %90 oranında azaltabilir. Araç sonucu önbelleklemeyle birleştirildiğinde, kalite, doğruluk veya esneklikten ödün vermeden toplam ajan maliyetlerini genellikle yarıya indirebilirsiniz.
Bu makalede, ajanlar için üç önbellekleme katmanını öğreneceksiniz — prompt önbellekleme, araç sonucu önbellekleme ve yanıt memoization — Claude’un API’sini kullanan uygulama desenleri ve kararlarınıza rehberlik edecek net bir maliyet analiziyle birlikte.
Bölüm 1: Ajan Maliyet Anatomisi
Optimize etmeden önce, token’larınızın gerçekte nereye gittiğini anlamanız gerekiyor. Tipik bir ajansal iş akışını inceleyelim.
Tur Başına Token Dağılımı
Standart bir ajan mimarisinde, modele yapılan her API çağrısı şunları içerir:
| Bileşen | Yaklaşık Token | Tekrar Ediyor mu? |
|---|---|---|
| Sistem istemi | ~1.500 | Her turda |
| Araç tanımları | ~2.000 | Her turda |
| Bilgi tabanı / bağlam | ~3.000 | Her turda |
| Konuşma geçmişi | Büyüyor | Birikimli |
| Araç sonuçları | Ortalama ~500 | Araç çağrısı başına |
Statik ek yük — sistem istemi, araç tanımları ve bilgi tabanı — toplamda yaklaşık 6.500 token tutuyor ve her seferinde birebir aynı.
Bileşik Maliyet Sorunu
Ajanlar tek bir API çağrısı yapmaz. Döngü kurarlar. Tipik 15 adımlı bir ajan çalışması şöyle görünür:
Önbellekleme olmadan:
15 adımın her biri tam bağlamı gönderir. Konuşma geçmişinin adım başına ortalama ~300 token büyüdüğü varsayılırsa:
- Adım başına statik token: 6.500
- 15 adımdaki toplam statik token: 97.500
- Konuşma geçmişi token’ları (kümülatif): ~33.750
- Araç sonucu token’ları: ~7.500
- Toplam girdi token’ı: ~138.750
Claude Sonnet’in milyon token başına $3 girdi fiyatlandırmasıyla bu, görev başına yaklaşık $0,42 eder. Günde 50 görev çalıştırdığınızda yalnızca girdi token’larında günde $21 ödüyorsunuz.
Prompt önbelleklemeyle:
Önbelleğe alınan token’lar, önbellek okuma işlemleri için milyon başına $0,30 (%90 indirim) üzerinden ücretlendirilir. 6.500 statik token’ı önbelleğe aldığınızda:
- 15 adımdaki önbellek okuma token’ları: 97.500 × $0,30/M = $0,029
- Önbelleğe alınmayan token’lar standart fiyattan kalır: ~41.250 × $3/M = $0,124
- Önbellek yazma (ilk adım): 6.500 × $3,75/M = $0,024
- Toplam girdi maliyeti: ~$0,18 / görev
Bu, yalnızca önbelleklemeden gelen %57’lik bir azalmadır. Günde 50 görevde günde $12’den fazla tasarruf edersiniz — minimum kod değişiklikleriyle aylık yaklaşık $360.
Bölüm 2: Claude ile Prompt Önbellekleme
Claude’un prompt önbellekleme API’si, ajansal iş akışlarına uygulayabileceğiniz tek başına en etkili optimizasyondur. API’ye “bu istemimin bu kısmı değişmedi — önbelleğe alınan hesaplamayı yeniden kullan” demenizi sağlar.
Prompt Önbellekleme Nasıl Çalışır?
Önbellekleme etkin bir istek gönderdiğinizde, Anthropic’in altyapısı:
- İşaretlenmiş öneke ait önbelleğe alınmış bir sürümün var olup olmadığını kontrol eder
- Önbellek kayıpında: Tam istemi işler, öneki önbelleğe alır ve önbellek yazma ücreti alır (standart girdi fiyatının %25 üstü)
- Önbellek isabetinde: Önbelleğe alınmış hesaplamayı yeniden kullanır, yalnızca önbellek okuma ücreti alır (standart girdi fiyatından %90 indirim)
Önbelleğin 5 dakikalık TTL’si (Yaşam Süresi — önbelleğe alınan verinin sona ermeden önceki süresi) vardır. Her önbellek isabeti TTL’yi sıfırlar, bu nedenle aktif ajanlar önbelleklerini doğal olarak canlı tutar. Çağrılar arasında 5 dakikadan uzun aralıklar olan toplu işler, önbellek yazma maliyetlerine daha sık maruz kalır.
Neyi Önbelleğe Almalı
Her şey önbelleğe alınabilir ya da alınmalıdır demek yanlış olur. Kararlı, tekrarlanan önekleri önbelleğe alın:
- Sistem istemleri — Çalışmalar arasında neredeyse her zaman aynıdır. Önce bunları önbelleğe alın.
- Araç tanımları — Araç şemalarınız çağrılar arasında nadiren değişir.
- Statik bilgi tabanları — Referans belgeler, yönergeler, politikalar.
- Konuşma önekleri — Çok turlu konuşmalar için değişmeyecek önceki turları önbelleğe alın.
Önemli kısıtlamalar:
- Önbellekleme önek tabanlıdır — yalnızca istemin başından itibaren, sırayla içerik önbelleğe alınabilir. Önceki bölümleri önbelleklemeden ortadaki bir bölümü önbelleğe alamazsınız.
- Claude Sonnet ve Haiku için minimum önbelleğe alınabilir uzunluk 1.024 token’dır (Opus için 2.048).
- Tek bir istekte en fazla 4 önbellek kesme noktası ayarlayabilirsiniz.
Uygulama
Prompt önbelleklemeyle ajan kurulumunu gösteren eksiksiz bir örnek:
Önce (önbellekleme yok):
import anthropic
client = anthropic.Anthropic()
SYSTEM_PROMPT = """You are a research assistant specializing in market analysis.You have access to tools for searching databases, reading files, and performingcalculations. Always cite your sources and provide confidence levels for yourfindings. [... detailed instructions totaling ~1,500 tokens ...]"""
TOOLS = [ { "name": "search_database", "description": "Search the company database for market data, competitor info, or financial records.", "input_schema": { "type": "object", "properties": { "query": {"type": "string", "description": "Search query"}, "database": {"type": "string", "enum": ["market", "competitors", "financial"]}, "limit": {"type": "integer", "description": "Max results", "default": 10} }, "required": ["query", "database"] } }, { "name": "read_file", "description": "Read the contents of a research file.", "input_schema": { "type": "object", "properties": { "file_path": {"type": "string", "description": "Path to the file"} }, "required": ["file_path"] } }, # ... more tools totaling ~2,000 tokens in definitions]
KNOWLEDGE_BASE = """## Company Policies and Guidelines[... reference material totaling ~3,000 tokens ...]"""
def run_agent(user_query: str): messages = [{"role": "user", "content": user_query}]
response = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=4096, system=f"{SYSTEM_PROMPT}\n\n{KNOWLEDGE_BASE}", tools=TOOLS, messages=messages, ) # Log token usage print(f"Input tokens: {response.usage.input_tokens}") return responseSonra (prompt önbelleklemeyle):
import anthropic
client = anthropic.Anthropic()
SYSTEM_PROMPT = """You are a research assistant specializing in market analysis.You have access to tools for searching databases, reading files, and performingcalculations. Always cite your sources and provide confidence levels for yourfindings. [... detailed instructions totaling ~1,500 tokens ...]"""
KNOWLEDGE_BASE = """## Company Policies and Guidelines[... reference material totaling ~3,000 tokens ...]"""
TOOLS = [ { "name": "search_database", "description": "Search the company database for market data, competitor info, or financial records.", "input_schema": { "type": "object", "properties": { "query": {"type": "string", "description": "Search query"}, "database": {"type": "string", "enum": ["market", "competitors", "financial"]}, "limit": {"type": "integer", "description": "Max results", "default
---
## İlgili Makaleler
- [Agent Maliyet Optimizasyonu: API Harcamalarını Azaltmaya Yönelik Pratik Bir Rehber](/tr/blog/agent-cost-optimization-a-practical-guide-to-reducing-api-spend/)- [Ajan Hata Kurtarma: Üretim Güvenilirliği için 5 Desen](/tr/blog/agent-error-recovery-patterns/)- [Araç Kullanım Desenleri: Güvenilir Ajan-Araç Arayüzleri Oluşturma](/tr/blog/agent-tool-use-patterns/)