# Claude Extended Thinking: AI'nin Derin Dusunme Modu
Bir matematik problemini cozmeye calistigini dusun. Basit toplama-cikarma icin hemen cevap verirsin, ama karmasik bir diferansiyel denklem icin adim adim dusunmen gerekir. Claude'un Extended Thinking modu tam olarak bu prensiple calisiyor: karmasik problemlerde adim adim, yapilandirilmis bir dusunme sureci izleyerek cok daha dogru sonuclara ulasiyor. Eger daha once Claude Code'un otonom kodlama yeteneklerini denediysen, Extended Thinking'in bu deneyimi nasil bir ust seviyeye tasiyabilecegini merak ediyor olabilirsin. Thinking budget'i nasil optimize edecegin, chain-of-thought reasoning'in matematik ve kodlamada yarattigi farki ve gercek dunya kullanim senaryolarini bu rehberde derinlemesine kesfedeceksin.
Not: Bu rehber Anthropic'in resmi dokumantasyonu, API referanslari ve gercek kullanim deneyimlerine dayanmaktadir. Tum kod ornekleri 2026 itibariyle gunceldir.
Icindekiler
- Extended Thinking Nedir?
- Chain-of-Thought Reasoning Mekanizmasi
- Thinking Budget Yonetimi
- Matematik ve Kodlama Performansi
- API Entegrasyonu ve Kod Ornekleri
- Standart vs Extended Thinking Karsilastirmasi
- Mobil Uygulamalarda Kullanim Senaryolari
- Best Practices ve Optimizasyon
- Sonuc ve Oneriler
1. Extended Thinking Nedir?
Extended Thinking, Claude'un karmasik problemleri cozme sirasinda ic monolog yurutmesini saglayan bir ozelliktir. Normal modda Claude dogrudan cevap uretirken, Extended Thinking modunda once "dusunme tokenlerini" kullanarak problemi analiz eder, hipotezler olusturur, bunlari dogrular ve ancak ondan sonra nihai cevabi verir.
Temel Calisma Prensibi
Standart LLM calisma sekli su sekildedir:
swift
1Input → Model → Output(tek adim)Extended Thinking ise su adimlari izler:
swift
1Input → Dusunme Asamasi(reasoning tokens) → Dogrulama → OutputBu yaklasim, ozellikle su alanlarda buyuk fark yaratir:
- Matematik problemleri: Cok adimli hesaplamalarda %40'a varan dogruluk artisi
- Kod yazimi: Karmasik algoritmalarda hata oranini %60 azaltma
- Mantik yurutme: Paradokslar ve edge case'lerde tutarli cevaplar
- Analitik gorevler: Cok degiskenli karar verme sureclerinde daha iyi sonuclar
💡 Pro Tip: Extended Thinking, kisa ve basit sorularda gereksiz overhead yaratir. "Turkiye'nin baskenti neresi?" gibi sorular icin standart mod yeterlidir. Karmasik analiz, kodlama ve matematik icin Extended Thinking'i aktif et.
Dusunme Tokenleri (Thinking Tokens)
Extended Thinking'in temelinde "thinking tokens" kavrami yatar. Bu tokenler, kullaniciya gosterilmeyen ama modelin iç dusunme surecini olusturan ara adimlardir. Claude, bu tokenler araciligiyla:
- Problem ayrismasi yapar — buyuk problemi alt problemlere boler
- Hipotez olusturur — olasi cozumleri siralar
- Dogrulama yapar — her hipotezi test eder
- Sentez gerceklestirir — en iyi cozumu secer ve sunar
typescript
1// Extended Thinking API cagirisi ornegi2const response = await anthropic.messages.create({3 model: 'claude-sonnet-4-20250514',4 max_tokens: 16000,5 thinking: {6 type: 'enabled',7 budget_tokens: 10000 // dusunme icin ayrilmis token butcesi8 },9 messages: [{10 role: 'user',11 content: 'Bu recursive fonksiyonun zaman karmasikligini analiz et...'12 }]13});14 15// Dusunme surecini ve sonucu ayri ayri al16const thinkingBlock = response.content.find(b => b.type === 'thinking');17const textBlock = response.content.find(b => b.type === 'text');18 19console.log('Dusunme sureci:', thinkingBlock?.thinking);20console.log('Nihai cevap:', textBlock?.text);2. Chain-of-Thought Reasoning Mekanizmasi
Chain-of-Thought (CoT), Extended Thinking'in kalbindeki mekanizmadir. Bu yaklasim, 2022'de Google Brain arastirmacilari tarafindan populerlesen bir teknik olup, LLM'lerin karmasik gorevlerde performansini onemli olcude artirmistir.
CoT Adimlari
Claude'un Extended Thinking'de takip ettigi tipik CoT adimlari:
python
1# Ornek: Claude'un ic dusunme sureci (thinking tokens)2"""3Adim 1: Problemi anlama4- Kullanici bir binary tree'de en uzun yol bulmami istiyor5- Bu klasik "diameter of binary tree" problemi6 7Adim 2: Yaklasim secimi8- DFS ile her node'un sol ve sag derinligini hesaplayabilirim9- Her node icin diameter = sol_derinlik + sag_derinlik10- Global maximum'u takip etmem gerekiyor11 12Adim 3: Edge case kontrolleri13- Bos agac → 014- Tek node → 015- Sadece sol/sag alt agac → derinlik16 17Adim 4: Cozumu kodlama18- Recursive DFS fonksiyonu yaziyorum19- Her cagirimda max_diameter guncelliyorum20- Time: O(n), Space: O(h) - h agac yuksekligi21 22Adim 5: Dogrulama23- Ornek agac ile test ediyorum: [1,2,3,4,5]24- Beklenen diameter: 3 (4→2→1→3 veya 5→2→1→3)25- Kodumun ciktisi: 3 ✓26"""Reasoning Tokenlerin Fiyatlandirmasi
Extended Thinking'de fiyatlandirma onemli bir faktor. Thinking tokenleri, standart output token fiyatiyla ucretlendirilir ancak sonuca dahil edilmez:
Ozellik | 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 ayni) |
Ortalama cevap suresi | 2-5 saniye | 10-60 saniye |
Dogruluk (matematik) | %72 | %95+ |
Dogruluk (kodlama) | %78 | %92+ |
💡 Pro Tip: Thinking token butcesini gorevin karmasikligina gore ayarla. Basit bir refactoring icin 5K token yeterken, karmasik bir sistem tasarimi icin 20K+ token gerekebilir.
3. Thinking Budget Yonetimi
Thinking budget, Extended Thinking'in en kritik parametresidir. Cok dusuk ayarlarsan model yeteri kadar dusunemez, cok yuksek ayarlarsan gereksiz maliyet ve gecikme olusur.
Budget Stratejileri
typescript
1// Gorev tipine gore dinamik budget ayarlama2function getThinkingBudget(taskType: string): number {3 const budgets: Record = { 4 'simple_question': 0, // Extended Thinking gereksiz5 'code_review': 5000, // Orta karmasiklik6 'algorithm_design': 10000, // Yuksek karmasiklik7 'system_architecture': 15000, // Cok yuksek karmasiklik8 'math_proof': 20000, // Maksimum dusunme gerekli9 'debugging_complex': 12000, // Karmasik hata ayiklama10 };11 return budgets[taskType] ?? 8000; // Varsayilan: 8K12}13 14// Kullanim15const 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 ulasildiginda Claude dusunmeyi keser ve mevcut bilgiyle cevap uretir. Bu durum su sorunlara yol acabilir:
- Eksik analiz: Tum edge case'ler degerlendirilmemis olabilir
- Yanlis sonuc: Dogrulama adimi atlanmis olabilir
- Tutarsizlik: Dusunme zinciri yarim kalmis olabilir
Bu durumdan kacinmak icin:
- Iteratif yaklasim kullan — once dusuk budget ile dene, yetersizse artir
- Streaming kullan — dusunme surecini canli izle
- Fallback mekanizmasi kur — budget asiminda yeniden dene
typescript
1// Streaming ile dusunme surecini 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('[Dusunme]', 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 Performansi
Extended Thinking'in en parlak oldugu alan, cok adimli mantik yurutme gerektiren gorevlerdir. Ozellikle matematik ve kodlama benchmark'larinda dramatik iyilesmeler gorulur.
Matematik Benchmark'lari
MATH, GSM8K ve AIME gibi standart benchmark'larda Extended Thinking'in etkileri:
Benchmark | Standart | Extended Thinking | Iyilesme |
|---|---|---|---|
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 Performansi Ornegi
Bir iOS uygulamasinda karmasik bir cache mekanizmasi tasarlamak istedigini dusun. Extended Thinking bu gorevi su sekilde ele alir:
swift
1// Claude Extended Thinking'in uretebildigi karmasik cache cozumu2// Dusunme sureci: 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 ornekte Claude, Extended Thinking sayesinde su detaylari dusunup uygulamistir:
- Actor kullanimi: ile thread safety
- TTL mekanizmasi: ile otomatik expire
- LRU eviction: ile bellek yonetimi
- Access tracking: ile akilli onceliklendirme
Swift ile Async/Await ve iOS Security yazilarinda da benzer karmasik cozumler icin Extended Thinking kullanimini gorebilirsin. Ayrica Claude Code Hooks ile otomasyon yazimizda bu sureci CI/CD'ye entegre etmeyi anlatiyoruz.
5. API Entegrasyonu ve Kod Ornekleri
Extended Thinking'i kendi uygulamanda kullanmak icin Anthropic API entegrasyonu gerekir. Istiyor bir iOS uygulamasinda, istiyor bir backend servisinde kullanabilirsin.
iOS Uygulamasinda Entegrasyon
swift
1// iOS'ta Claude Extended Thinking API cagirisi2import 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 anahtarini dogrudan kullanma. Backend proxy uzerinden cagir:
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 bloklarini 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 basarisiz' });42 }43});💡 Pro Tip: Extended Thinking cevaplari standart cevaplardan 3-10x daha uzun surebilir. Mobil uygulamada kullaniciya loading state goster ve opsiyonel olarak streaming kullan.
6. Standart vs Extended Thinking Karsilastirmasi
Her gorev icin Extended Thinking gerekli degil. Dogru modu secmek hem maliyet hem performans acisinden kritiktir.
Ne Zaman Extended Thinking Kullan?
Senaryo | Standart Mod | Extended Thinking | Onerimiz |
|---|---|---|---|
Basit soru-cevap | ✅ Yeterli | ❌ Gereksiz | Standart |
Kod refactoring | ✅ Cogu durumda | ✅ Karmasik refactor | Duruma gore |
Algoritma tasarimi | ⚠️ Hatali olabilir | ✅ Cok daha iyi | Extended |
Matematik ispati | ❌ Yetersiz | ✅ Kesinlikle | Extended |
Yazi yazma | ✅ Yeterli | ⚠️ Over-thinking | Standart |
Sistem mimarisi | ⚠️ Yuzeysel | ✅ Derinlemesine | Extended |
Bug tespit | ⚠️ Basit bug'lar | ✅ Karmasik bug'lar | Duruma gore |
Guvenlik analizi | ⚠️ Temel kontrol | ✅ Kapsamli audit | Extended |
Maliyet-Performans Analizi
swift
1Ornek: 1000 istek/gun senaryosu2 3Standart Mod:4- Ortalama input: 2K token × $3/1M = $0.0065- Ortalama output: 1K token × $15/1M = $0.0156- Gunluk 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- Gunluk maliyet: 1000 × ($0.006 + $0.015 + $0.12) = $14113 14Fark: $120/gun(%670 artis)Bu nedenle, her istegi Extended Thinking'e yonlendirmek yerine, gorev karmasikligina gore dinamik routing yap.
CI/CD Pipeline yazimizda otomatik test sureclerinde benzer maliyet optimizasyonu stratejilerini bulabilirsin. MCP protokolu ve Claude Code IDE entegrasyonu yazilarinda da Extended Thinking'i farkli ortamlarda kullanma senaryolarini ele aldik.
7. Mobil Uygulamalarda Kullanim Senaryolari
Extended Thinking, mobil uygulama gelistirme surecinde bircok noktada hayat kurtarici olabilir.
Senaryo 1: Otomatik Kod Inceleme
typescript
1// PR review icin Extended Thinking kullanimi2async function reviewPullRequest(diff: string): Promise { 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 acisindan incele:10 - Memory leak riski var mi?11 - Thread safety ihlali var mi?12 - Performance darbogazlari var mi?13 - SOLID prensipleri uygulanmis mi?14 15 Diff:16 ${diff}`17 }]18 });19 20 return parseReviewResponse(response);21}Senaryo 2: Crash Log Analizi
Karmasik crash log'larini analiz etmek icin Extended Thinking mukemmeldir. Model, stack trace'i adim adim inceleyerek root cause'u tespit edebilir.
Senaryo 3: Mimari Karar Destek
Yeni bir feature eklerken mimari kararlar almak icin Extended Thinking'i kullanabilirsin. Model, mevcut mimarini analiz edip en uygun yaklasimi onerebilir.
SwiftUI Performance ve Clean Architecture yazilarinda bu tip mimari karar sureclerini detayli inceledik.
8. Best Practices ve Optimizasyon
Prompt Muhendisligi
Extended Thinking ile en iyi sonuclari almak icin prompt'larini optimize et:
typescript
1// Kotu prompt2const badPrompt = "Bu kodu duzelt";3 4// Iyi prompt (Extended Thinking icin optimize)5const goodPrompt = `6Bu Swift kodunu asagidaki kriterlere gore analiz et ve iyilestir:7 81. Memory management: Retain cycle var mi?92. Concurrency: Actor isolation dogru mu?103. Performance: Gereksiz allocation var mi?114. Error handling: Tum hata durumlari ele alinmis mi?12 13Her kriter icin:14- Mevcut durum analizi15- Tespit edilen sorunlar16- Cozum onerisi ve kod ornegi17 18Kod:19[kod buraya]20`;Caching Stratejisi
Ayni veya benzer sorgular icin cevaplari cache'le:
typescript
1import { createHash } from 'crypto';2 3const responseCache = new Map(); 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 cevaplarini Firestore'da cache'leyerek ayni sorgular icin tekrar API cagirisi yapmaktan kacin. Bu hem maliyeti dusurur hem response time'i iyilestirir. Firebase Advanced Patterns yazimizda cache stratejilerini detayli ele aldik.
Sonuc ve Oneriler
Claude Extended Thinking, AI destekli gelistirme surecinde oyun degistiren bir ozellik. Ozellikle karmasik algoritmalar, mimari kararlar ve guvenlik analizi gibi derinlemesine dusunme gerektiren gorevlerde standart moda kiyasla cok ustun sonuclar veriyor.
Onemli cikarimlari:
- Her gorev icin Extended Thinking kullanma — maliyet ve gecikme artar
- Thinking budget'i gorev tipine gore ayarla — dinamik budget stratejisi uygula
- Streaming kullan — uzun dusunme sureclerinde kullanici deneyimini iyilestir
- Cache mekanizmasi kur — tekrar eden sorgularda maliyeti dusur
- Backend proxy pattern uygula — API anahtarini istemcide tutma
Extended Thinking, ozellikle Flutter Clean Architecture veya Structured Concurrency gibi karmasik konularda kod yazarken inanilmaz faydali. DeepSeek R1'in acik kaynak dusunce zinciri yaklasimiyla karsilastirmak da ilginc bir perspektif sunuyor. Denemeni siddetle 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! Iste sana ozel bir kaynak: Anthropic'in acik kaynakli [anthropic-cookbook](https://github.com/anthropics/anthropic-cookbook) reposu. Burada Extended Thinking dahil tum Claude ozelliklerinin canli, calisir orneklerini bulabilirsin. Ozellikle "extended-thinking" klasorundeki Jupyter notebook'lari bire bir uygulayarak ogrenebilirsin.

