Ajanik Yapay Zeka Uygulamalarında Öz‑Eleştiri ve Sebep+Eylem Geliştirimi ile Karar-Destek Sistemlerinin Geliştirimi — Part 1
Son iki senedir Ai Ajan’ları ve Ajan sistemleri hayatımıza hızlıca dahil oldu. Ancak bu sistemler çoğunlukla otomasyon gerçekleştiren araçlar olarak hizmet vermeye başladı. Ve neredeyse iki senenin sonunda hala oluşturduğumuz bu sistemler verileri yada sorularımızı Ai’ı yorumlatmaya ve çıktılarını otomasyon sistemlerine bağlamaya dayalı sistemler olarak hizmet ediyor. Bu ne yazık ki Ai Agent’dan ziyade “Veriyi Ai ile Yorumlatmaya Dayalı Otomasyon Sistemleri” olarak adlandırılabilir.
Peki Gerçek bir “Agentic” Ai’dan beklediğimiz seviye nedir? Hangi isterlerimizi karşılayabilir? Bu konuda düşündüğümüzde aslında devreye Özerk Sistem yetileri ilk akla geliyor. Yani Ajantik yapı belirtilen LLM modelini kullanarak bir insana ihtiyaç duymadan çalışmaya başlamak için devreye girmeli, hedeflerini ve planlarını belirlemeli, task’lar oluşturarak adım adım ilerlemeli ve planların uygulanamadığı durumlarda yada hata alındığında strateji ve planını değiştirmeli. İşte tam da bu özelliklerde devreye ReAct (Reason-Act) ve Reflection devreye giriyor.
LLM’ler hem yönetilebilirliği hemde ulaşılabilirliği fazla olduğundan Ajantik süreçlerde ilk tercihtir. Ancak LLM ajantık sistemlerde; planlama, araç kullanımı ve çok‑adımlı muhakeme gibi gerektiren görevlerde kullanıldığında hataya oldukça meyillidir. Bu nedenle son zamanlarda araştırmalarda ortaya çıkan “Reflection” yani öz-değerlendirme, “Reflexion” yani verbal pekiştirmeyle öz‑öğrenme, “Self‑Refine” yani kendi çıktısını eleştirip düzeltme, “Tree‑of‑Thoughts” yani dallanarak düşünceler arama ve “Chain‑of‑Verification” yani tasdik soruları ile kendi kendini doğrulama yöntemleri ve pattern’leri LLM’leri ajantik süreçlere uyumlu hale getirmeye çalışıyor. Bu pattern’ler ile LLM’in kendi çıktısını inceleyip yanlışlarını tespit etmesi ve araç süreçlerinde hatalarını algılayıp işlem ve cevaplarını toparladığı ajanlar geliştirilmeye çalışılıyor.
Reflection Pattern
Reflection pattern’i, ajan yapısına bağlanmış LLM’in aynı görev bağlamında kendi cevap çıktısını, planını veya araç çağrısı sonuçlarını ikincil bir değerlendirme, eleştiri adımıyla gözden geçirip gerekli gördüğünde düzeltmesi fikridir. Bu sayede, ağırlıkları güncellemeden, sadece dilsel geri bildirim ve mimari kontrol akışı ile iyileştirme yapmamızı sağlar. Bu pattern ile beraber şu metodlarda vardır;
- ReAct: Mantık yürütme ile eyleme dayalı tool kullanımını iç içe üretir bu sayede gözlemden öğrenilmiş etkileşimli döngüler kurar.
- Reflexion: Ajan sisteminde LLM, başarısız denemelerden sonra dilsel geri bildirim olarak yazar. Bunu epizodik belleğe koyar ve sonra denemelerde strateji değiştirir (verbal RL).
- Self‑Refine: Bu pattern ile model, taslak → geribildirim → düzeltme döngüsünü birkaç kez döngüden geçirir. bu sayede tek oturumda kaliteyi artırır. Bu sayede eğitim gerekmez; Sonuçlarda ~%20 mutlak artış raporlanmıştır..
- Tree‑of‑Thoughts (ToT): Tek bir çizgisel akış ile ilerlemek yerine, ajantik sistem “düşünceler” ağacını araştırır. Sonra kendi kendini değerlendirerek geri izleme yapar.
- Self‑Consistency: Farklı akıl yürütme yollarından çoğunluk ile uyumlaştırma kullanarak karara varıp hata olasılığını düşürür.
- Chain‑of‑Verification (CoVe): Model önce taslağı dizayn eder; ardından doğrulama soruları planlayıp bağımsız yanıtlar hazırlar. En sonda tasdikli nihai yanıtı üreterek süreci tamamlar. Bu sayede raporlarda halüsinasyonun azaldığı raporlanmıştır.
Agent ve Araçların Hata Taksonomisi Dizaynı
LLM ile kurgulanmış Ajantik sistemlerde oluşan hataları ilk olarak inceleyelim;
Ajan — LLM Entegrasyon Hataları:
- Mantıksal: Ai Modelinin eksik Agent yapısı nedeniyle işlemlerinde adım atlamaları ve tutarsız ara sonuç kararları aldığı durumlardır.
- Faktüel: Ai Modelinin kaynaksız iddialar ve varolmayan tarih/isim hataları yani halüsinasyonlar üretmesidir.
- Plan‑icra sapmaları: Planlanan eylemleri gerçekleştirmemesi veya döngüye girmesine neden olduğu durumlardır.
- Belirsizlik/kalibrasyon sorunları: Modelin aşırı özgüven ve düşük çeşitlilik nedeniyle kararlarında taraflı kararlar almasıdır.
Araç Hataları:
- Sözdizimsel/Şema: JSON/fonksiyon çağrısı biçimi, eksik parametreler nedeniyle oluşan karar-eylem hatalarıdır. (JSON Schema/Pydantic ile yakalanır.)
- Anlamsal/Sözleşme: Geçersiz kimlik, aralık dışı değer, iş kuralı ihlali gibi durumlar hatalı karar-eylem hatalarıdır. (alan doğrulayıcıları ile)
- Çalışma zamanı: Zaman aşımı, 5xx bağlantı hataları, kesintiler gibi durumlarda eylemler aksayabilir. (retry/circuit‑breaker).
- Bilgi kalitesi: RAG’de zayıf/yanıltıcı içerik, eskimiş veri kullanımıyla neden olur. (CRAG/LLM‑verified retrieval ile).
Pratik bir “reflection” iskeleti yaratmak için şu adımları uygulayabiliriz;
- Planner/Policy: Görevi alt‑hedeflere bölmek ve ToDo’lara ayırıp işleyiş akışı yaratmak modelde sistemli ilerleme sağlayacaktır. Aynı zaman da araç seçim stratejisinide alt‑hedeflerde belirlenmiştir.
- Actor (Tool‑User): Ajanik yapı fonksiyon çağrılarını yapar ve gözlem döngüsü üretir.
- Critic/Refiner: Taslak yanıtı/izleri rubriklere göre değerlendirerek gerekli düzeltmeleri önerir. (Yani Self‑Refine/Reflexion oluşturulur.).
- Verifier: Dışsal ve otomatik kontroller eklenerek sağlanır. Şema/doğrulama, CoVe soruları, testler, RAG doğrulayıcıları ile bu pattern kurgulanır.
- Memory: Epizodik (Reflexion notları), kalıcı görev‑özel bulguları ile sağlanır.
- Orchestrator (graf motoru): Akış grafı, dallanma/tekrar deneme, devre kesiciler ile sağlanır.
Reflection Döngülerinin Türleri ve Kullanım Zamanları
- Self‑Refine: Akış “Taslak→Eleştiri→Düzeltme” şeklindedir. Girdi noktaları; Metin, özet, yazı veya uzun‑form yanıtlarda kullanılır. En önemli avantajı eğitim gerektirmemesidir.
- Reflexion: Akış “Deneme→Geri Bildirim→Strateji Değişimi” şeklindedir. Girdi noktaları; Kodlama, oyun/ortam etkileşimi, çok adımlı karar’larda kullanılır. En önemli avantajı; Epizodik bellekle aynı seansta hızla öğrenir.
- ToT: “Arama‑temelli muhakeme” şeklindedir. Girdi noktaları; Kombinatoryal/arayış gerektiren görevler (bulmaca, planlama). En önemli avantajı; Geri izleme ve küresel seçimdir. Bu da tek hatalı adımın etkisini azaltır.
- Self‑Consistency: “Çoklu örnekleme ve uzlaşı” şeklindedir. Girdi noktaları; Tek doğru çıktıya indirgenebilen problemler için kullanılır. En önemli avantajı; Belirsizliği çeşitlilik üzerinden tahmin etmesidir.
- CoVe: Doğrulama odaklı yani test‑tabanlı doğrulamadır. Girdi noktaları; Faktüel doğruluk kritiktir; “kanıtla” gerekir. En önemli avantajı; Doğrulama soruları ve ünite testleri ile ölçülebilir güvence sağlatır.
- CRAG, LLM‑verified retrieval: RAG hataları (yanlış/eksik getiriler) gibi uygulamalarda sık kullanılır. En önemli avantajı; Getiriyi de eleştirip yeniden sorgu üreten bir döngü oluşturmasıdır.
Örnek Üretim‑Kalibre “Reflection” İskeleti:
function SOLVE_WITH_REFLECTION(query, tools, rag, budget):
plan ← PLAN(query) # ReAct/ToT plan
state ← ∅; memory ← ∅
for step in 1..MAX_STEPS:
act ← SELECT_ACTION(plan, state)
call ← FORMAT_TOOL_CALL(act)
assert SCHEMA_OK(call) # JSON Schema/Pydantic
obs ← EXECUTE(call) # tool answers
if RUNTIME_ERROR(obs): # timeout, 5xx, empty result
obs ← RETRY_OR_FALLBACK(call)
state ← state ⊕ obs
if step % REFLECTION_INTERVAL == 0 or TRIGGERED(state):
critique ← CRITIC(state, RUBRICS) # Self-Refine/Reflexion
if critique.flags.contains("FACTUAL_RISK"):
verif ← COVE_VERIFY(state) # CoVe
state ← state ⊕ verif
if critique.flags.contains("RETRIEVAL_ISSUE"):
score ← RETRIEVAL_EVAL(state) # CRAG evaluator
if score < τ: state ← state ⊕ RE_RETRIEVE(rag, state)
plan ← UPDATE_PLAN(plan, critique, memory)
memory ← UPDATE_MEMORY(memory, critique) # Reflexion
if STOP_CONDITION(state, plan): break
drafts ← {GENERATE_DRAFTS(state, M)} # Self-Consistency
best ← MAJORITY_VOTE(drafts)
return FINALIZE_WITH_EVIDENCE(best)Umarım yararlı bir yazı olmuştur. Bir sonraki bölümde örnek akışları inceleyip, ReAct’ı detaylı anlatacağım.
Görüşmek üzere…
