ReAct Prompt Engineering AI Agents LLM Agentic AI Akıl Yürütme

ReAct Prompting Nedir? Yapay Zeka Ajanlarda Akıl Yürütme

Orta
person Yapay Zeka Uzmanı
list_altİçindekilerexpand_more
  1. 01ReAct Nedir?
  2. 02Döngünün Üç Adımı
  3. 03Thought (Düşünce)
  4. 04Action (Hareket)
  5. 05Observation (Gözlem)
  6. 06Somut Örnek: Adım Adım ReAct Döngüsü
  7. 07ReAct ile Yalnızca Chain-of-Thought Arasındaki Fark
  8. 08ReAct ile Plan-and-Execute Karşılaştırması
  9. 09LangChain’de ReAct Uygulaması
  10. 10Başarısızlık Modları ve Çözümleri
  11. 11ReAct ve RAG Kombinasyonu
  12. 12Gelecek: Dahili ReAct
  13. 13ReAct’ı Ne Zaman Kullanmalısınız?
Editorial tech-magazine cover illustration about ReAct prompting, an AI agent cycling through reasoning, action, and observation steps, robotic mind with glowing thought bubbles connected to external tool icons (search, calculator, database), dynamic loop arrows, abstract artificial-intelligence motifs (glowing neural networks, flowing data, subtle circuitry), sophisticated modern concept art, clean balanced composition, soft cinematic studio lighting, rich depth of field, premium color grading in deep navy blues with cyan and magenta accents, highly detailed, polished editorial 8k. No text, no words, no letters, no captions, no logos, no watermark, no UI.

Bir yapay zeka ajanına “Apple’ın 2024 yılı net kâr marjını bul ve Samsung ile karşılaştır” diye sorduğunuzda neler olur? Modelin bu soruyu doğrudan yanıtlaması imkânsız: güncel finansal verilere erişimi yok, iki şirket için bağımsız kaynaklar gerekiyor ve son adımda hesaplama yapması şart. Tek bir metin üretimi adımıyla bu görev tamamlanamaz.

İşte burada ReAct prompting devreye girer. Modelin yalnızca tahmin etmek yerine adım adım düşünmesine, dış araçlara başvurmasına ve elde ettiği bilgiyle planını güncellemesine olanak tanıyan bir çerçevedir.

ReAct prompting: yapay zeka ajanının düşünce-eylem-gözlem döngüsüyle araçlara bağlanmasını gösteren editorial illüstrasyon

ReAct Nedir?

ReAct, Princeton ve Google Brain araştırmacılarının 2022 yılında yayımladığı “ReAct: Synergizing Reasoning and Acting in Language Models” makalesinden türeyen bir çerçevedir. Shunyu Yao ve ekibinin gösterdiği şey özünde basitti: dil modellerinin akıl yürütme (Reasoning) ve eylem üretme (Acting) adımlarını birlikte yürütmesi, her iki yeteneği ayrı ayrı kullanan yaklaşımların çok önüne geçiyordu.

İsim bu iki bileşenden geliyor: Reasoning + Acting. Model yalnızca içsel bir düşünce zinciri oluşturmakla kalmaz; bu düşünce adımları somut araç çağrılarıyla kesilir ve araçlardan gelen gözlemler tekrar bağlama eklenerek sonraki adım şekillenir.

Makale yayımlandığında bilgi alma (HotpotQA), etkileşimli karar verme (ALFWorld) ve web tabanlı görevler (WebShop) gibi farklı ortamlarda test edildi. Sonuçlar, yalnızca akıl yürütme ya da yalnızca eylem üreten yöntemlerin ikisini de geride bıraktı. ReAct’ın gerçek önemi burada yatıyor: hem halüsinasyona karşı bir kalkan hem de çok adımlı görevler için pratik bir yol haritası.

Döngünün Üç Adımı

ReAct’ın tüm çalışma mantığı tek bir döngüye dayanır: Thought → Action → Observation. Bu döngü, görev tamamlanana kadar ya da token bütçesi tükenene kadar yinelenir.

Thought (Düşünce)

Modelin o anki durumu değerlendirdiği ve bir sonraki hamlesini planladığı adımdır. Dışarıya iletilen herhangi bir eylem yoktur; model yalnızca kendi bağlamını işler.

Düşünce adımı, chain-of-thought prompting tekniğinin ajanlar için genişletilmiş halidir. Model “bu soruyu yanıtlamak için önce X’e, ardından Y’ye ihtiyacım var” türünden bir iç çıkarım üretir. Bu planlama katmanı, çok adımlı görevlerde modelin nereye gittiğini takip etmesini mümkün kılar.

Action (Hareket)

Modelin dış bir araç çağırdığı adımdır. En sık kullanılan dört eylem tipi vardır: Search[sorgu] bir arama motoruna ya da vektör veritabanına sorgu gönderir, Lookup[terim] belirli bir belgede arama yapar, Calculate[ifade] hesap makinesi veya kod çalıştırıcıya iletir, Finish[yanıt] ise döngüyü kapatarak son cevabı üretir.

Bu adım, function calling altyapısı üzerine inşa edilir. Modern LLM API’lerinde araç çağrısı, modelin yapılandırılmış bir çıktı üretmesiyle başlar; runtime bu çıktıyı gerçek bir fonksiyon çağrısına dönüştürür.

Observation (Gözlem)

Araçtan dönen yanıtın bağlama eklenmesidir. Model bu gözlemi okur, mevcut planıyla birleştirir ve yeni bir Thought adımıyla devam eder. Gözlem doğrulama değil, ham veridir; yorumlama modele aittir.

Bu üç adım birlikte çalıştığında model, eğitim verisindeki bilgiyle sınırlı kalmak yerine çalışma zamanında gerçek kaynaklara ulaşabilir ve planını aldığı yanıta göre değiştirebilir.

Somut Örnek: Adım Adım ReAct Döngüsü

“Türkiye’nin 2024 GSYH büyüme hızı neydi ve G20 ortalamasıyla farkı kaçtı?” sorusunu ReAct döngüsüyle çözelim:

Thought: Türkiye'nin 2024 GSYH büyüme hızını bulmam gerekiyor,
         ardından G20 ortalamasını ayrıca aramalıyım.

Action: Search["Türkiye 2024 GSYH büyüme hızı"]

Observation: "Türkiye 2024 yılında yüzde 3,2 büyüme kaydetti (IMF verisi)."

Thought: Türkiye için 3,2% elimde. Şimdi 2024 G20 ortalamasını bulmam gerekiyor.

Action: Search["G20 average GDP growth 2024"]

Observation: "IMF 2024 G20 ortalamasını yüzde 3,5 olarak açıkladı."

Thought: Farkı hesaplayabilirim: 3,5 - 3,2 = 0,3 puan.

Action: Finish["Türkiye 2024'te yüzde 3,2 büyüdü; G20 ortalaması yüzde 3,5
        olduğundan 0,3 puan geride kaldı."]

Bu örnekte model hiçbir bilgiyi hafızasından üretmedi. Her adımda dışarıdan doğrulama yaptı, gözlem verisine göre planını güncelledi. Halüsinasyon riski kademeli olarak azaldı.

ReAct ile Yalnızca Chain-of-Thought Arasındaki Fark

Chain-of-thought prompting modelin iç akıl yürütmesini görünür kılar. ReAct ise bu iç süreci dış araç çağrılarıyla böler. İki yöntemin temel ayrımı şu: CoT modelin eğitim verisindeki bilgiyle sınırlıdır; ReAct çalışma zamanında gerçek kaynaklara erişebilir.

Fark en çok üç durumda ortaya çıkar. Güncel veya spesifik sayısal veri sorulduğunda CoT halüsinasyon yapar, ReAct araç kullanarak doğrular. Birden fazla kaynaktan bilgi birleştirmek gerektiğinde CoT tek bir pasaj üretir, ReAct birden fazla döngü çalıştırır. Hesaplama içeren adımlarda ise CoT matematiksel hata yapabilirken ReAct hesap makinesini çağırır.

Öte yandan her görev için ReAct gerekmez. Yaratıcı yazarlık, özetleme veya kapalı alan mantık sorularında CoT daha hızlı ve daha az maliyetlidir. Doğru araç seçimi, görevin dış bilgiye gerçekten ihtiyaç duyup duymadığına bağlıdır.

ReAct ile Plan-and-Execute Karşılaştırması

Plan-and-Execute mimarisi görevin tamamını baştan planlar, sonra adım adım uygular. ReAct ise her adımda planı günceller; bir önceki gözlem bir sonraki düşünceyi doğrudan etkiler.

ÖzellikReActPlan-and-Execute
Plan zamanlamasıDinamik, her döngüde güncellenirÖnceden sabit
Hata kurtarmaGözlem verisiyle anlıkYeniden planlama gerektirir
Token maliyetiYüksek (döngüsel bağlam)Daha düşük
Belirsiz görevlerDaha iyi başa çıkarErken plan tutmayabilir

LangGraph ve CrewAI gibi agent framework’leri her iki yaklaşımı da destekler. Sonuçların önceden bilinmediği, araç yanıtlarının planı etkileyebileceği görevlerde ReAct, yapılandırılmış ve doğrusal iş akışlarında ise Plan-and-Execute avantajlıdır.

LangChain’de ReAct Uygulaması

LangChain, ReAct’ı create_react_agent fonksiyonuyla kolayca uygulamanıza olanak tanır:

from langchain import hub
from langchain.agents import create_react_agent, AgentExecutor
from langchain_openai import ChatOpenAI
from langchain_community.tools import DuckDuckGoSearchRun

llm = ChatOpenAI(model="gpt-4o", temperature=0)
tools = [DuckDuckGoSearchRun()]

# ReAct prompt şablonu Langchain Hub'dan çekilir
prompt = hub.pull("hwchase17/react")

agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,
    max_iterations=10
)

result = agent_executor.invoke({
    "input": "Türkiye'nin 2024 GSYH büyüme hızı neydi?"
})
print(result["output"])

verbose=True ile her Thought, Action ve Observation adımı konsola basılır; hata ayıklamada pratik bir şeffaflık sunar. max_iterations parametresi ise sonsuz döngülere karşı kritik bir güvenlik ağıdır.

Prompt engineering açısından ReAct’ın en kritik noktası araç açıklamalarıdır. Model doğru aracı seçmek için yalnızca araç ismine değil, açıklamasına da bakar. Açıklamalar kısa ve net tutulmalı; birbiriyle örtüşen isimler karışıklığa yol açar.

Başarısızlık Modları ve Çözümleri

ReAct güçlü bir çerçeve olmakla birlikte belirli senaryolarda sorun çıkarır.

Araç döngüleri: Model aynı sorguyu tekrar tekrar çalıştırır, farklı bir gözlem gelmez ve döngü kırılamaz. Çözüm: max_iterations sınırı ve önceki araç çağrılarını bağlama ekleyen bir bellek katmanı.

Yanlış gözlem yorumu: Araç yanıtı belirsizse model hatalı bir çıkarım yapabilir; sonraki eylemler bu hatayı büyütür. Çözüm: araç yanıtlarını yapılandırılmış JSON formatında döndürmek, ham metni minimize etmek.

Token bütçesi aşımı: Her döngü bağlama yeni içerik ekler; uzun görevlerde bağlam penceresi dolar. Çözüm: eski Observation’ları özetleyen bir hafıza katmanı veya sliding window yaklaşımı.

Araç seçim hatası: Çok sayıda araç olduğunda model uygun olmayanı seçebilir. Çözüm: araç seçim öncesi bir router adımı eklemek ya da araçları hiyerarşik gruplara ayırmak.

Bu dört senaryonun tamamı, sistemi üretime almadan önce bilinçli olarak test edilebilir ve önlemi önceden alınabilir.

ReAct ve RAG Kombinasyonu

Retrieval-augmented generation’da bilgi tabanı genellikle sabit bir adımda sorgulanır. ReAct ise bilgi tabanını bir araç olarak konumlandırır: model gerektiğinde sorgular, yeterli bilgi gelmezse sorguyu değiştirir ve tekrar dener.

HotpotQA ve FEVER gibi çok atlamalı soru-cevap benchmark’larında ReAct+RAG kombinasyonu, yalnızca RAG kullanan yaklaşımların belirgin önüne geçti. Özellikle bir yanıtın başka bir yanıta bağlı olduğu zincirleme sorularda döngüsel geri bildirim mekanizması kritik rol oynar. Bilgi tabanı statik değil, modelin aktif olarak araştırdığı ve sorguyu rafine ettiği bir kaynak haline gelir.

Akıl yürüten AI modelleri bu yaklaşımı dahili zincirlerine taşıdı. o3 ve DeepSeek-R1, benzer bir döngüsel düşünce yapısını model içinde gerçekleştiriyor; ancak dış araç çağrısı gerektiren görevlerde ReAct döngüsü hâlâ zorunlu.

Gelecek: Dahili ReAct

Günümüzde o3, Claude’un thinking modu ve DeepSeek-R1, ReAct döngüsünün bir kısmını model içinde yürütüyor. Bu modeller “reasoning token” adı verilen gizli düşünce adımlarını iç zincirlerinde işler; dışarıya yalnızca nihai yanıt ve araç çağrıları yansır.

Bu yaklaşım, ReAct’ın dış döngüsünü kısmen içselleştirir. Bununla birlikte araç erişimi gerektiren senaryolarda dış ReAct döngüsü geçerliliğini korur; çünkü modelin iç düşüncesi gerçek zamanlı veriyle beslenemez. Önümüzdeki dönemde dahili reasoning ile dışsal araç döngüsünün iç içe çalıştığı hibrit mimariler daha yaygın hale gelecek.

ReAct’ı Ne Zaman Kullanmalısınız?

Aşağıdaki koşulların bir ya da birkaçı geçerliyse ReAct doğru seçenektir:

  • Görev, eğitim verisinin dışında kalan güncel bilgi gerektiriyor
  • Birden fazla bağımsız kaynak sorgulanması gerekiyor
  • Matematik, hesaplama veya kod çalıştırma içeren adımlar var
  • Önceki adımın sonucu bir sonraki adımın planını belirliyor

Buna karşılık görev bağımsız bir metin üretimi veya kapalı alan analizi içeriyorsa, araç gecikmeleri ve ek token maliyeti ReAct’ı gereksiz yere ağırlaştırır. Agentic coding ve otonom ajan sistemleri tam da bu seçimi doğru yapmakla ilgilidir: her göreve tek bir yöntem dayatmak yerine, görevin ne gerektirdiğine bakarak CoT, RAG ya da ReAct arasında seçim yapmak.

ReAct 2022’de akademik bir öneri olarak çıktı. 2026’da LangChain, LangGraph, CrewAI ve benzeri her ajansal framework’ün altyapısına işlenmiş durumda. Çerçeveyi anlamak, bu araçların içinde ne olduğunu anlamak demek.

auto_stories İlgili Makaleler