# Claude Extended Thinking: AI'nin Derin Düşünme Modu
Bir matematik problemini çözmeye çalıştığını düşün. Basit toplama-çıkarma için hemen cevap verirsin, ama karmaşık bir diferansiyel denklem için adım adım düşünmen gerekir. Claude'un Extended Thinking modu tam olarak bu prensiple çalışıyor: karmaşık problemlerde adım adım, yapılandırilmis bir düşünme süreci izleyerek çok daha doğru sonuçlara ulaşıyor. Eger daha önce Claude Code'un otonom kodlama yeteneklerini denediysen, Extended Thinking'in bu deneyimi nasıl bir üst seviyeye taşıyabileceğini merak ediyor olabilirsin. Thinking budget'i nasıl optimize edeceğin, chain-of-thought reasoning'in matematik ve kodlamada yarattığı farkı ve gerçek dünya kullanım senaryolarını bu rehberde derinlemesine keşfedeceksin.
Not: Bu rehber Anthropic'in resmi dokümantasyonu, API referansları ve gerçek kullanım deneyimlerine dayanmaktadır. Tum kod örnekleri 2026 itibariyle günceldir.
İçindekiler
- Extended Thinking Nedir?
- Chain-of-Thought Reasoning Mekanizması
- Thinking Budget Yönetimi
- Matematik ve Kodlama Performansı
- API Entegrasyonu ve Kod Örnekleri
- Standart vs Extended Thinking Karşılaştırmasi
- Mobil Uygulamalarda Kullanım Senaryoları
- Best Practices ve Optimizasyon
- Sonuç ve Öneriler
1. Extended Thinking Nedir?
Extended Thinking, Claude'un karmaşık problemleri çözme sırasında ic monolog yürütmesini sağlayan bir özelliktir. Normal modda Claude doğrudan cevap üretirken, Extended Thinking modunda önce "düşünme tokenlerini" kullanarak problemi analiz eder, hipotezler oluşturur, bunları doğrular ve ancak ondan sonra nihai cevabi verir.
Temel Çalışma Prensibi
Standart LLM çalışma şekli su sekildedir:
swift
1Input → Model → Output (tek adım)Extended Thinking ise su adımlari izler:
swift
1Input → Düşünme Aşamasi (reasoning tokens) → Doğrulama → OutputBu yaklaşım, özellikle su alanlarda büyük fark yaratır:
- Matematik problemleri: Çok adımlı hesaplamalarda %40'a varan doğruluk artisi
- Kod yazımı: Karmaşık algoritmalarda hata oranını %60 azaltma
- Mantık yürütme: Paradokslar ve edge case'lerde tutarlı cevaplar
- Analitik görevler: Çok değişkenli karar verme süreçlerinde daha iyi sonuçlar
💡 Pro Tip: Extended Thinking, kısa ve basit sorularda gereksiz overhead yaratır. "Türkiye'nin baskenti neresi?" gibi sorular için standart mod yeterlidir. Karmaşık analiz, kodlama ve matematik için Extended Thinking'i aktif et.
Düşünme Tokenleri (Thinking Tokens)
Extended Thinking'in temelinde "thinking tokens" kavrami yatar. Bu tokenler, kullanıcıya gösterI ama modelin iç düşünme sürecini oluşturan ara adımlardır. Claude, bu tokenler aracılığıyla:
- Problem ayrışması yapar — büyük problemi alt problemlere böler
- Hipotez oluşturur — olasi çözümleri sırala
- Doğrulama yapar — her hipotezi test eder
- Sentez gerçekleştirir — en iyi çözümu seçer ve sunar
typescript
1// Extended Thinking API çağrısı örneği2const response = await anthropic.messages.create({3 model: 'claude-sonnet-4-20250514',4 max_tokens: 16000,5 thinking: {6 type: 'enabled',7 budget_tokens: 10000 // düşünme için ayrılmış token bütçesi8 },9 messages: [{10 role: 'user',11 content: 'Bu recursive fonksiyonun zaman karmaşıklığını analiz et...'12 }]13});14 15// Düşünme sürecini ve sonuçu ayrı ayrı al16const thinkingBlock = response.content.find(b => b.type === 'thinking');17const textBlock = response.content.find(b => b.type === 'text');18 19console.log('Düşünme süreci:', thinkingBlock?.thinking);20console.log('Nihai cevap:', textBlock?.text);2. Chain-of-Thought Reasoning Mekanizması
Chain-of-Thought (CoT), Extended Thinking'in kalbindeki mekanizmadir. Bu yaklaşım, 2022'de Google Brain araştırmacıları tarafından popülerleşen bir teknik olup, LLM'lerin karmaşık görevlerde performansını önemli ölçüde artırmıştır.
CoT Adımlari
Claude'un Extended Thinking'de takip ettiği tipik CoT adımlari:
python
1# Örnek: Claude'un ic düşünme süreci (thinking tokens)2"""3Adım 1: Problemi anlama4- Kullanıcı bir binary tree'de en uzun yol bulmami istiyor5- Bu klasik "diameter of binary tree" problemi6 7Adım 2: Yaklaşım seçim8- DFS ile her node'un sol ve sağ derinliğini hesaplayabilirim9- Her node için diameter = sol_derinlik + sag_derinlik10- Global maximum'u takip etmem gerekiyor11 12Adım 3: Edge case kontrolleri13- Bos ağaç → 014- Tek node → 015- Sadece sol/sağ alt ağaç → derinlik16 17Adım 4: Çözümu kodlama18- Recursive DFS fonksiyonu yaziyorum19- Her çağırımda max_diameter güncelliyorum20- Time: O(n), Space: O(h) - h ağaç yüksek21 22Adım 5: Doğrulama23- Örnek ağaç ile test ediyorum: [1,2,3,4,5]24- Beklenen diameter: 3 (4→2→1→3 veya 5→2→1→3)25- Kodumun çıktısı: 3 ✓26"""Reasoning Tokenlerin Fiyatlandırması
Extended Thinking'de fiyatlandırma önemli bir faktör. Thinking tokenleri, standart output token fiyatiyla ücretlendirilir ancak sonuca dahil edilmez:
Özellik | Standart Mod | Extended Thinking |
|---|---|---|
Input token fiyati | $3/1M | $3/1M |
Output token fiyati | $15/1M | $15/1M |
Thinking token fiyati | - | $15/1M (output ile aynı) |
Ortalama cevap süresi | 2-5 saniye | 10-60 saniye |
Doğruluk (matematik) | %72 | %95+ |
Doğruluk (kodlama) | %78 | %92+ |
💡 Pro Tip: Thinking token bütçesini görevin karmaşıklığına göre ayarla. Basit bir refactoring için 5K token yeterken, karmaşık bir sistem tasarımı için 20K+ token gerekebilir.
3. Thinking Budget Yönetimi
Thinking budget, Extended Thinking'in en kritik parametresidir. Çok düşük ayarlarsan model yeteri kadar düşünemez, çok yüksek ayarlarsan gereksiz maliyet ve gecikme oluşur.
Budget Stratejileri
typescript
1// Görev tipine göre dinamik budget ayarlama2function getThinkingBudget(taskType: string): number {3 const budgets: Record<string, number> = {4 'simple_question': 0, // Extended Thinking gereksiz5 'code_review': 5000, // Orta karmaşıklık6 'algorithm_design': 10000, // Yüksek karmaşıklık7 'system_architecture': 15000, // Çok yüksek karmaşıklık8 'math_proof': 20000, // Maksimum düşünme gerekli9 'debugging_complex': 12000, // Karmaşık hata ayıklama10 };11 return budgets[taskType] ?? 8000; // Varsayılan: 8K12}13 14// Kullanım15const budget = getThinkingBudget('algorithm_design');16const response = await anthropic.messages.create({17 model: 'claude-sonnet-4-20250514',18 max_tokens: 16000,19 thinking: {20 type: 'enabled',21 budget_tokens: budget22 },23 messages: [{ role: 'user', content: prompt }]24});Budget Asimi ve Kesme Davranisi
Budget limitine ulaşıldığında Claude düşünmeyi keser ve mevcut bilgiyle cevap üretir. Bu durum su sorunlara yol açabilir:
- Eksik analiz: Tum edge case'ler değerlendirilmemiş olabilir
- Yanlış sonuç: Doğrulama adım atlanmış olabilir
- Tutarsızlik: Düşünme zinciri yarim kalmış olabilir
Bu durum kaçınmak için:
- Iteratif yaklaşım kullan — önce düşük budget ile dene, yetersizse artır
- Streaming kullan — düşünme sürecini canlı izle
- Fallback mekanizması kur — budget aşımında yeniden dene
typescript
1// Streaming ile düşünme sürecini izleme2const stream = anthropic.messages.stream({3 model: 'claude-sonnet-4-20250514',4 max_tokens: 16000,5 thinking: { type: 'enabled', budget_tokens: 10000 },6 messages: [{ role: 'user', content: prompt }]7});8 9for await (const event of stream) {10 if (event.type === 'content_block_delta') {11 if (event.delta.type === 'thinking_delta') {12 console.log('[Düşünme]', event.delta.thinking);13 } else if (event.delta.type === 'text_delta') {14 console.log('[Cevap]', event.delta.text);15 }16 }17}4. Matematik ve Kodlama Performansı
Extended Thinking'in en parlak olduğu alan, çok adımlı mantık yürütme gerektiren görevlerdir. Özellikle matematik ve kodlama benchmark'larinda dramatik iyileşme görulur.
Matematik Benchmark'lari
MATH, GSM8K ve AIME gibi standart benchmark'larda Extended Thinking'in etkileri:
Benchmark | Standart | Extended Thinking | İyileşme |
|---|---|---|---|
MATH (Level 5) | %68 | %93 | +25 puan |
GSM8K | %92 | %98 | +6 puan |
AIME 2024 | %45 | %78 | +33 puan |
HumanEval | %82 | %95 | +13 puan |
SWE-bench | %35 | %62 | +27 puan |
Kodlama Performansı Örneği
Bir iOS uygulamasında karmaşık bir cache mekanizması tasarlamak istediğini düşün. Extended Thinking bu görevi su şekilde ele alir:
swift
1// Claude Extended Thinking'in üretebildiği karmaşık cache çözümu2// Düşünme süreci: LRU + TTL + Memory pressure + Disk persistence3 4actor SmartCache<Key: Hashable & Sendable, Value: Sendable> {5 private struct CacheEntry {6 let value: Value7 let createdAt: Date8 let ttl: TimeInterval9 var lastAccessedAt: Date10 var accessCount: Int11 12 var isExpired: Bool {13 Date().timeIntervalSince(createdAt) > ttl14 }15 }16 17 private var storage: [Key: CacheEntry] = [:]18 private let maxSize: Int19 private let defaultTTL: TimeInterval20 21 init(maxSize: Int = 100, defaultTTL: TimeInterval = 300) {22 self.maxSize = maxSize23 self.defaultTTL = defaultTTL24 }25 26 func get(_ key: Key) -> Value? {27 guard var entry = storage[key], !entry.isExpired else {28 storage.removeValue(forKey: key)29 return nil30 }31 entry.lastAccessedAt = Date()32 entry.accessCount += 133 storage[key] = entry34 return entry.value35 }36 37 func set(_ key: Key, value: Value, ttl: TimeInterval? = nil) {38 if storage.count >= maxSize {39 evictLeastRecentlyUsed()40 }41 storage[key] = CacheEntry(42 value: value,43 createdAt: Date(),44 ttl: ttl ?? defaultTTL,45 lastAccessedAt: Date(),46 accessCount: 047 )48 }49 50 private func evictLeastRecentlyUsed() {51 guard let lruKey = storage.min(by: {52 $0.value.lastAccessedAt < $1.value.lastAccessedAt53 })?.key else { return }54 storage.removeValue(forKey: lruKey)55 }56}Bu örnekte Claude, Extended Thinking sayesinde su detayları düşünüp uygulamıştır:
- Actor kullanımi: ile thread safety
- TTL mekanizması: ile otomatik expire
- LRU eviction: ile bellek yönetimi
- Access tracking: ile akıllı önceliklendirme
Swift ile Async/Await ve iOS Security yazılarinda da benzer karmaşık çözümler için Extended Thinking kullanımını görebilirsin. Ayrıca Claude Code Hooks ile otomasyon yazımızda bu süreci CI/CD'ye entegre etmeyi anlatiyoruz.
5. API Entegrasyonu ve Kod Örnekleri
Extended Thinking'i kendi uygulamanda kullanmak için Anthropic API entegrasyonu gerekir. Istiyor bir iOS uygulamasında, istiyor bir backend servisinde kullanabilirsin.
iOS Uygulamasında Entegrasyon
swift
1// iOS'ta Claude Extended Thinking API çağrısı2import Foundation3 4struct ClaudeThinkingService {5 private let apiKey: String6 private let baseURL = "https://api.anthropic.com/v1/messages"7 8 struct ThinkingRequest: Encodable {9 let model: String10 let max_tokens: Int11 let thinking: ThinkingConfig12 let messages: [Message]13 14 struct ThinkingConfig: Encodable {15 let type: String16 let budget_tokens: Int17 }18 19 struct Message: Encodable {20 let role: String21 let content: String22 }23 }24 25 func analyzeCode(_ code: String, budget: Int = 10000) async throws -> String {26 var request = URLRequest(url: URL(string: baseURL)!)27 request.httpMethod = "POST"28 request.setValue("application/json", forHTTPHeaderField: "Content-Type")29 request.setValue(apiKey, forHTTPHeaderField: "x-api-key")30 request.setValue("2023-06-01", forHTTPHeaderField: "anthropic-version")31 32 let body = ThinkingRequest(33 model: "claude-sonnet-4-20250514",34 max_tokens: 16000,35 thinking: .init(type: "enabled", budget_tokens: budget),36 messages: [.init(role: "user", content: "Bu kodu analiz et: \(code)")]37 )38 39 request.httpBody = try JSONEncoder().encode(body)40 41 let (data, _) = try await URLSession.shared.data(for: request)42 // Response parsing...43 return String(data: data, encoding: .utf8) ?? ""44 }45}Backend Proxy Pattern
Mobil uygulamalarda API anahtarını doğrudan kullanma. Backend proxy üzerinden çağır:
typescript
1// Express.js proxy endpoint2import express from 'express';3import Anthropic from '@anthropic-ai/sdk';4 5const router = express.Router();6const anthropic = new Anthropic();7 8router.post('/api/analyze', async (req, res) => {9 const { prompt, taskType } = req.body;10 11 // Rate limiting ve authentication kontrolu12 // ...13 14 const budget = getThinkingBudget(taskType);15 16 try {17 const response = await anthropic.messages.create({18 model: 'claude-sonnet-4-20250514',19 max_tokens: 16000,20 thinking: { type: 'enabled', budget_tokens: budget },21 messages: [{ role: 'user', content: prompt }]22 });23 24 // Thinking ve text bloklarını ayir25 const thinking = response.content26 .filter(b => b.type === 'thinking')27 .map(b => b.thinking)28 .join('\n');29 30 const text = response.content31 .filter(b => b.type === 'text')32 .map(b => b.text)33 .join('\n');34 35 res.json({36 answer: text,37 reasoning: thinking,38 usage: response.usage39 });40 } catch (error) {41 res.status(500).json({ error: 'Analiz başarısız' });42 }43});💡 Pro Tip: Extended Thinking cevapları standart cevaplardan 3-10x daha uzun sürebilir. Mobil uygulamada kullanıcıya loading state göster ve opsiyonel olarak streaming kullan.
6. Standart vs Extended Thinking Karşılaştırmasi
Her görev için Extended Thinking gerekli değil. Doğru modu seçmek hem maliyet hem performans açısından kritiktir.
Ne Zaman Extended Thinking Kullan?
Senaryo | Standart Mod | Extended Thinking | Önerimiz |
|---|---|---|---|
Basit soru-cevap | ✅ Yeterli | ❌ Gereksiz | Standart |
Kod refactoring | ✅ Çoğu durum | ✅ Karmaşık refactor | Duruma göre |
Algoritma tasarımı | ⚠️ Hatali olabilir | ✅ Çok daha iyi | Extended |
Matematik ispati | ❌ Yetersiz | ✅ Kesinlikle | Extended |
Yazı yazma | ✅ Yeterli | ⚠️ Over-thinking | Standart |
Sistem mimarisi | ⚠️ Yüzeysel | ✅ Derinlemesine | Extended |
Bug tespit | ⚠️ Basit bug'lar | ✅ Karmaşık bug'lar | Duruma göre |
Güvenlik analizi | ⚠️ Temel kontrol | ✅ Kapsamlı audit | Extended |
Maliyet-Performans Analizi
swift
1Örnek: 1000 istek/gun senaryosu2 3Standart Mod:4- Ortalama input: 2K token × $3/1M = $0.0065- Ortalama output: 1K token × $15/1M = $0.0156- Günlük maliyet: 1000 × ($0.006 + $0.015) = $217 8Extended Thinking (10K budget):9- Ortalama input: 2K token × $3/1M = $0.00610- Ortalama output: 1K token × $15/1M = $0.01511- Ortalama thinking: 8K token × $15/1M = $0.1212- Günlük maliyet: 1000 × ($0.006 + $0.015 + $0.12) = $14113 14Fark: $120/gun (%670 artis)Bu nedenle, her isteği Extended Thinking'e yonlendirmek yerine, görev karmaşıklığına göre dinamik routing yap.
CI/CD Pipeline yazımızda otomatik test süreçlerinde benzer maliyet optimizasyonu stratejilerini bulabilirsin. MCP protokolu ve Claude Code IDE entegrasyonu yazılarinda da Extended Thinking'i farklı ortamlarda kullanma senaryolarını ele aldık.
7. Mobil Uygulamalarda Kullanım Senaryoları
Extended Thinking, mobil uygula geliştirme sürecinde birçok noktada hayat kurtarici olabilir.
Senaryo 1: Otomatik Kod Inceleme
typescript
1// PR review için Extended Thinking kullanımi2async function reviewPullRequest(diff: string): Promise<ReviewResult> {3 const response = await anthropic.messages.create({4 model: 'claude-sonnet-4-20250514',5 max_tokens: 16000,6 thinking: { type: 'enabled', budget_tokens: 15000 },7 messages: [{8 role: 'user',9 content: `Bu PR diff'ini iOS best practices açısından incele:10 - Memory leak riski var mi?11 - Thread safety ihlali var mi?12 - Performance darboğazları var mi?13 - SOLID prensipleri uygulanmış mi?14 15 Diff:16 ${diff}`17 }]18 });19 20 return parseReviewResponse(response);21}Senaryo 2: Crash Log Analizi
Karmaşık crash log'larini analiz etmek için Extended Thinking mukemmeldir. Model, stack trace'i adım adım inceleyerek root cause'u tespit edebilir.
Senaryo 3: Mimari Karar Destek
Yeni bir feature eklerken mimari kararlar almak için Extended Thinking'i kullanabilirsin. Model, mevcut mimarını analiz edip en uygun yaklaşımi önerebilir.
SwiftUI Performance ve Clean Architecture yazılarinda bu tip mimari karar süreçlerini detaylı inceledik.
8. Best Practices ve Optimizasyon
Prompt Muhendisligi
Extended Thinking ile en iyi sonuçları almak için prompt'larini optimize et:
typescript
1// Kotu prompt2const badPrompt = "Bu kodu düzelt";3 4// Iyi prompt (Extended Thinking için optimize)5const goodPrompt = `6Bu Swift kodunu aşağıdaki kriterlere göre analiz et ve iyileştir:7 81. Memory management: Retain cycle var mi?92. Concurrency: Actor isolation doğru mu?103. Performance: Gereksiz allocation var mi?114. Error handling: Tum hata durum ele alınmış mi?12 13Her kriter için:14- Mevcut durum analizi15- Tespit edilen sorunlar16- Çözüm önerisi ve kod örneği17 18Kod:19[kod buraya]20`;Caching Stratejisi
Aynı veya benzer sorgular için cevapları cache'le:
typescript
1import { createHash } from 'crypto';2 3const responseCache = new Map<string, { response: string; timestamp: number }>();4const CACHE_TTL = 3600000; // 1 saat5 6async function queryWithCache(prompt: string, budget: number) {7 const hash = createHash('sha256').update(prompt).digest('hex');8 9 const cached = responseCache.get(hash);10 if (cached && Date.now() - cached.timestamp < CACHE_TTL) {11 return cached.response;12 }13 14 const response = await callExtendedThinking(prompt, budget);15 responseCache.set(hash, { response, timestamp: Date.now() });16 return response;17}💡 Pro Tip: Extended Thinking cevaplarını Firestore'da cache'leyerek aynı sorgular için tekrar API çağrısı yapmaktan kaçın. Bu hem maliyeti dusurur hem response time'i iyileştir. Firebase Advanced Patterns yazımızda cache stratejilerini detaylı ele aldık.
Sonuç ve Öneriler
Claude Extended Thinking, AI destekli geliştirme sürecinde oyun değiştiren bir özellik. Özellikle karmaşık algoritmalar, mimari kararlar ve güvenlik analizi gibi derinlemesine düşünme gerektiren görevlerde standart moda kıyasla çok üstun sonuçlar veriyor.
Önemli çıkarımlar:
- Her görev için Extended Thinking kullanma — maliyet ve gecikme artar
- Thinking budget'i görev tipine göre ayarla — dinamik budget stratejisi uygula
- Streaming kullan — uzun düşünme süreçlerinde kullanıcı deneyimini iyileştir
- Cache mekanizması kur — tekrar eden sorgularda maliyeti dusur
- Backend proxy pattern uygula — API anahtarını istemcide tutma
Extended Thinking, özellikle Flutter Clean Architecture veya Structured Concurrency gibi karmaşık konularda kod yazarken inanilmaz faydali. DeepSeek R1'in açık kaynak düşünce zinciri yaklaşımıyla karşılaştırmak da ilginç bir perspektif sunuyor. Denemeni şiddetle tavsiye ederim.
Resmi Kaynaklar:
ALTIN İPUCU
Bu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Easter Egg
Gizli bir bilgi buldun!
Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?
Okuyucu Ödülü
🎉 **Sonuna Kadar Okuyan Kahraman!** Tebrikler! İşte sana özel bir kaynak: Anthropic'in açık kaynakli [anthropic-cookbook](https://github.com/anthropics/anthropic-cookbook) reposu. Burada Extended Thinking dahil tum Claude özelliklerinin canlı, çalışır örneklerini bulabilirsin. Özellikle "extended-thinking" klasorundeki Jupyter notebook'lari bire bir uygula öğrenebilirsin.

