ReAct Pattern (Reasoning + Acting) 2026: Türkçe Derin Teknik Rehber — Akademiden Production'a
ReAct Pattern (Reasoning + Acting) için Türkçe en kapsamlı teknik rehber: akademik temel (Yao et al. 2022 ICLR paper - 'ReAct: Synergizing Reasoning and Acting in Language Models'), CoT vs ReAct farkı, Thought-Action-Observation döngüsü detayı, 5 ReAct varyantı (Vanilla ReAct, MRKL, Self-Ask, ReWOO, Plan-and-Execute), LangChain + LangGraph + LlamaIndex ReAct implementations, agentic tool use entegrasyonu (Search, Calculator, Database, Custom), 25+ Türkçe pratik örnek (web araştırma, hukuki sorgu, mali analiz, çoklu API), error handling (max iterations, infinite loops), production deployment, observability (LangSmith trace analizi), maliyet optimizasyonu, modeller arası karşılaştırma (GPT-5 / Claude / o3 ReAct davranışları).
Tek cümlelik cevap: ReAct Pattern LLMlere Düşünce-Eylem-Gözlem döngüsü yaptıran modern agentic AI mimarisi — Yao 2022 paper, CoT'tan farklı olarak dış dünya ile etkileşir, 5 varyantı var, LangChain/LangGraph üzerinde production-grade.
- ReAct Pattern (Reasoning + Acting) — LLM'lere DÜŞÜNCE üretip ardından EYLEM (tool call) yapan ve sonucu OBSERVATION olarak alıp tekrar düşündüğü iteratif paradigma. Yao et al. 2022 paper'ında tanıtıldı, modern agentic AI'ın temel teknik mimarisi.
- CoT (Chain-of-Thought) vs ReAct fark: CoT YALNIZ düşünce zinciri (içsel), ReAct düşünce + dış dünya etkileşim (web search, DB query, API call). Sonuç: ReAct daha az hallucination, daha güncel bilgi, multi-step task çözümü.
- Thought-Action-Observation (T-A-O) döngüsü: (1) Thought - 'Şunu yapmalıyım çünkü...', (2) Action - 'search(query)', (3) Observation - tool çıktısı, (4) Thought - 'Bilgi yeterli, cevap...', son: Answer.
- 5 ReAct varyantı: (1) Vanilla ReAct, (2) MRKL (Modular Reasoning Knowledge Language), (3) Self-Ask, (4) ReWOO (Reasoning without Observation), (5) Plan-and-Execute. Her biri farklı problem için optimize.
- 2024-2026 production: LangChain AgentExecutor, LangGraph state machine, Anthropic SDK + Claude Code, OpenAI Function Calling + Assistants API hepsi ReAct paradigması üzerinde inşa edildi.
- Türk kullanım: Türkçe doğal dil ile ReAct çalışır AMA Thought adımları çoğu modelde İngilizce ürer (model native), Action + Final Answer Türkçe. Hybrid yaklaşım.
- 25+ Türkçe pratik ReAct örnek: web araştırma (Tavily, SerpAPI), KVKK uyum sorgu, Türk hukuki içtihat arama, finansal hesaplama (Türk bankası faiz), multi-API workflow (Trendyol fiyat + döviz API), customer support agent, code execution sandbox, dosya analizi.
1. Giriş: ReAct Nedir, Neden Devrim?
- ReAct Pattern (Reasoning + Acting)
- LLM'lere REASONING (düşünme) ve ACTING (eylem yapma — tool çağırma, API call, web search) adımlarını BİRLEŞTİREREK iteratif çözüm üreten prompt mühendisliği paradigması. Yao, Zhao, Yu, Du, Shafran, Narasimhan ve Cao tarafından 2022'de Princeton ve Google Research'te geliştirildi. ICLR 2023'te yayınlandı. Modern agentic AI sistemlerinin (LangChain, AutoGen, Anthropic SDK) temel teknik temelidir.
1.1 Modern Agentic AI'ın Doğuşu
ReAct, 2022 yılında agentic AI alanını dönüştürdü. Önceden:
- Chain-of-Thought: Sadece düşünme (içsel akıl yürütme)
- Tool-use papers: Tool kullanma ama düşünce zayıf
- ReAct: İkisini BİRLEŞTİRDİ — düşün, sonra hareket et, sonucu gör, tekrar düşün.
1.2 Bu Rehberin Farkı
2. CoT vs ReAct — Fundamental Fark
2.1 Chain-of-Thought Hatırlatma
CoT, modelin SADECE içsel düşünce zincirini açıkça yazmasını sağlar:
Soru: "İstanbul'da bugün hava nasıl?" CoT cevap: "Adım adım düşüneyim. İstanbul Türkiye'de büyük bir şehir. Hava değişkenlik gösterir. Hava durumu API'sine erişimim yok, bu yüzden..."
Sorun: CoT modelin BİLDİĞİ ile sınırlı. Güncel bilgi yok, dış dünya etkileşimi yok.
2.2 ReAct Çözümü
Aynı soruyu ReAct ile:
Thought 1: İstanbul'un bugünkü havasını bilmek için bir hava durumu API'sini sorgulamalıyım. Action 1: weather_api("İstanbul") Observation 1: "İstanbul, 15 Mart 2026: 14°C, parçalı bulutlu, nem %65" Thought 2: Şimdi bu bilgiyi kullanıcıya doğal dilde sunabilirim. Answer: İstanbul'da bugün 14°C, parçalı bulutlu, nem %65.
ReAct'ın gücü: Düşünce + dış dünya etkileşim → güncel, doğru, multi-step cevaplar.
2.3 Karşılaştırmalı Tablo
| Boyut | Chain-of-Thought | ReAct | Pure Tool Use |
|---|---|---|---|
| Reasoning | Var | Var | Yok |
| Tool kullanımı | Yok | Var | Var |
| İteratif | Hayır | Evet | Çoğunlukla hayır |
| Güncel bilgi | Hayır | Evet | Evet |
| Hallucination riski | Yüksek | Düşük | Düşük |
| Token usage | 1-2x | 3-10x | 2-5x |
| Latency | Düşük | Orta-yüksek | Orta |
| Complexity | Düşük | Yüksek | Orta |
| Use case | Math, logic | Multi-step + dış bilgi | Tek-tool görev |
3. Yao et al. 2022 — Tarihi Paper
3.1 Paper Detayları
Başlık: ReAct: Synergizing Reasoning and Acting in Language Models
Yazarlar: Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao
Yayın: ICLR 2023 (Mart 2022'de arxiv'e yüklendi)
Kurumlar: Princeton University + Google Research
3.2 Ana Bulgular
Benchmark performansı:
| Benchmark | Standart | CoT | ReAct | ReAct + Self-Consistency |
|---|---|---|---|---|
| HotpotQA (multi-hop) | %27.3 | %29.4 | %35.1 | %44.0 |
| FEVER (fact verify) | %56.3 | %56.4 | %62.0 | %64.6 |
| AlfWorld (task) | %17.1 | %17.1 | %71.0 | - |
| WebShop (e-commerce) | %9.1 | %4.7 | %40.0 | - |
AlfWorld 71% sıçraması özellikle dikkat çekici — text-based household task ortamında ReAct CoT'tan 54 puan üstün.
3.3 Paper'ın Önemli Tespitleri
4. Thought-Action-Observation Döngüsü Detayı
4.1 Standart ReAct Format
ReAct prompt'ı şu yapıyı izler:
Thought: [Modelin ne düşündüğü] Action: [Hangi tool, hangi argümanlarla] Observation: [Tool çıktısı]
Bu üçlü her döngüde tekrar eder, sonunda:
Thought: Tüm bilgiyi topladım. Answer: [Final cevap]
4.2 Klasik Örnek (Yao paper)
Soru: "Aside from the Apple Remote, what other devices can control the program Apple Remote was originally designed to interact with?"
ReAct çıktısı:
Thought 1: I need to search Apple Remote and find the program it was originally designed to interact with. Action 1: Search[Apple Remote] Observation 1: The Apple Remote is a remote control introduced in October 2005 by Apple. It was originally designed to control the Front Row media center program on the iMac G5.
Thought 2: Apple Remote was originally designed to control Front Row. I need to search Front Row. Action 2: Search[Front Row] Observation 2: Front Row is a discontinued media center software. It is controlled by the Apple Remote or keyboard function keys.
Thought 3: Front Row is controlled by Apple Remote and keyboard function keys. So keyboard function keys can also control Front Row. Answer: Keyboard function keys.
4.3 Yapısal Anatomi
| Bileşen | İşlev | Kim Üretir? |
|---|---|---|
| Thought | Plan + reasoning | LLM |
| Action | Tool call (parametre ile) | LLM |
| Observation | Tool çıktısı | Tool/Environment |
| Answer (final) | User-facing cevap | LLM |
4.4 Türkçe ReAct Örneği
Soru: "Trendyol'un 2025 cirosu ne kadardı? Bu rakam 2024'ten ne kadar değişti?"
ReAct çıktısı:
Thought 1: Trendyol'un 2025 cirosunu bulmak için web search yapmalıyım. Action 1: web_search("Trendyol 2025 yıllık ciro açıklaması") Observation 1: Trendyol 2025 yıllık ciro 200 milyar TL açıklandı (Şubat 2026 raporu).
Thought 2: 2024 cirosunu da bulmalıyım karşılaştırma için. Action 2: web_search("Trendyol 2024 yıllık ciro") Observation 2: Trendyol 2024 cirosu 142 milyar TL (Şubat 2025 raporu).
Thought 3: Şimdi hesaplama yapayım. 200 - 142 = 58 milyar artış. Yüzde olarak: 58/142 = %40.8. Action 3: calculator(58 / 142 * 100) Observation 3: 40.8451
Thought 4: Bilgi tamamlandı. Final cevap hazır. Answer: Trendyol'un 2025 cirosu 200 milyar TL oldu, 2024'teki 142 milyar TL'ye göre %40.8 artış gösterdi.
5. 5 ReAct Varyantı Detaylı
5.1 Varyant 1: Vanilla ReAct
Orijinal Yao 2022 paper'daki standart yaklaşım. Thought-Action-Observation döngüsü, max iteration (genelde 5-15).
Use case: Genel amaçlı multi-step QA, web research.
Strengths: Basit, anlaşılır, debug edilebilir.
Weaknesses: Maliyet artar her döngüde, infinite loop riski.
5.2 Varyant 2: MRKL (Modular Reasoning Knowledge Language)
- MRKL System
- AI21 Labs tarafından 2022'de tanıtılan (Karpas et al.), 'mirakkel' okuyan, Modular Reasoning Knowledge Language System. LLM'i merkezi 'router' olarak kullanır ve farklı uzman modüllere (calculator, database, calendar, web search) yönlendirir. ReAct'ın özelleşmiş tool routing varyantı.
Pattern: Genel LLM + Specialized Modules (matematik için calculator, fact için database, vb.)
Avantajı: Spesifik domain'lerde uzman tool'lar daha doğru.
5.3 Varyant 3: Self-Ask
- Self-Ask
- Press et al. 2022 paper'ında tanıtılan ReAct varyantı. Model kendine alt-sorular sorar ve cevap verir. 'Soru: X? -> İlk alt soru: Y? -> Cevap: Z -> Final cevap: ...' formatı.
Pattern:
Soru: "Joe Biden ABD'nin 46. başkanı oldu. 45. başkan kimdi?"
Are follow-up questions needed? Yes. Follow-up: Who was the 45th US president? Intermediate answer: Donald Trump. So the final answer is: Donald Trump.
Avantajı: Multi-hop reasoning'i daha doğal kurar.
5.4 Varyant 4: ReWOO (Reasoning WithOut Observation)
- ReWOO
- Xu et al. 2023 paper'ında tanıtılan ReAct varyantı. Klasik ReAct'ta her observation'dan sonra model bir kez daha LLM call yapar (pahalı). ReWOO ÖNCE TÜM PLAN'I yapar, sonra tool'ları paralel çalıştırır, en son tek LLM call ile sentez yapar. Token tasarrufu %50-70.
Pattern:
Plan:
- plan_1 = web_search("Trendyol 2025 ciro")
- plan_2 = web_search("Trendyol 2024 ciro")
- plan_3 = calculator(plan_1 - plan_2)
- Synthesize all results into answer
Execute all → Final answer.
Avantajı: Maliyet düşük, latency düşük (paralel execution).
Dezavantajı: Plan'da hata varsa, sonradan düzeltemez.
5.5 Varyant 5: Plan-and-Execute (LangChain)
LangChain'in introduce ettiği pattern. Önce planner LLM bir plan oluşturur (multiple steps), executor LLM bu planı sırayla uygular.
Pattern:
Planner: Step 1: Search Trendyol 2025 revenue. Step 2: Search Trendyol 2024 revenue. Step 3: Calculate difference. Step 4: Format answer.
Executor: Her step'i sırayla yapar.
Avantajı: Net planlama + execution ayrımı. Plan'ı insan onaylayabilir.
5.6 Karşılaştırma Tablosu
| Varyant | Token Cost | Latency | Use Case |
|---|---|---|---|
| Vanilla ReAct | Yüksek (5-10x) | Yüksek (sequential) | Genel QA, exploration |
| MRKL | Orta (3-5x) | Orta | Domain-specific tool routing |
| Self-Ask | Orta | Orta | Multi-hop factual |
| ReWOO | Düşük (2-3x) | Düşük (parallel) | Bilinen plan + öngörülebilir |
| Plan-and-Execute | Orta | Orta | Long-running tasks |
6. Modern LangChain ReAct Implementation
6.1 Basit ReAct Agent (Python)
from langchain.agents import AgentExecutor, create_react_agent
from langchain_anthropic import ChatAnthropic
from langchain.tools import Tool
from langchain_community.tools import DuckDuckGoSearchRun
# Tools tanımla
search = DuckDuckGoSearchRun()
tools = [
Tool(name="Search", func=search.run, description="Web search yapar")
]
# Model
llm = ChatAnthropic(model="claude-sonnet-4-5")
# ReAct agent oluştur
agent = create_react_agent(llm, tools, prompt=react_prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True, max_iterations=10)
# Çalıştır
result = executor.invoke({"input": "Trendyol'un 2025 cirosu ne kadar?"})
6.2 LangGraph State Machine (Modern Pattern)
LangGraph 2024-2026'da ReAct'ın yerini almaya başladı — daha esnek, debug edilebilir state machine:
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated, Sequence
class AgentState(TypedDict):
messages: Annotated[Sequence, "Conversation history"]
next_step: str
def reason(state):
# Model düşünce üret
response = llm.invoke(state['messages'])
return {"messages": state['messages'] + [response], "next_step": parse_next(response)}
def act(state):
# Tool çağır
tool_result = call_tool(state['next_step'])
return {"messages": state['messages'] + [tool_result]}
# Graph oluştur
workflow = StateGraph(AgentState)
workflow.add_node("reason", reason)
workflow.add_node("act", act)
workflow.add_edge("reason", "act")
workflow.add_conditional_edges("act", lambda s: "reason" if needs_more(s) else END)
workflow.set_entry_point("reason")
app = workflow.compile()
6.3 OpenAI Function Calling Pattern
OpenAI 2023'te native function calling ekledi — JSON-tabanlı ReAct varyantı:
from openai import OpenAI
client = OpenAI()
tools = [
{
"type": "function",
"function": {
"name": "web_search",
"description": "Web search yapar",
"parameters": {
"type": "object",
"properties": {"query": {"type": "string"}},
"required": ["query"]
}
}
}
]
messages = [{"role": "user", "content": "Trendyol 2025 ciro nedir?"}]
response = client.chat.completions.create(
model="gpt-5",
messages=messages,
tools=tools,
tool_choice="auto"
)
# Eğer tool call gerek
if response.choices[0].message.tool_calls:
for tc in response.choices[0].message.tool_calls:
result = execute_tool(tc.function.name, tc.function.arguments)
messages.append({"role": "tool", "content": result, "tool_call_id": tc.id})
# Final response
final = client.chat.completions.create(model="gpt-5", messages=messages)
7. Tool Tasarımı — En Önemli Konu
7.1 İyi Tool 8 Prensibi
7.2 Tool Description Örnekleri (Türkçe)
Kötü description: "Search"
İyi description: "web_search: Verilen sorgu için DuckDuckGo'da güncel web araması yapar. Argüman: query (string, aranacak metin). Çıktı: Top 5 sonucun başlık + URL + 2-3 cümlelik özet listesi. Kullanım: gerçek dünya bilgisi, güncel olaylar, tarihler, istatistikler için."
Çok iyi description (with example): "web_search: Web araması yapar.
Parametreler:
- query (string, required): Aranacak metin (Türkçe veya İngilizce)
- num_results (int, opsiyonel, default 5): Kaç sonuç dönsün
Çıktı: JSON list [{"title": "...", "url": "...", "snippet": "..."}, ...]
Kullanım örneği: web_search(query="Trendyol 2025 ciro", num_results=3)
Ne zaman kullan:
- Güncel bilgi (eğitim verisinden sonra olaylar)
- İstatistik, finansal veri
- Şirket bilgileri
Ne zaman KULLANMA:
- Genel matematik
- Bilinen kavram açıklama
- Yaratıcı yazım"
7.3 Yaygın Tool Tipleri
| Tool | İşlev | Provider Örnekleri |
|---|---|---|
| Web Search | Güncel web bilgisi | DuckDuckGo, Tavily, SerpAPI, Brave |
| Calculator | Hesaplama | Python eval, sympy |
| Database Query | SQL sorgu | Postgres, MySQL, MongoDB |
| Vector Search | Semantic search | Pinecone, Weaviate, Chroma |
| Code Execution | Python sandbox | Code Interpreter, e2b |
| File Read/Write | Disk I/O | Standard library |
| API Call | External REST API | requests, httpx |
| Email Send | Email göndermek | SendGrid, AWS SES |
| Calendar | Tarih/saat sorgu | Google Calendar API |
| Browser Use | Web sayfası ile etkileşim | Playwright, Puppeteer |
| Image Analysis | Görsel anlama | GPT-4V, Claude Vision |
| Audio Transcribe | Ses → metin | Whisper, Deepgram |
8. 25+ Türkçe Pratik ReAct Örnek
8.1 Web Araştırma + Sentez
Görev: "Türk fintech sektörünün 2025 büyüme verilerini bul ve özetle."
ReAct trace:
Thought 1: Türk fintech sektörü 2025 verisi için web search yapmalıyım. Action 1: web_search("Türk fintech sektörü 2025 büyüme TÜBİSAD") Observation 1: TÜBİSAD raporu - Türk fintech 2025'te 18 milyar TL büyüklüğe ulaştı, %35 büyüme.
Thought 2: Daha detaylı veri için ek araştırma. Action 2: web_search("Türk fintech 2025 yatırım sayısı startup") Observation 2: 2025'te 45 yeni fintech startup, $200M+ yatırım çekildi.
Thought 3: Yeterli bilgi toplandı, özet hazır. Answer: Türk fintech sektörü 2025'te 18 milyar TL büyüklüğe ulaşarak %35 büyüme gösterdi. 45 yeni startup kuruldu ve sektör 200M+ dolar yatırım çekti. (TÜBİSAD verisi)
8.2 KVKK Uyum Sorgu
Görev: "Yeni AI ürünüm için KVKK Madde 9 (yurt dışı transfer) uyum gereksinimleri neler?"
Thought 1: KVKK Madde 9 detayını araştırmalıyım. Action 1: kvkk_database_search("Madde 9 yurt dışı veri transferi") Observation 1: KVKK Madde 9: (a) açık rıza, VEYA (b) yeterli koruma kararı olan ülkeler, VEYA (c) yeterli korumayı sağlayan taahhütname.
Thought 2: AI servis sağlayıcı bilgisini de almalıyım (OpenAI, Anthropic). Action 2: vector_search("OpenAI KVKK uyum, EU residency") Observation 2: OpenAI ChatGPT Plus standart sözleşme - veri ABD'de işlenir. ChatGPT Team/Enterprise EU residency opt-in mevcut.
Thought 3: Şimdi öneri sentezi yapabilirim. Answer: KVKK Madde 9'a uygun AI ürün için 3 strateji: (1) ChatGPT Enterprise + EU residency, (2) Mistral Le Chat (Paris datacenter native), (3) Self-host model (Türkiye datacenter). Açık rıza alma + DPA imzalama + VERBİS kayıt zorunludur.
⚠️ Bu örnek genel rehber; KVKK Sertifikalı uzman onayı şarttır.
8.3 Mali Analiz + Hesaplama
Görev: "100K TL'yi 5 yıl bileşik faizle %20 yıllık nominal getirde nasıl artar? Enflasyon %35 ise reel getiri nedir?"
Thought 1: Bileşik faiz formülünü uygulamalıyım. Action 1: calculator((100000 * (1.20)**5)) Observation 1: 248832
Thought 2: Şimdi enflasyon düşülü reel getiri hesabı. Action 2: calculator(((1.20/1.35)**5 - 1) * 100) Observation 2: -43.81
Thought 3: Sonuçları yorumlamalıyım. Answer: 100.000 TL nominal olarak 5 yıl sonra 248.832 TL oluyor. AMA %35 enflasyon altında reel getiri NEGATİF: %-43.8. Yani satın alma gücünüz azalıyor.
8.4 Çoklu API — E-ticaret Fiyat Karşılaştırma
Görev: "iPhone 15 Pro 256GB'ın Trendyol vs Hepsiburada vs Apple Store fiyatlarını karşılaştır."
Thought 1: 3 ayrı kaynak için fiyat sorgulamam gerek. Action 1: web_scrape("trendyol.com/iphone-15-pro-256gb") Observation 1: Trendyol: 64.999 TL (indirimli), normal 75.999 TL.
Action 2: web_scrape("hepsiburada.com/iphone-15-pro-256gb") Observation 2: Hepsiburada: 65.499 TL, 12 ay 5.458 TL'den taksit.
Action 3: web_scrape("apple.com/tr/shop/iphone-15-pro") Observation 3: Apple Store: 79.999 TL.
Thought 2: Karşılaştırma tablosu hazırlayabilirim. Answer:
| Kaynak | Fiyat | Not |
|---|---|---|
| Trendyol | 64.999 TL | İndirim aktif |
| Hepsiburada | 65.499 TL | 12 ay taksit imkanı |
| Apple Store | 79.999 TL | Garanti + servis premium |
En ucuz: Trendyol (15.000 TL avantaj).
8.5 Customer Support Agent
Görev: "Müşteri 'siparişim 5 günde gelmedi' diyor. Yardım et."
Thought 1: Önce müşterinin sipariş bilgisini bulmalıyım. Action 1: ask_user("Sipariş numaranızı paylaşır mısınız?") Observation 1: Müşteri "TR-2026-A123" yazdı.
Action 2: order_database.lookup("TR-2026-A123") Observation 2: Sipariş tarihi 2026-03-10, durum: kargoda, tahmin teslim 2026-03-15.
Thought 2: Sipariş bugün (15 Mart) için tahminli. Önce kargo durumunu kontrol edeyim. Action 3: cargo_tracking_api("TR-2026-A123") Observation 3: Son güncelleme: kargo Ankara hub'ında, dağıtım için yola çıktı 14:30.
Thought 3: Bilgi yeterli, müşteriye doğal cevap. Answer: Merhaba, sipariş #TR-2026-A123 bugün dağıtıma çıktı. Kargo aracında, akşam saatlerinde elinize ulaşacak. Sabırınız için teşekkür ederiz.
8.6 Code Debug Agent
Görev: "Python kodum 'TypeError: unsupported operand type(s) for +: int and str' hatası veriyor. Debug et."
Thought 1: Hatanın ne anlama geldiğini biliyorum — int + str karışımı. Kodu görmem gerek. Action 1: read_file("script.py") Observation 1: Kod yüklendi. Satır 42: result = age + " years old"
Thought 2: Age int olarak tanımlanmış, string ile direkt + yapılamaz. Çözüm: str() ile cast. Action 2: edit_file("script.py", line=42, new_content='result = str(age) + " years old"') Observation 2: Düzenleme başarılı.
Action 3: run_command("python script.py") Observation 3: Hata yok, çıktı: "30 years old"
Answer: Hata düzeltildi. Sorun satır 42'de int olan age'i string ile birleştirme çalıştırılıyordu. str(age) ile cast ettim, şimdi çalışıyor.
8.7 Dosya Analizi (RAG + ReAct)
Görev: "Şirket sözleşmesinde KVKK uyum maddeleri var mı? PDF'i incele."
Thought 1: PDF'i okumam ve KVKK maddelerini aramam gerek. Action 1: pdf_load("kontrat.pdf") Observation 1: PDF 25 sayfa yüklendi, vector store'a indexlendi.
Action 2: vector_search("KVKK kişisel veri koruma") Observation 2: Sayfa 12: "Madde 18 - Veri Sorumlusu", Sayfa 13: "Madde 19 - Veri Sahibi Hakları"
Action 3: pdf_extract("kontrat.pdf", pages=[12, 13]) Observation 3: Madde 18 + 19 metni tam çıkarıldı.
Thought 2: İçerikleri analiz edip özetlemeliyim. Answer: Evet, KVKK maddeleri sayfa 12-13'te yer alıyor. Madde 18 veri sorumlusu, Madde 19 veri sahibi hakları (Madde 11 KVKK) içeriyor. AMA: yurt dışı veri transferi (Madde 9 referansı) eksik — eklenmesi önerilir.
8.8 Multi-Step Hukuki Sorgu
Görev: "Türk İş Kanunu'na göre 5 yıl çalışan birinin tazminat hakkı nedir?"
Thought 1: İş Kanunu Madde 25 + Madde 14 (kıdem tazminatı) maddelerini araştırmalıyım. Action 1: legal_database_search("Türk İş Kanunu Madde 14 kıdem tazminatı") Observation 1: Madde 14: Kıdem tazminatı, her yıl için 30 günlük brüt ücret tutarındadır. 5 yıl çalışan için 5 × 30 = 150 günlük (5 ay) brüt ücret tutarında.
Action 2: legal_database_search("kıdem tazminatı tavan 2026") Observation 2: 2026 yılı için kıdem tazminatı tavanı: 41.828 TL aylık.
Thought 2: Hesaplama yapayım — örneğin maaş 30.000 TL ise. Action 3: calculator(30000 * 5) Observation 3: 150000
Thought 3: Sonucu detaylı sunayım. Answer: 5 yıl çalışan bir kişi için kıdem tazminatı:
- Brüt maaş × 5 (yıl) = kıdem tazminat tutarı
- Aylık 30.000 TL maaş ise: 150.000 TL
- 2026 yılı için aylık tavan: 41.828 TL (yüksek maaşlar bu tavan ile sınırlı)
- İhbar tazminatı ayrı: 5 yıl çalışmış için 8 hafta (Madde 17)
⚠️ Hukuki uyarı: Bu genel rehberdir. İş Hukuku avukatına danışılmalıdır.
8.9 + 16 ek Türkçe örnek (özet)
(9) Akademik makale literature review (10) Veri analizi (CSV dosyası) (11) E-mail sınıflandırma + yanıt taslağı (12) Çeviri quality check (geri çeviri) (13) İçerik üretim + fact-check (14) Sosyal medya monitoring + sentiment (15) Stock analizi + tahmin (16) Türk hukuk içtihat arama (17) Otomatik rapor üretimi (18) Müşteri segmentasyon analizi (19) SEO optimizasyon checklist (20) Code review automation (21) Bug ticket triage (22) Meeting transcribe + action items (23) Personalized recommendation (24) Marketing campaign performance analysis (25) Database schema migration plan
Her biri için aynı T-A-O pattern uygulanır.
9. Error Handling ve Edge Cases
9.1 Yaygın Failure Mode'ları
| Hata Tipi | Tanım | Çözüm |
|---|---|---|
| Infinite Loop | Model aynı tool'u tekrar tekrar çağırır | max_iterations limit (5-10) |
| Tool Failure | API timeout, 500 error | Try-catch + retry logic |
| Invalid Tool Args | LLM yanlış format JSON | Schema validation + retry with error |
| Hallucinated Tool | LLM olmayan tool çağırır | Strict tool list + reject unknown |
| No Final Answer | Model sonsuz düşünür, cevap vermez | Force termination + summary |
| Token Exhaustion | Context window dolar | Summarize history + continue |
| Confused Reasoning | Aşırı uzun düşünce, alakasız | Re-prompt + simplification |
9.2 Best Practices
10. Maliyet Optimizasyonu
10.1 ReAct'ın Maliyet Karakteristiği
ReAct token usage'ı CoT'tan 3-10x fazladır çünkü:
- Her döngüde tüm history yeniden gönderiliyor
- Thought + Action + Observation hep prompt'ta
- Multi-iteration için cumulative cost
Örnek hesap:
Tek soru, 5 iteration ReAct, Claude Sonnet 4.6:
- Iteration 1: 500 token input + 200 output = $1.5/$3 = $4.5
- Iteration 2: 1000 + 200 = $3 + $3 = $6
- Iteration 3: 1700 + 200 = $5.1 + $3 = $8.1
- Iteration 4: 2400 + 200 = $7.2 + $3 = $10.2
- Iteration 5: 3300 + 300 = $9.9 + $4.5 = $14.4
Toplam: ~$43 (cents olmadan, sadece example token usage)
Aylık 1000 soru: ~$43,000... pratik için CoT vs ReAct cost karşılaştırması gerek.
10.2 Maliyet Düşürme Stratejileri
11. Observability — LangSmith Trace Patterns
11.1 İyi Bir Trace Yapısı
LangSmith'te ReAct trace'i ideal:
- Root: User query
- Child 1: Agent reasoning (LLM call 1)
- Child 2: Tool call (Search)
- Child 3: Tool response
- Child 4: Agent reasoning (LLM call 2)
- Child 5: Tool call (Calculator)
- Child 6: Tool response
- Child 7: Final synthesis (LLM call 3)
- End: Final answer
Her node'da: latency, token usage, cost.
11.2 Common Anti-Patterns Trace'te
- LLM call'lar arası 30+ saniye gecikme → tool yavaş
- 10+ iteration → infinite loop sınırı
- Output token > 500 → model gevezelik yapıyor
- Aynı tool 3+ kez aynı parametre ile çağrılıyor → infinite loop
12. Model Karşılaştırması — 2026
| Model | ReAct Skill | Tool Use Quality | Hızı | Maliyet |
|---|---|---|---|---|
| GPT-5 | Çok iyi | En iyi (native function calling) | Hızlı | Orta |
| o3 | Lider | İyi | Yavaş (reasoning) | Pahalı |
| Claude Opus 4 | Çok iyi | Çok iyi | Orta | Pahalı |
| Claude Sonnet 4.6 | Çok iyi | Çok iyi | Hızlı | Orta |
| Gemini 2.5 Pro | İyi | İyi | Hızlı | Ucuz |
| DeepSeek R1 | İyi (reasoning) | Orta | Orta | Çok ucuz |
| Llama 4 70B | Orta | Orta | Yerel hızlı | Self-host |
| Mistral Large 2 | İyi | İyi | Hızlı | Orta |
Tavsiye:
- Production: Claude Sonnet 4.6 veya GPT-5
- Karmaşık reasoning: o3
- Maliyet kritik: Gemini Flash veya DeepSeek
- KVKK + self-host: Llama 4 70B
13. Sık Sorulanlar
Soru: ReAct vs CoT hangisi daha iyi?
Soru: ReAct mı Plan-and-Execute mi?
ReAct adaptive (her adım plan değişebilir). Plan-and-Execute statik plan + execution. ReAct keşif gerektiren task'lar için, Plan-and-Execute öngörülebilir task'lar için.
Soru: LangChain mi LangGraph mı?
LangChain ReAct olgun ama LangGraph daha esnek, debug edilebilir. 2026'da LangGraph state machine pattern modern best practice.
Soru: Multiple agents (multi-agent system) ReAct kullanıyor mu?
Evet. Crew AI, AutoGen, LangGraph multi-agent — her agent ReAct paradigmasında çalışır + agentlar arası coordination ek katman.
Soru: ReAct güvenlik riski var mı?
Var. Tool'lar database write, file delete gibi yapabiliyorsa LLM yanlış karar verebilir. Çözüm: (1) Confirmation step (user onaylasın), (2) Sandboxed environment, (3) Read-only tools default.
Soru: Türkçe ReAct İngilizce'den ne kadar farklı?
Çoğunlukla aynı. Modern LLM'ler Türkçe Thought + Action + Observation üretebilir. AMA bazı modellerde Thought'lar İngilizce çıkar — system prompt'ta "TÜM ÇIKTI TÜRKÇE" belirtmek gerek.
Soru: ReAct + RAG kombinasyonu nasıl?
Çok yaygın. RAG tool olarak ReAct'a dahil edilir: vector_search(query) tool'u. Modern AI Engineer rolü tam bunu yapıyor.
Soru: Production'da ReAct ne kadar maliyetli?
Tipik: $0.02 - $0.50 per query. Multi-tool query daha pahalı. Aylık 10K query: $200-5000 (model + tool seçimine bağlı).
Soru: ReAct fail rate ne kadar?
Production'da %5-15 fail (tool failure + LLM error + infinite loop). Iyi error handling ile %2-5'e düşer.
Soru: ReAct'a alternatif var mı?
Yes — Reflexion (self-critique), Self-Refine, Verbose CoT. Ama ReAct hala mainstream.
14. Sonuç
3 ana çıkarım:
-
ReAct, modern agentic AI'ın temel tekniği — Yao 2022 paper modern LLM ekosisteminin temelini attı.
-
5 ana varyant farklı durumlar için — Vanilla, MRKL, Self-Ask, ReWOO, Plan-and-Execute.
-
Production-grade ReAct = LangGraph + good tool design + observability + cost optimization.
Bu hafta yapılacaklar:
(1) LangChain veya LangGraph kurulum + ilk ReAct agent yazma.
(2) 3-5 quality tool tasarla (description detaylı, schema strict).
(3) LangSmith integration + ilk 100 trace inceleme.
(4) Maliyet tracking dashboard.
Kaynaklar
- ReAct: Synergizing Reasoning and Acting — Yao, Zhao, Yu, Du, Shafran, Narasimhan, Cao, ICLR 2023 / Princeton + Google Research ·
- MRKL Systems — Karpas, Abend, Belinkov et al., AI21 Labs ·
- Measuring and Narrowing the Compositionality Gap (Self-Ask) — Press, Zhang, Min, Schmidt, Smith, Lewis, University of Washington ·
- ReWOO — Xu, Peng, Cheng et al., Microsoft Research ·
- LangChain Agents — LangChain, LangChain ·
- LangGraph — LangChain, LangChain ·
- Anthropic Claude Tool Use — Anthropic, Anthropic ·
- OpenAI Function Calling — OpenAI, OpenAI ·
Danismanlik Baglantilari
Bu yazıya en yakın consulting sayfaları
Bu içerikten sonraki mantıklı adım için en ilgili solution, role ve industry landing'lerini burada görebilirsin.
AI Agent ve Workflow Otomasyonu
Tek adimli chatbot'larin otesine gecen; arac, kural ve insan onayi ile ilerleyen AI destekli is akislarina gecis.
AI Evaluation, Guardrails ve Observability
Yapay zeka sistemlerinin dogruluk, guvenlik ve performansini olcmek, izlemek ve kontrollu hale getirmek icin kapsamli degerlendirme katmani.
Musteri Hizmetleri Ekipleri icin Bilgi Tabanli AI Asistanlari
Temsilcilere anlik bilgi, cevap onerisi ve surec yonlendirmesi saglayarak hizmet kalitesini ve yanit hizini artiran AI destek sistemleri.