SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor

Her Zaman Açık AI Agent Maliyeti Nasıl Sınırlandırılır

Gözetimsiz agent her döngüde ücret oluşturabilir. Sert limitler, görev bütçeleri, prompt önbellekleme ve kullanım alanı loglarıyla harcama kontrolü sağlanır.

Her zaman çalışan bir AI agent'ın yüksek maliyet oluşturması nasıl önlenir

Bir VPS (virtual private server) üzerindeki AI agent maliyet kontrolü, agent çalışmaya başlamadan önce belirlenen sınırlarla sağlanır. Çünkü agent çalışırken kullanım ölçerini kimse izlemeyebilir. Her yanıtı max_tokens ile sınırlandırın, kendi kodunuzdaki döngü yinelemelerine üst sınır koyun, prompt'un değişmeyen bölümünü önbelleğe alın ve hangi işin ne kadar harcama yaptığını görmek için her yanıtın kullanım değerlerini loglayın. Sunucu kiralama ücreti aylık sabit bir fiyattır. Model API kullanımı token başına ölçülür ve gözetimsiz bir döngü, token harcamak konusunda oldukça etkilidir.

Bu bölüm, zaten mevcut olan ve sahibi olduğunuz bir sunucudan Messages API çağrıları yapan bir agent varsayar. VPS üzerinde Claude ile AI agent oluşturma bölümünde mekanizmanın kendisi açıklanır.

Katılımsız bir agent neden farklı bir maliyet yapısına sahiptir

Etkileşimli bir oturumda insan bulunur. Model yanlış bir yola saptığında veya 40,000 satırlık bir log okuduğunda, oturumu izleyen kişi işlemi durdurur. Katılımsız bir agent için böyle bir fren yoktur: döngü sona erene kadar çalışır, ardından bir timer onu yeniden başlatır.

İnsanların gözden kaçırdığı çarpan, çalışma sıklığıdır. Beş dakikalık bir zamanlamayla çalışan bir job günde 288 kez, ayda yaklaşık 8,640 kez çalışır. Tek bir çalışmanın maliyeti ne olursa olsun çarpılacak değer budur. Birçok "always-on" agent'ın sürekli çalışması gerekmez. Belirli sayıda dakika içinde yanıt vermesi gerekir; bu da bir schedule gerektirir.

Bir agent, chat window'ın gerektirmediği bazı maliyetleri de oluşturur.

  • Tool tanımları her isteğe eklenir. Tool-use system prompt, tool_choice ile auto veya none kullanıldığında Claude Opus 4.8 üzerinde 290 token, any veya tool kullanıldığında ise 410 token maliyet oluşturur. Bash tool buna 325 token daha ekler. Eklenen her MCP server, bu boyuta kendi şemalarını ekler; MCP, model context protocol anlamına gelir.
  • Tool sonuçları input token'larıdır. 8,000 satır yazdıran bir command, sonraki request'e ve o turn içindeki bundan sonraki tüm request'lere 8,000 satır ekler.
  • Alınan sayfalar input token'larıdır. Ortalama 10 kB boyutundaki bir web sayfası yaklaşık 2,500 token, 500 kB boyutundaki bir araştırma PDF'i ise yaklaşık 125,000 token içerir. max_content_tokens yalnızca metin içerenleri kısaltır; çünkü "PDF gibi binary içeriklere değil, text content'e uygulanır". Bir PDF'in boyutunu sınırlamak için bunun yerine max_uses ve allowed_domains kullanılır.
  • Web search arama başına ücretlendirilir ve kaç sonuç döndüğünden bağımsız olarak 1,000 arama için $10 tutarındadır. Hata veren bir arama ücretlendirilmez.

Bunların hiçbiri tek seferde pahalı değildir. Ancak 8,640 kez tekrarlandığında hepsi pahalı hale gelir.

Sert sınırlar ve esnek sınırlar farklı sorunları çözer

max_tokens zorunludur. Bir isteğin toplam çıktısı, düşünme süreci ve yanıt metni dahil olmak üzere uygulanan sert bir üst sınırdır. Claude bu sınırı asla aşmaz ve model bu sayıyı göremez. Sınıra ulaşıldığında stop_reason: "max_tokens" hatası alınır ve yanıt kesilir. Ajanlar için kritik nokta şudur: araç kullanım döngüsündeki her istek kendi max_tokens değerini taşır, dolayısıyla bu sınır tüm görevi değil, tek bir yanıtı kısıtlar. 4.000 token değerinde on araç çağrısı, işlem başına 40.000 tokenlık bir tavan oluşturur.

Görev bütçesi tavsiye niteliğindedir. task_budget, output_config içinde yer alır ve modele tüm ajan döngüsü için (düşünme, araç çağrıları, araç sonuçları ve çıktı dahil) kaç tokenı olduğunu bildirir.

resp = client.beta.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    betas=["task-budgets-2026-03-13"],
    output_config={"task_budget": {"type": "tokens", "total": 64000}},
    messages=messages,
)

"Görev bütçeleri sert bir sınır değil, esnek bir ipucudur." Claude bir işlem sırasında bu bütçeyi aşabilir ancak çıktı üzerindeki zorunlu sınır hala max_tokens olarak kalır. "Geri sayım yalnızca model tarafından görülebilir" ve yanıtlar kalan bütçe bilgisini içermez. Kabul edilen minimum task_budget.total değeri 20.000 tokendır; daha düşük değerler 400 hatası döndürür. İş için çok küçük bir bütçe belirlenmesi, modelin reddetme benzeri davranışlar sergilemesine, görevi kapsam dışı bırakmasına veya erken durmasına neden olur.

Bir detay, tasarruf etmek yerine maliyeti artırır. İstemciniz her takip eden istekte task_budget.remaining değerini azaltırsa, değişen değer bu değeri içeren tüm önbelleğe alınmış önekleri geçersiz kılar. Bu değeri yalnızca ilk istekte bir kez ayarlayın.

Görev bütçeleri Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5.5 ve Claude Haiku 5.5 sürümlerinde beta aşamasındadır. Claude Sonnet 5 ve Claude Haiku 4.5 sürümleri Not supported olarak listelenmiştir ve görev bütçeleri Claude Code için geçerli değildir; bu nedenle tmux içinde ayrılmış Claude Code oturumu oturum hijyenine bağlıdır.

Üçüncü sınır Claude Console içinde yer alır: ajana kendi çalışma alanını atayın, ardından aylık harcama limiti ve dakika başına hız sınırlarını belirleyin. "Varsayılan Çalışma Alanı üzerinde sınır belirleyemezsiniz" ve "Kuruluş genelindeki sınırlar, çalışma alanı sınırlarının toplamı daha yüksek olsa bile her zaman geçerlidir". Harcama bildirimlerini etkinleştirin; böylece bir eşik değerine ulaşıldığında sınır devreye girmeden önce uyarı alırsınız.

İş bazında model seçimi ve çabanın gerçek etkisi

Model seçimi, her iş için ayrı verilmesi gereken bir karardır. Ekim 2026 itibarıyla, milyon token başına giriş ve çıkış maliyetleri şöyledir: Claude Fable 5.1 ve Fable 5 için 10$ ve 50$, Claude Opus 5.5 için 4$ ve 20$, Claude Opus 5, Opus 4.8 ve Opus 4.7 için 5$ ve 25$, Claude Sonnet 5.5 ve Sonnet 5 için 2$ ve 10$, Claude Haiku 5.5 için 100.000 tokene kadar 0,10$ ve 0,50$ (bu sınırın üzerinde 0,50$ ve 2,50$, önbelleğe alınan tokenlar dahil) ve Claude Haiku 4.5 için 1$ ve 5$. Anthropic, Sonnet 5'i başlangıçta bu fiyatla satışa sunmuş, ardından bu fiyatı standart hale getirerek 3$ ve 15$'a yükseltme planını iptal etmiştir. Yalnızca günlük satırlarını sınıflandıran bir işlem için Opus kullanılması gerekmez.

Yoğun bir çalışma takvimini karşılamak için ücretsiz kullanıma güvenmeyin. Claude API'nin kayıt sırasında verdiği küçük kredi dışında, tek düzenli ödenek Claude Max ve Team planlarına dahil edilen aylık API kredisidir: Max 5x planında 100$, Max 20x planında 200$ ve Team planında 500$'a kadar ortak havuz; her fatura döneminde yenilenir. Uygun bir plana geçtikten 7 gün sonra talep edilebilir ve ödeme yöntemi gerektirmez. Bu kredi Claude API, Managed Agents, Agent SDK ve playground için geçerlidir ancak Claude Code için kullanılamaz; her dönem sonunda silinir, bir sonraki döneme devretmez. Harcama limitinize dahil edilir ve kredi tükendiğinde, organizasyonun satın alınmış kredisi yoksa istekler durdurulur.

Çaba (effort), ikinci kaldıraçtır. output_config.effort, low, medium, high, xhigh ve max değerlerini kabul eder; ancak her model her seviyeyi desteklemez. Varsayılan değer çoğu modelde high, Claude Opus 5.5 ve Claude Haiku 5.5 modellerinde ise medium'dur; bir modelin varsayılan değerini açıkça belirtmek, belirtmemekle aynı sonucu verir. Düşük çaba ayarı, yalnızca muhakeme süresini kısaltmakla kalmaz; dokümantasyona göre Claude'un daha az araç çağrısı yapmasını ve birden fazla işlemi daha az çağrıda birleştirmesini sağlar. Bir ajan üzerinde bu çok daha büyük bir tasarruftur, çünkü gerçekleşmeyen bir araç çağrısı, hiç yapılmayan bir istek anlamına gelir.

Buradaki tuzak, çaba ayarının önbellekleme (cache) ile çelişmesidir. İstekler arasında üst düzey değeri değiştirmek, prompt önbelleğini geçersiz kılar. Claude Opus 5.5 üzerindeki dokümante edilmiş örnekte, 2. istek cache_read_input_tokens: 3546 değerini bildirmiştir. 3. istekte çaba değeri modelin varsayılanı olan medium'den low'ye değiştirilmiş ve 3546 üzerinden cache_creation_input_tokens, 0 üzerinden cache_read_input_tokens bildirilmiştir. Bu nedenle, üst düzey çaba ayarını iş yükleri arasında değiştirin, ancak önbelleğe alınmış bir konuşma içinde asla değiştirmeyin. İki yöntem, önbelleği bozmadan derinliği değiştirmenize olanak tanır. Claude Fable 5.1, Opus 5.5, Opus 5, Sonnet 5.5 ve Haiku 5.5 modellerinde, mesaj bazlı çaba değişikliği (beta, mid-conversation-output-config-2026-07-01 başlığı) yeni bir seviye belirler ve önbelleğe alınmış ön eki korur. Herhangi bir modelde ise bunun yerine prompt içinde yönlendirme yapabilirsiniz: en yeni kullanıcı mesajına "Düşünmeden doğrudan cevap ver." gibi bir satır eklemek, önceki kesme noktalarını korur. Ancak Claude Haiku 5.5 modelinde bu ifade, düşünme sürecini güvenilir bir şekilde azaltmaz.

Düşünme (thinking) tokenları, çıkış fiyatları üzerinden ücretlendirilir ve max_tokens limitinden düşülür; bu nedenle kesilmiş bir cevap genellikle düşünme sürecinin bütçeyi tükettiği anlamına gelir. Sayı için usage.output_tokens_details.thinking_tokens değerini okuyun. Claude token faturasını ne oluşturur başlıklı içerik, ölçüm sistemini detaylıca açıklar.

Kararlı öneki önbelleğe alın ve yanlışlıkla bozmaktan kaçının

Bir önbellek yazma işlemi, beş dakikalık önbellekte temel girdi fiyatının 1.25 katına, bir saatlik önbellekte ise 2 katına mal olur. Çoğu modelde önbellek okuma maliyeti 0.1 katıdır; bu nedenle "önbelleğe alma, 5 dakikalık süre için (1.25x yazma) bir okumadan sonra veya 1 saatlik süre için (2x yazma) iki okumadan sonra kendini amorti eder". En yeni modellerde okuma maliyetleri daha da düşüktür: Claude Opus 5.5 ve Claude Sonnet 5.5 modellerinde 0.05 katı, Claude Fable 5.1 modelinde ise 0.025 katıdır.

Tek bir cümle, bunun neden sürekli çalışan bir aracı (agent) için uygun olduğunu açıklar: "Önbelleğe alınan içerik her kullanıldığında önbellek, ek bir maliyet olmaksızın yenilenir." Beş dakikalık önbelleğe karşı iki dakikada bir tetiklenen bir iş, tek bir yazma işlemiyle öneki tüm gün sıcak tutar.

Önbelleği fark etmeden kaybetmenin üç yolu şunlardır:

Değişen bir önek. "Önbellek önekleri şu sırayla oluşturulur: tools, system ve ardından messages." Bu sıralamada daha önceki herhangi bir bayt değişikliği, kendisinden sonra gelen her şeyi geçersiz kılar; araç tanımlarının düzenlenmesi ise tüm önbelleği geçersiz kılar. Sıkça karşılaşılan bir hata, sistem istemine (system prompt) bir zaman damgası veya çalışma kimliği (run id) eklemektir: bu durumda her istek farklı bir önek taşır, 1.25x maliyetle yeni bir girdi yazar ve hiçbir şey okuyamaz. Bunun belirtisi, birbirinin aynısı görünen çağrılarda usage.cache_read_input_tokens değerinin 0 olmasıdır. Değişken metni en yeni kullanıcı mesajına taşıyın.

Çok kısa bir önek. Her modelin minimum önbelleklenebilir uzunluğu vardır; bunun altındaki istekler önbelleğe alınmadan işlenir ve "hata döndürülmez". Bu değerler; Claude Fable 5.1, Fable 5, Opus 5.5, Opus 5, Sonnet 5.5 ve Haiku 5.5 modellerinde 512 token, Claude Opus 4.8 ve Claude Sonnet 5 modellerinde 1,024 token, Claude Haiku 4.5 modelinde ise 4,096 token olarak belirlenmiştir. Bu nedenle bir işi Sonnet 5'ten Haiku 4.5'e taşımak, önbelleğe almanın sessizce devre dışı kalmasına neden olabilir.

Geriye dönük bakış penceresini aşan bir konuşma. "Geriye dönük bakış penceresi 20 bloktur." Sistem, her kesme noktasında (breakpoint) en fazla 20 konumu kontrol eder ve ardından durur. Belgelenmiş örnekte, 35. blokta kesme noktası bulunan ve 35 blok içeren bir tur, 35'ten 16'ya kadar olan blokları kontrol eder; 15. bloktaki önceki tur girdisi pencerenin dışında kaldığı için eşleşme gerçekleşmez. Tur başına birden fazla araç kullanımı ve araç sonucu bloğu ekleyen bir aracı, iki veya üç turda 20 blok sınırını aşar. İstek başına dört kesme noktanız vardır, bu yüzden birini yakın tarihli mesajlar için kullanın.

Bekleyebilecek her şeyi Batches API'ye gönderin

"Hem girdi hem de çıktı için tüm kullanımlar standart API fiyatlarının %50'si üzerinden ücretlendirilir." Batch işleme asenkron çalışır ve "batch'lerin çoğu 1 saatten kısa sürede tamamlanır". Sonuçlar, tüm istekler tamamlandığında veya 24 saat dolduğunda (hangisi önce gerçekleşirse) sunulur. Bu süre tipiktir ve garanti edilmez.

processing_status değeri ended olana kadar yoklayın. errored, canceled veya expired döndüren istekler ücretlendirilmez. Harcama sınırına güveniliyorsa bir istisna vardır: "batch'ler Workspace için yapılandırılmış harcama sınırını biraz aşabilir."

İndirimler birlikte uygulanır. Bir batch işlemi beş dakikadan uzun sürebildiğinden belgelerde, bağlamı paylaşan batch'ler için bir saatlik önbelleğin kullanılması önerilir. İş yükünü ayırın: bir kişinin veya webhook'un beklediği her şey canlı akışta kalmalıdır. Gece özeti veya önceki güne ait log sınıflandırması ise yarı fiyatına bir batch'e gönderilebilir.

Her yanıtın kullanım alanlarını kendi kayıt sisteminize işleyin

Kaydetmediğiniz bir harcamayı ilişkilendiremezsiniz. Her yanıt size maliyetini bildirir.

u = resp.usage
row = {
    "job": job_name,
    "model": resp.model,
    "uncached_input": u.input_tokens,
    "cache_write": u.cache_creation_input_tokens,
    "cache_read": u.cache_read_input_tokens,
    "output": u.output_tokens,
    "stop_reason": resp.stop_reason,
}

Her API çağrısı için bir satırı, iş adınızla etiketleyerek bir JSON-lines dosyasına ekleyin. Bir hafta sonra hangi işin harcama yaptığını, hangisinin sadece meşgul göründüğünü söyleyebilirsiniz. cache_read değerini izleyin: sıfırlardan oluşan bir sütun, self-hosted bir aracıdaki en yaygın maliyet hatasıdır.

Bir alanın yanlış anlaşılması kolaydır. input_tokens yalnızca son önbellek kesme noktasından sonraki tokenları sayar, bu nedenle gerçek istem boyutu total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens değeridir. Büyük bir istemde input_tokens: 400 bildiren bir aracı ucuz değildir; geri kalanı önbellekten gelmiştir.

Göndermeden önce sayın. Token sayımı ücretsizdir ve hız sınırları mesaj oluşturmadan ayrıdır; bu nedenle çok büyük bir eki ödeyerek keşfetmek yerine count_tokens kullanarak reddedin. Sonuç bir tahmindir, bu yüzden her model için yeniden ölçüm yapın ve başka bir sağlayıcının tokenlaştırıcısından gelen sayımı asla yeniden kullanmayın. Claude 4.7 ve sonraki modeller, Claude Fable 5 ve Claude Sonnet 5 dahil olmak üzere, "aynı metin için yaklaşık %30 daha fazla token üreten" daha yeni bir tokenlaştırıcı kullanır. Claude Haiku 4.5 dahil olmak üzere Claude Sonnet 4.6 ve önceki modeller, bir öncekini kullanır.

Yetkili görünüm için Admin API, kullanımı https://api.anthropic.com/v1/organizations/usage_report/messages adresinde ve maliyeti https://api.anthropic.com/v1/organizations/cost_report adresinde raporlar. Her ikisi de bir yönetici anahtarı (sk-ant-admin01-...) gerektirir ve anthropic-version: 2023-06-01 ile x-api-key: $ANTHROPIC_ADMIN_KEY olarak kullanılır. Kullanım raporu bucket_width=1d, group_by[]=model ve api_key_ids[]= parametrelerini kabul eder. Maliyet raporu yalnızca günlüktür ve workspace_id veya description değerlerine göre gruplandırılır. Bir sınırlama: "Admin API, bireysel hesaplar için kullanılamaz."

O api_key_ids[] parametresi ucuz bir ilişkilendirme hilesidir: her işe kendi API anahtarını verin, kullanım raporunu api_key_ids[] ile filtreleyin ve group_by[]=api_key_id ile anahtar bazında ayırın. Filtre çoğuldur, gruplandırma boyutu ise tekildir. Anahtarları kod içinde değil, bir VPS üzerindeki ilk Claude API uygulaması örneğinde olduğu gibi ortam değişkenlerinde tutun.

Döngüyü sınırlandırın, çünkü başka hiçbir şey bunu yapmayacak

Sınırlandırılmış bir yineleme sayısı burada isteğe bağlı değildir. Döngü size ait olduğu için sayaç da size aittir:

for step in range(MAX_STEPS):          # MAX_STEPS = 12, never "while True"
    resp = client.messages.create(...)
    if resp.stop_reason != "tool_use":
        break
else:
    log.warning("job %s hit MAX_STEPS=%d, giving up", job_name, MAX_STEPS)

Yukarıdaki tavan değerlerin hiçbiri sizin yerinize bu işi yapmaz: max_tokens tek bir yanıtı sınırlandırır ve modele yalnızca bir görev bütçesi bildirilir. Barındırılan bir ürün, Claude'un tek bir tur içindeki araç çağrısı sınırı özelliğinin çok fazla çağrı yapan bir oturumu durdurması gibi sizi burada durduracaktır; ancak kendi yazdığınız bir döngü, siz bir tane ekleyene kadar herhangi bir güvenlik önlemi olmadan çalışır.

İşlemin dışına ikinci bir fren koyun. İşi kalıcı bir süreç yerine bir systemd zamanlayıcısından (timer) çalıştırın ve servis birimine bir zaman sınırı (wall-clock cap) atayın. Bir zamanlayıcı işi genellikle Type=oneshot değerindedir ve RuntimeMaxSec= "Type=oneshot servisleri üzerinde herhangi bir etkiye sahip değildir", bu nedenle orada TimeoutStartSec=600 ayarını yapın. RuntimeMaxSec=600 değerini yalnızca Type=simple biriminde kullanın. Her iki durumda da, takılan bir çalışma siz fark edene kadar dönmek yerine on dakika sonra sonlandırılır. Bir programı systemd servisi ve zamanlayıcısı olarak çalıştırma konusu birim dosyalarının kendisini kapsar. Bir çalışmanın ne yaptığını journalctl -u triage-agent.service --since "1 hour ago" ile okuyun.

Yeniden denemeleri de sınırlandırın, çünkü sonsuza kadar yeniden deneyen bir işleyici her denemeyi faturalandırır. Bir 429 veya 500 hatası, bekleme süresi (backoff) ile birkaç denemeyi hak eder. Bir 400 hatası ise hiçbir denemeyi hak etmez, çünkü aynı istek aynı şekilde başarısız olmaya devam edecektir.

AI ajanı maliyet kontrolü kendi verilerinizi okumakla başlar

Sürekli çalışan bir ajanın maliyetini kimse size söyleyemez; çünkü maliyet, çalışma başına token sayısı ile günlük çalışma sayısının çarpımıdır ve her iki değişken de size aittir. Ajanı bir kez çalıştırın, kaydettiğiniz kullanım satırını okuyun ve bunu kendi planınızla çarpın. İki gün sonra maliyet raporunu bu hesaplamayla karşılaştırın. İkisi uyuşmadığında, aradaki fark neredeyse her zaman bozuk bir önbellekten veya varsaydığınızdan daha uzun süren bir döngüden kaynaklanır.

Bu hesaplama bir API anahtarı varsayar, çünkü ajan kendi programınızdır ve Messages API'sini çağırır. Kendi etkileşimli çalışmalarınız için, hangi Claude planı çalışma şeklinize uygun konusu abonelik tarafını ele alır. Buradaki her fiyat ve limit, Ekim 2026 itibarıyla Anthropic dokümantasyonu ile doğrulanmıştır; bu nedenle bir bütçe oluşturmadan önce fiyatlandırma sayfasını tekrar inceleyin.

FAQ

Bir VPS üzerinde sürekli çalışan bir yapay zeka aracını çalıştırmanın maliyeti nedir?

İki fatura kalemi vardır ve bunlardan yalnızca biri öngörülebilir. Sunucu sabit aylık fiyata sahiptir. Model API'si ise token başına ücretlendirilir; bu nedenle maliyet, tek bir çalıştırmanın tükettiği miktar ile ne sıklıkla çalıştığının çarpımıdır. Anthropic, kendi kendine barındırılan ve sürekli çalışan bir araç için herhangi bir rakam yayınlamamaktadır, bu yüzden belirtilen her sayıyı bir tahmin olarak değerlendirin. Gerçek bir çalıştırmadan usage günlüğünü alın ve bunu kendi zamanlamanızla çarpın.

max_tokens ile görev bütçesi (task budget) arasındaki fark nedir?

max_tokens zorunludur ve model tarafından görülmez. Düşünme süreci dahil olmak üzere tek bir isteğin çıktısını sınırlar ve bu sınıra ulaşıldığında stop_reason: "max_tokens" hatası alınır. Görev bütçesi ise bunun tam tersidir: modele bu sayı bildirilir ve model, aracı döngüsünü buna göre ayarlar; ancak "Görev bütçeleri kesin bir sınır değil, yumuşak bir ipucudur" ve uygulanan zorunlu sınır hala max_tokens değeridir.

Neden aracım için cache_read_input_tokens değeri her zaman sıfır?

Çünkü önek (prefix) çağrılar arasında değişiyor veya önbelleğe alınamayacak kadar kısa. Bunun yaygın nedeni, sistem istemine (system prompt) eklenen bir zaman damgası veya çalıştırma kimliğidir (run id): önbellek öneke göre anahtarlanır, bu nedenle herhangi bir bayt değişikliği ondan sonra gelen her şeyi geçersiz kılar. Araç tanımlarını veya en üst düzey effort değerini değiştirmek de aynı sonucu doğurur. Diğer bir neden ise boyuttur; çünkü daha kısa istemler önbelleğe alınmaz ve bu durumda herhangi bir hata döndürülmez.

Bir yapay zeka aracının sonsuz döngüye girmesini nasıl durdurabilirim?

Döngü kodunuzdaki yinelemeleri sayın ve sabit bir maksimum değerde durdurun; çünkü max_tokens tek bir yanıtı sınırlar ancak bir araç birçok yanıt oluşturur. İşlemin dışında bir duvar saati sınırı ekleyin: işi bir systemd zamanlayıcısı ile başlatın ve oneshot bir birim için TimeoutStartSec= veya basit bir birim için RuntimeMaxSec= değerini ayarlayın; böylece takılı kalan bir çalıştırma zamanında sonlandırılır. Yeniden denemeleri de sınırlayın, çünkü bir yeniden deneme döngüsü her denemeyi faturalandırır.

Tek bir Claude API anahtarı için harcama limiti belirleyebilir miyim?

Belgelenen harcama limiti anahtar başına değil, çalışma alanı (workspace) başınadır; bu nedenle araca kendi çalışma alanını verin ve aylık harcamasını orada sınırlayın. "Varsayılan Çalışma Alanı üzerinde limit belirleyemezsiniz". Harcama bildirimleri ekleyerek bir eşik değerine ulaşıldığında ilk olarak sizin uyarılmanızı sağlayın. İlişkilendirme için her işe kendi anahtarını atayın ve ardından kullanım raporunu group_by[]=api_key_id ile gruplandırın.