Claude API / Anthropic SDK için referans — model kimlikleri, fiyatlandırma, parametreler, streaming, tool use, MCP, agents, caching, token sayma ve model migration hakkında bilgiler içerir. ÖNEMLİ — hedef dosyayı açmadan önce okuyun; Claude/Anthropic ile ilgili herhangi bir isim geçtiğinde (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*` vb.) bu referansı atlayın.
cd ~/.claude/skills
git clone https://github.com/anthropics/skills.git skills mkdir -p ~/.claude/skills/claude-api
curl -fsSL https://raw.githubusercontent.com/anthropics/skills/HEAD/skills/claude-api/SKILL.md \
-o ~/.claude/skills/claude-api/SKILL.md Bu beceri, Claude ile LLM destekli uygulamalar geliştirmenize yardımcı olur. İhtiyaçlarınıza göre doğru platformu seçin, proje dilini tespit edin ve ardından ilgili dile özgü belgeleri okuyun.
Hedef dosyayı (veya hedef dosya yoksa, prompt ve projeyi) Anthropic dışı sağlayıcı işaretleyicileri açısından tarayın — import openai, from openai, langchain_openai, OpenAI(, gpt-4, gpt-5, agent-openai.py veya *-generic.py gibi dosya adları veya sağlayıcıdan bağımsız kod tutmanız için açık talimatlar. Bulursanız durun ve kullanıcıya bu becerisinin Claude/Anthropic SDK kodu ürettiğini söyleyin; dosyayı Claude'a değiştirmek isteyip istemiyor, yoksa Claude dışı bir uygulamayı mı istediğini sorun. Anthropic SDK çağrıları ile Anthropic dışı bir dosyayı düzenlemeyin.
Kullanıcı Claude özelliği ekleme, değiştirme veya uygulama istediğinde, kodunuz Claude'u şu yollardan biriyle çağırmalıdır:
anthropic, @anthropic-ai/sdk, com.anthropic.*, vb.). Desteklenen SDK bulunduğunda bu varsayılandır.curl, requests, fetch, httpx, vb.) — yalnızca kullanıcı açıkça cURL/REST/ham HTTP istediğinde, proje bir shell/cURL projesi olduğunda veya dilde resmi SDK olmadığında.İkisini karıştırmayın — Python veya TypeScript projesinde requests/fetch kullanmayın sadece daha hafif hissettiği için. OpenAI uyumlu shim'lere geri dönmeyin.
SDK kullanımını tahmin etmeyin. İşlev adları, sınıf adları, ad alanları, yöntem imzaları ve içe aktarma yolları açık belgelerden gelmeli — bu becerinin {lang}/ dosyalarından veya resmi SDK depolarından ya da shared/live-sources.md dosyasında listelenen belgeleme bağlantılarından. İhtiyaç duyduğunuz bağlama bu beceri dosyalarında açıkça belgelenmişse, yazı yazmadan önce shared/live-sources.md dosyasından ilgili SDK deposunu WebFetch ile getirin. Ruby/Java/Go/PHP/C# API'lerini cURL şekillerinden veya başka bir dil SDK'sından çıkarmayın.
Kullanıcı aksi talep etmedikçe:
Claude model sürümü için lütfen Claude Opus 4.7'yi kullanın; buna claude-opus-4-7 tam model dizesi aracılığıyla erişebilirsiniz. Lütfen biraz karmaşık olan her şey için uyarlanabilir düşünmeyi varsayılan olarak kullanın (thinking: {type: "adaptive"}). Son olarak, lütfen uzun girdi, uzun çıktı veya yüksek max_tokens olabilecek herhangi bir istek için varsayılan olarak akışı kullanın — istek zaman aşımlarına çarpmayı önler. Tam yanıtı almanız gerekmiyorsa, SDK'nın .get_final_message() / .finalMessage() yardımcısını kullanın
Sayfanın altındaki Kullanıcı İsteği bare bir alt komut dizesi ise (herhangi bir konu olmadan), bu belgedeki her Alt Komutlar tablosunu arayın — eklenmiş bölümlerdeki tabloları da dahil — ve eşleşen Eylem sütununu doğrudan izleyin. Bu, kullanıcıların /claude-api <alt-komut> aracılığıyla belirli akışları çağırmasını sağlar. Belgede eşleşme yoksa, isteği normal konu olarak değerlendirin.
Kod örneklerini okumadan önce, kullanıcının hangi dilde çalıştığını belirleyin:
Proje dosyalarına bakın - dili çıkarın:
*.py, requirements.txt, pyproject.toml, setup.py, Pipfile → Python — python/ dosyasından okuyun*.ts, *.tsx, package.json, tsconfig.json → TypeScript — typescript/ dosyasından okuyun*.js, *.jsx (.ts dosyası yok) → TypeScript — JS aynı SDK'yı kullanır, typescript/ dosyasından okuyun*.java, pom.xml, build.gradle → Java — java/ dosyasından okuyun*.kt, *.kts, build.gradle.kts → Java — Kotlin, Java SDK'sını kullanır, java/ dosyasından okuyun*.scala, build.sbt → Java — Scala, Java SDK'sını kullanır, java/ dosyasından okuyun*.go, go.mod → Go — go/ dosyasından okuyun*.rb, Gemfile → Ruby — ruby/ dosyasından okuyun*.cs, *.csproj → C# — csharp/ dosyasından okuyun*.php, composer.json → PHP — php/ dosyasından okuyunBirden fazla dil tespit edilirse (ör. hem Python hem de TypeScript dosyaları):
Dil çıkarılamıyorsa (boş proje, kaynak dosya yok veya desteklenmeyen dil):
Desteklenmeyen dil tespit edilirse (Rust, Swift, C++, Elixir, vb.):
curl/ dosyasından cURL/ham HTTP örnekleri önerilir ve topluluk SDK'larının mevcut olabileceğini not edinKullanıcının cURL/ham HTTP örneklerine ihtiyacı varsa, curl/ dosyasından okuyun.
| Dil | Tool Runner | Yönetilen Ajanlar | Notlar |
|---|---|---|---|
| Python | Evet (beta) | Evet (beta) | Tam destek — @beta_tool dekoratörü |
| TypeScript | Evet (beta) | Evet (beta) | Tam destek — betaZodTool + Zod |
| Java | Evet (beta) | Evet (beta) | Ek açıklama yapılmış sınıflarla beta tool use |
| Go | Evet (beta) | Evet (beta) | toolrunner paketinde BetaToolRunner |
| Ruby | Evet (beta) | Evet (beta) | Beta'da BaseTool + tool_runner |
| C# | Hayır | Hayır | Resmi SDK |
| PHP | Evet (beta) | Evet (beta) | BetaRunnableTool + toolRunner() |
| cURL | Yok | Evet (beta) | Ham HTTP, SDK özellikleri yok |
Yönetilen Ajanlar kod örnekleri: Python, TypeScript, Go, Ruby, PHP, Java ve cURL için ayrılmış dile özgü README'ler sağlanır (
{lang}/managed-agents/README.md,curl/managed-agents.md). Dilinizin README'sini artı dilden bağımsızshared/managed-agents-*.mdkavram dosyalarını okuyun. Ajanlar kalıcıdır — bir kez oluşturun, ID'ye göre referans verin.agents.createtarafından döndürülen ajan ID'sini saklayın ve bunu her sonrakisessions.createçağrısına geçin;agents.createçağrısını istek yolunda kullanmayın. Anthropic CLI, ajanları ve ortamları versiyon kontrollü YAML'den oluşturmanın uygun bir yoludur — URL'sishared/live-sources.mddosyasında. Gerekli bir bağlama README'de gösterilmiyorsa, tahmin etmek yerineshared/live-sources.mddosyasından ilgili girişi WebFetch ile getirin. C# şu anda Yönetilen Ajanlar desteğine sahip değildir; API'ye karşı cURL stili ham HTTP isteklerini kullanın.
Basit başlayın. Varsayılan olarak, ihtiyaçlarınızı karşılayan en basit seviyeyi kullanın. Tek API çağrıları ve iş akışları çoğu kullanım durumunu işler — yalnızca görev gerçekten açık uçlu, model tarafından yönlendirilmiş keşif gerektirdiğinde ajanlar için yapın.
| Kullanım Durumu | Seviye | Önerilen Platform | Neden |
|---|---|---|---|
| Sınıflandırma, özet, çıkarma, S&C | Tek LLM çağrısı | Claude API | Bir istek, bir yanıt |
| Toplu işleme veya gömme | Tek LLM çağrısı | Claude API | Uzmanlaşmış uç noktalar |
| Kod kontrollü mantık ile çok adımlı boru hatları | İş akışı | Claude API + tool use | Siz döngüyü yönetirsiniz |
| Kendi araçlarınızla özel ajan | Ajan | Claude API + tool use | Maksimum esneklik |
| Çalışma alanı ile sunucu tarafından yönetilen durum bilgili ajan | Ajan | Yönetilen Ajanlar | Anthropic döngüyü çalıştırır ve tool yürütme sandbox'ını barındırır |
| Kalıcı, sürümlü ajan yapılandırmaları | Ajan | Yönetilen Ajanlar | Ajanlar saklanan nesnelerdir; oturumlar sürüme sabitlenir |
| Dosya takılı çok dönüşlü uzun çalışan ajan | Ajan | Yönetilen Ajanlar | Oturum başına kapsayıcılar, SSE olay akışı, Beceriler + MCP |
Not: Yönetilen Ajanlar, Anthropic'in ajan döngüsünü çalıştırmasını ve araçların yürütüldüğü kapsayıcıyı barındırmasını istediğinizde doğru seçimdir — dosya işlemleri, bash, kod yürütme tümü oturum başına çalışma alanında çalışır. Hesaplamayı kendiniz barındırmak veya kendi özel tool çalışma zamanınızı çalıştırmak istiyorsanız, Claude API + tool use doğru seçimdir — otomatik döngü işleme için tool runner'ı kullanın veya manuel döngü için ince taneli kontrol (onay kapıları, özel günlüğe yazma, koşullu yürütme).
Üçüncü taraf sağlayıcılar (Amazon Bedrock, Google Vertex AI, Microsoft Foundry): Yönetilen Ajanlar Bedrock, Vertex veya Foundry'de kullanılamaz. Herhangi bir üçüncü taraf sağlayıcı aracılığıyla dağıtıyorsanız, tüm kullanım durumları için — Yönetilen Ajanlar'ın aksi takdirde önerileceği durumlar dahil — Claude API + tool use kullanın.
Uygulamanızın ne gerekiyor?
0. Amazon Bedrock, Google Vertex AI veya Microsoft Foundry aracılığıyla dağıtıyor musunuz?
└── Evet → Claude API (ajanlar için + tool use) — Yönetilen Ajanlar sadece 1P'dir.
Hayır → devam edin.
1. Tek LLM çağrısı (sınıflandırma, özet, çıkarma, S&C)
└── Claude API — bir istek, bir yanıt
2. Anthropic'in ajan döngüsünü çalıştırmasını ve Claude'un araçları yürüttüğü
oturum başına kapsayıcı barındırmasını mı istiyorsunuz (bash, dosya işlemleri, kod)?
└── Evet → Yönetilen Ajanlar — sunucu tarafından yönetilen oturumlar, kalıcı ajan yapılandırmaları,
SSE olay akışı, Beceriler + MCP, dosya takısı.
Örnekler: "çalışma alanı olan durum bilgili kodlama ajanı",
"olayları UI'ye akışa sokan uzun çalışan araştırma ajanı",
"birçok oturumda kullanılan kalıcı, sürümlü yapılandırmaya sahip ajan"
3. İş akışı (çok adımlı, kod tarafından yönetilen, kendi araçlarınız ile)
└── Tool use ile Claude API — siz döngüyü kontrol edersiniz
4. Açık uçlu ajan (model kendi yolunu belirler, kendi araçlarınız, siz hesaplamayı barındırırsınız)
└── Claude API ajantik döngü (maksimum esneklik)
Ajan seviyesini seçmeden önce dört kriteri kontrol edin:
Bunlardan herhangi birine "hayır" cevabı ise, daha basit bir seviyede kalın (tek çağrı veya iş akışı).
Her şey POST /v1/messages aracılığıyla gider. Araçlar ve çıktı kısıtlamaları bu tek uç noktanın özellikleri — ayrı API'ler değil.
Kullanıcı tanımlı araçlar — Araçları tanımlarsınız (dekoratörler, Zod şemaları veya ham JSON aracılığıyla) ve SDK'nın tool runner'ı API çağrısı, işlevlerinizi yürütme ve Claude bitene kadar döngüyü yürütmeyi işler. Tam kontrol için döngüyü kendiniz yazabilirsiniz.
Sunucu tarafındaki araçlar — Anthropic tarafından barındırılan araçlar Anthropic'in altyapısında çalışır. Kod yürütme tamamen sunucu tarafındadır (tools içinde bildirin, Claude otomatik olarak çalıştırır). Bilgisayar kullanımı sunucu tarafından barındırılabilir veya kendi barındırılan olabilir.
Yapılandırılmış çıktılar — Messages API yanıt formatını kısıtlar (output_config.format) ve/veya tool parametre doğrulaması (strict: true). Önerilen yaklaşım client.messages.parse() - yanıtları şemanıza karşı otomatik olarak doğrular. Not: eski output_format parametresi kullanımdan kaldırılmıştır; messages.create() üzerinde output_config: {format: {...}} kullanın.
Destekleyici uç noktalar — Toplu işler (POST /v1/messages/batches), Dosyalar (POST /v1/files), Token Sayma ve Modeller (GET /v1/models, GET /v1/models/{id} — canlı beceri/bağlam penceresi keşfi) Messages API isteklerine beslenirler.
| Model | Model ID | Bağlam | Giriş $/1M | Çıktı $/1M |
|---|---|---|---|---|
| Claude Opus 4.7 | claude-opus-4-7 |
1M | $5.00 | $25.00 |
| Claude Opus 4.6 | claude-opus-4-6 |
1M | $5.00 | $25.00 |
| Claude Sonnet 4.6 | claude-sonnet-4-6 |
1M | $3.00 | $15.00 |
| Claude Haiku 4.5 | claude-haiku-4-5 |
200K | $1.00 | $5.00 |
Kullanıcı açıkça farklı bir model belirtmedikçe HER ZAMAN claude-opus-4-7 kullanın. Bu tartışmaz. Kullanıcı kelimenin tam anlamıyla "sonnet kullan" veya "haiku kullan" söylemediği sürece claude-sonnet-4-6, claude-sonnet-4-5 veya başka bir model kullanmayın. Maliyet için asla düşürmeyin — bu kullanıcının kararı, sizin değil.
KRİTİK: Tablodaki tam model ID dizelerini kullanın — oldukları gibi tamdir. Tarih sonekleri eklemeyin. Örneğin, claude-sonnet-4-5 kullanın, asla claude-sonnet-4-5-20250514 veya eğitim verilerinizden hatırlayabileceğiniz başka tarih içeren varyantı kullanmayın. Kullanıcı tabloda olmayan eski bir model isterse (ör. "opus 4.5", "sonnet 3.7"), tam ID için shared/models.md dosyasını okuyun — kendiniz bir tane inşa etmeyin.
Bir not: yukarıdaki model dizelerinden herhangi biri size yabancı gelirse, bunu beklemeyin — bu sadece eğitim verilerinizin kesilişinden sonra yayınlandığı anlamına gelir. Emin olun bunlar gerçek modellerdir; size böyle bir şaka yapmazdık.
Canlı beceri araması: Yukarıdaki tablo önbelleğe alınmıştır. Kullanıcı "X için bağlam penceresi nedir", "X vizyon/düşünme/çabayı destekliyor mu" veya "hangi modeller Y'yi destekliyor" sorduğunda, Models API'sini sorgulayın (client.models.retrieve(id) / client.models.list()) — alan referansı ve beceri filtresi örnekleri için shared/models.md dosyasını okuyun.
Opus 4.7 — Sadece uyarlanabilir düşünme: thinking: {type: "adaptive"} kullanın. thinking: {type: "enabled", budget_tokens: N} Opus 4.7'de 400 döndürür — uyarlanabilir tek açılı moddur. {type: "disabled"} ve thinking çıkarması her ikisi de çalışır. Örnekleme parametreleri (temperature, top_p, top_k) da kaldırılır ve 400 dönecektir. Tam breaking-change listesi için shared/model-migration.md → Opus 4.7'ye Taşıma bölümüne bakın.
Opus 4.6 — Uyarlanabilir düşünme (önerilen): thinking: {type: "adaptive"} kullanın. Claude dinamik olarak ne zaman ve ne kadar düşüneceğine karar verir. budget_tokens gerekli değildir — budget_tokens Opus 4.6 ve Sonnet 4.6'da kullanımdan kaldırılmıştır ve yeni kod için kullanılmamalıdır. Uyarlanabilir düşünme otomatik olarak iç içe düşünmeyi etkinleştirir (beta başlığı gerekmez). Kullanıcı "genişletilmiş düşünme", "düşünme bütçesi" veya budget_tokens istediğinde: thinking: {type: "adaptive"} ile Opus 4.7 veya 4.6 kullanın. Düşünme için sabit token bütçesi kavramı kullanımdan kaldırılmıştır — uyarlanabilir düşünme bunu değiştirir. Yeni 4.6/4.7 kodunda budget_tokens KULLANMAYIN ve eski bir modele GEÇMEYİN. Kademeli göç çıkışı: budget_tokens hala Opus 4.6 ve Sonnet 4.6'da geçiş halı olarak işlev görmektedir — mevcut kodu taşıyorsanız ve effort ayarlamadan önce sabit bir token tavanı gerekiyorsa, shared/model-migration.md → Geçişsel kaçış kapısı bölümüne bakın. Not: bu kaçış kapısı Opus 4.7 için geçerli değildir — budget_tokens tamamen orada kaldırılmıştır.
Çaba parametresi (GA, beta başlığı yok): output_config: {effort: "low"|"medium"|"high"|"max"} (top-level değil output_config içinde) aracılığıyla düşünme derinliği ve genel token harcamasını kontrol eder. Varsayılan high (onu çıkarmaya eşdeğer). max sadece Opus seviyesi (Opus 4.6 ve sonrası — Sonnet veya Haiku değil). Opus 4.7, "xhigh" ekler (high ve max arasında) — 4.7'de çoğu kodlama ve ajantik kullanım durumları için en iyi ayar ve Claude Code'da varsayılan; çoğu zeka duyarlı işler için en az high kullanın. Opus 4.5, Opus 4.6, Opus 4.7 ve Sonnet 4.6 üzerinde çalışır. Sonnet 4.5 / Haiku 4.5 üzerinde hata verecektir. Opus 4.7'de, çaba önceki herhangi bir Opus'tan daha fazla önem taşır — taşırken ayarını yeniden ayarlayın. Daha düşük çaba, daha az ve daha birleşik tool çağrıları, daha az preamble ve daha kısa onaylamalar anlamına gelir — high çoğunlukla kalite ve token verimliliğini dengeleyen tatlı nokta; doğruluk maliyetten daha önemli olduğunda max kullanın; basit görevler veya alt ajanlar için low kullanın.
Opus 4.7 — düşünme içeriği varsayılan olarak çıkarılır: thinking blokları hala akışa alınır ancak metinleri thinking: {type: "adaptive", display: "summarized"} (varsayılan "omitted") ile tercih etmedikçe boş. Sessiz değişiklik — hata yok. Akıllandırmayı kullanıcılara aktarıyorsanız, varsayılan çıktıdan önce uzun bir duraklama gibi görünür; görünür ilerlemeyi geri yüklemek için "summarized" olarak ayarlayın.
Görev Bütçeleri (beta, Opus 4.7): output_config: {task_budget: {type: "tokens", total: N}} modele tam ajantik döngü için kaç tokeni olduğunu söyler — bir çalışan geri sayımı görür ve kendi moderatörü olur (minimum 20.000; beta başlığı task-budgets-2026-03-13). Model tarafından bilinen enforced per-response tavanı olan max_tokens değerinden ayrı. shared/model-migration.md → Görev Bütçeleri bölümüne bakın.
Sonnet 4.6: Uyarlanabilir düşünmeyi destekler (thinking: {type: "adaptive"}). budget_tokens Sonnet 4.6'da kullanımdan kaldırılmıştır — bunun yerine uyarlanabilir düşünme kullanın.
Eski modeller (yalnızca açıkça istenirse): Kullanıcı özel olarak Sonnet 4.5 veya başka eski bir model isterse, thinking: {type: "enabled", budget_tokens: N} kullanın. budget_tokens max_tokens değerinden daha küçük olmalıdır (minimum 1024). Sadece kullanıcı budget_tokens adını anıştığı için eski bir modeli seçmeyin — bunun yerine Opus 4.7 ile uyarlanabilir düşünme kullanın.
Beta, Opus 4.7, Opus 4.6 ve Sonnet 4.6'da. 1M bağlam penceresini aşabilecek uzun çalışan konuşmalar için sunucu tarafındaki sıkıştırmayı etkinleştirin. API, tetikleme eşiğine yaklaştığında önceki bağlamı otomatik olarak özetler (varsayılan: 150K token). Beta başlığı compact-2026-01-12 gerekir.
Kritik: response.content (sadece metin değil) her dönüşte iletilerinize ekleyin. Yanıttaki sıkıştırma blokları korunmalıdır — API bunları sonraki istekte sıkıştırılmış geçmişi değiştirmek için kullanır. Sadece metin dizesini çıkarmak ve onu eklemek sessizce sıkıştırma durumunu kaybedecektir.
Kod örnekleri için {lang}/claude-api/README.md (Sıkıştırma bölümü) dosyasına bakın. Tam belgeler için shared/live-sources.md aracılığıyla WebFetch yapın.
Önek eşlemesi. Ön
2 veya daha fazla bağımsız görevin paralel olarak yürütülebileceği ve aralarında state paylaşımı ya da sıralı bağımlılık olmadığı durumlarda kullanın.
Ayrı bir oturumda inceleme kontrol noktaları ile yürütülecek yazılı bir uygulama planınız olduğunda kullanın.
Mevcut oturumda bağımsız görevlerle uygulama planlarını yürütürken kullanın
Herhangi bir hata, test başarısızlığı veya beklenmeyen davranışla karşılaştığınızda, çözüm önerisi sunmadan önce kullanın.
Herhangi bir feature ya da bugfix uygulamaya başlamadan önce kullanın.
Yeni beceriler oluştururken, mevcut becerileri düzenlerken veya dağıtımdan önce becerileri doğrularken kullanın.