Pratik rehber

Ajanınız daha merhaba demeden 7.600 token harcadı

Araç tanımları her istekte yeniden gidiyor ve kimse bunu hesaplamıyor. Anthropic'in kendi dokümanındaki sayılarla gerçek bir ajan döngüsünün faturasını çıkardım.

Bu yazının İngilizcesi: English version.

Bir yapay zekâ ajanı yazarken herkesin gözü çıktıda oluyor. "Kaç token cevap üretti, ne kadar tuttu." Oysa ajanlarda faturanın büyük kısmı, model tek kelime yazmadan önce oluşuyor: araç tanımları.

Modele "şu araçları kullanabilirsin" demek bedava değil. Her aracın adı, açıklaması ve JSON şeması isteğin içine giriyor. Üstelik konuşmanın her turunda yeniden giriyor. Anthropic bu sayıları fiyatlandırma dokümanında tek tek yayımlamış. Oturup topladım, sonuç beni şaşırttı.

Araç tanımlarının fiyat listesi

Aşağıdakiler Claude Opus 5 için, 1 Ağustos 2026 itibarıyla. Diğer modellerde birkaç yüz token oynuyor.

Ne ekledinizEk girdi token
Herhangi bir araç (sistem promptu, tool_choice: auto)286
Aynısı, tool_choice: any veya belirli bir araç406
Bash aracı325
Metin düzenleyici aracı700
Bilgisayar kullanımı takımı (computer_toolset_20260801)~4.520
Tarayıcı kullanımı takımı (browser_toolset_20260801)~6.610
Tarayıcı takımının dört isteğe bağlı üyesi+~880

Şu satıra bir daha bakın: tarayıcı takımı 6.610 token. Bu, ortalama bir blog yazısının tamamı kadar metin. Siz henüz kullanıcının sorusunu bile yazmadınız.

Bir ajan kurarken tipik olarak birkaçını birden açıyorsunuz. Tarayıcı + bash + metin düzenleyici toplamı:

6.610  tarayıcı takımı (araç sistem promptu dahil)
  325  bash
  700  metin düzenleyici
------
7.635  token, daha kullanıcı konuşmadan

Opus 5 girdisi 1 milyon token başına 5 dolar. Yani 7.635 × 5 / 1.000.000 = istek başına 3,8 sent. Tek istek için gülünecek kadar az bir para. Bekleyin.

Otuz turluk bir döngüde ne oluyor

Ajanların doğası gereği tek istek yok. Model bir araç çağırıyor, sonuç dönüyor, tekrar düşünüyor, tekrar çağırıyor. Otuz tur gayet normal bir sayı — kod tabanında bir hatayı bulup düzelten bir ajan rahat o kadar yapar.

Ve her turda araç tanımlarının tamamı yeniden gönderiliyor. Model konuşmayı hatırlamıyor; siz her seferinde bütün geçmişi ve bütün araç tanımlarını tekrar yolluyorsunuz.

SenaryoSadece araç tanımlarıOpus 5 girdi maliyeti
1 tur7.635 token0,04 $
30 tur, önbelleksiz229.050 token1,15 $
30 tur, 5 dakikalık önbellekle1 yazma + 29 okuma0,16 $

Önbellekli satırın hesabı şöyle: ilk turda önbelleğe yazma temel girdinin 1,25 katı, yani 1 milyon token başına 6,25 dolar; 7.635 × 6,25 / 1.000.000 = 0,048 dolar. Sonraki 29 turda okuma temel girdinin onda biri, yani 0,50 dolar; 29 × 7.635 × 0,50 / 1.000.000 = 0,111 dolar. Toplam 0,16 dolar.

Yedi kat fark. Ve bu farkı yaratan tek şey, cache_control alanını araç tanımlarının üstüne koymak. Tek satır.

Anthropic'in dokümanındaki kural net: 5 dakikalık önbellek bir okumadan sonra kâra geçiyor, 1 saatlik önbellek iki okumadan sonra. Ajan döngüsünde ikinci tur zaten birkaç saniye sonra geliyor. Yani araç tanımlarını önbelleğe almamak için hiçbir gerekçe yok.

Asıl tehlike: bağlama giren büyük dosyalar

Araç tanımları sabit ve öngörülebilir. Gerçek şok, ajanın kendi getirdiği içerikte.

Web getirme aracı ek ücretli değil — sadece getirdiği içeriğin token'ını ödüyorsunuz. Anthropic dokümanda örnek büyüklükler de vermiş:

GetirilenYaklaşık token
Ortalama bir web sayfası (10 kB)~2.500
Büyük bir doküman sayfası (100 kB)~25.000
Bir araştırma makalesi PDF'i (500 kB)~125.000

Ajanınız beşinci turda bir PDF çekti diyelim. O 125.000 token bağlama girdi ve konuşmanın geri kalanında orada duracak. Kalan 25 turda her seferinde yeniden faturalanacak:

Tek bir PDF. On beş dolar. Ajanın "araştırma yapayım" diye açtığı üç sekmeyi çarpın.

Buradan çıkardığım kural şu: web getirme çağrılarında max_content_tokens parametresini her zaman verin. Doküman zaten bunu öneriyor ama gerekçesini kimse yüksek sesle söylemiyor: sınır koymazsanız, ajanınızın rastgele indirdiği bir dosya bütün oturumun maliyetini belirliyor.

Sunucu tarafı araçların ayrı faturaları

Token'ın dışında kalan kalemler de var. Bunları hesap tablosuna ayrı satır olarak yazmak gerekiyor:

AraçÜcret
Web araması1.000 arama başına 10 dolar (aramanın kendisi), artı dönen sonuçların token'ı
Web getirmeEk ücret yok, sadece token
Kod çalıştırmaWeb araması veya web getirme ile birlikte kullanılıyorsa ücretsiz
Kod çalıştırma (tek başına)Ayda 1.550 saat ücretsiz, sonrası konteyner başına saatte 0,05 dolar, en az 5 dakika
Yönetilen ajan oturumuOturum-saati başına 0,08 dolar, sadece running durumundayken

Web araması sentle ölçülüyor, önemsiz görünüyor: on arama on sent. Ama dönen sonuçlar bağlama giriyor ve yukarıdaki hesap oradan işliyor. Aramanın parası ucuz, aramanın sonucunu taşımak pahalı.

Kod çalıştırmanın web araçlarıyla birlikte ücretsiz olması ise bilerek konmuş bir teşvik gibi duruyor ve işinize geliyorsa kullanın.

Yönetilen ajan oturumlarında hoşuma giden ayrıntı: süre yalnız model gerçekten çalışırken sayılıyor. Kullanıcının cevabını beklerken geçen idle süre faturaya girmiyor. Yani sohbeti açık bırakmanın maliyeti yok.

Pratikte yaptığım dört şey

  1. Araç tanımlarını her zaman önbelleğe alıyorum. Yukarıdaki yedi kat farkın tek sebebi bu. Tek satırlık değişiklik.
  2. Kullanmadığım takım üyelerini kapatıyorum. Bilgisayar takımında zoom'u kapatmak ~410 token geri veriyor; tarayıcı takımının isteğe bağlı dört üyesini açmasam ~880 token kazanıyorum. Tek başına küçük, otuz turda değil.
  3. Getirilen her içeriğe üst sınır koyuyorum. max_content_tokens olmadan hiçbir web getirme çağrısı yapmıyorum.
  4. Uzun bağlamı temizliyorum. Ajan bir dosyayı okuyup işini bitirdiyse, o dosyanın tamamının konuşmada durmasına gerek yok. Özetini bırakıp ham metni düşürmek, kalan turların hepsinden indirim demek.

Bir de şunu ölçün

Bu yazıdaki sayıların hepsi Anthropic'in yayımladığı tahminler; kendi isteğinizde tam olarak kaç token harcadığınızı ancak yanıtın usage alanına bakarak görürsünüz. Önceden tahmin etmek için token sayma uç noktası da var.

Ajan yazan herkesin bir kere yapması gereken deneyi öneriyorum: hiçbir şey yapmayan, sadece "merhaba" diyen bir istek gönderin — ama bütün araçlarınız tanımlı olsun. usage.input_tokens alanına bakın. O sayı, her turda ödediğiniz sabit vergidir. Çoğu kişi onu ilk kez gördüğünde şaşırıyor.

Bu blogda reklam vermek ya da birlikte iş yapmak

MCALAB bağımsız bir stüdyo. Sponsorluk, çapraz tanıtım ya da bir iş birliği için:

ads@mcalab.com.tr

Ayrıntılar: Reklam & iş birliği. Kullanıcı desteği için destek sayfası.