LangGraph'ı Daha Uzun Bir Zincir Olarak Görmeyin
LangGraph'ı sadece daha fazla adımdan oluşan bir LangChain olarak görmeyi bırakın. Bu hata, bozuk ajanlara yol açar.
LangGraph; state (durum), dallanmalar, araç çağrıları ve insan onayı gerektiren iş akışları içindir. Hatalardan yeniden başlatmaya gerek kalmadan kurtulması gereken ajanlar içindir.
Eğer kullanacaksanız, önce üç şeyi tanımlamalısınız: state, interrupts ve recovery.
İlk Sınır: State Şeması
Tek bir istem (prompt) için sınır metindir. LangGraph için ise sınır, State şemasıdır. Şunlara karar vermelisiniz:
- Hangi alanların düğümler (nodes) arasında taşınacağı.
- Bir düğümün hangi alanları güncelleyeceği.
- Eşzamanlı dalların değerleri nasıl birleştireceği.
- Hangi değerlerin bir checkpoint'e (kontrol noktası) gireceği.
- Hangi değerlerin asla kalıcı olmaması gerektiği.
Reducer'lar burada kritiktir. Mesajları eklemek (append) için uygun bir kural belirlemezseniz, paralel çalışmalarınız veri kaybına uğrayacaktır.
Küçük başlayın. Tek bir şema, tek bir düğüm ve tek bir reducer ile bir grafik oluşturun. Eğer bunu çalıştıramıyorsanız, araç eklemek sadece hatalarınızı gizleyecektir.
Çalışma Zamanı (Runtime) Sınırı
compile() fonksiyonunu çağırmadan önce grafiğiniz sadece bir açıklamadır. compile() işleminden sonra ise kontrol runtime'a geçer.
Bir grafik başarısız olduğunda sadece düğüme bakmayın. Şu dört şeyi kontrol edin:
- State şeması, düğümün o anahtarı yazmasına izin veriyor mu?
- Düğüm geçerli bir State alanı döndürüyor mu?
- Reducer verileri doğru şekilde birleştiriyor mu?
- Koşullu kenarın (conditional edge) bir çıkış yolu var mı?
Döngüdeki İnsan (Human In The Loop)
İnsan onayını bir kullanıcı arayüzü (UI) özelliği olarak görmeyin. Onu bir grafik sözleşmesi olarak değerlendirin.
Güvenilir bir desen şuna benzer:
- Model bir araç çağrısı önerir.
- Grafik bir kesinti (interrupt) oluşturur.
- Bir insan eylemi onaylar veya düzenler.
- Grafik tam o noktadan devam eder.
Bu, ajanları sadece tepki veren değil, kurtarılabilir hale getirir.
Duman Testi (Smoke Test) Kontrol Listeniz
Canlı ortama (production) geçmeden önce bu testi uygulayın:
- Canlı veri içermeyen geçici bir dizin kullanın.
- Minimum düzeyde bir State tanımlayın.
- Yalnızca geçerli alanları döndüren tek bir düğüm yazın.
- Ekleme (append) işlemleri için bir reducer kullanın.
- Bir araç eyleminden önce bir kesinti (interrupt) ekleyin.
- Bir checkpointer ekleyin.
- Bir hatayı zorlayın ve devam etme (resume) davranışını doğrulayın.
Eğer bu yol başarısız olursa, daha fazla araç eklemeyin. Sorun, çalışma zamanı (runtime) sınırınızdır.
LangGraph, tek seferlik model çağrıları için değildir. Yapay zekanızın incelenebilir, duraklatılabilir ve gözden geçirilebilir çok adımlı işler yapması gerektiğinde kullanın.
Optional learning community: https://t.me/GyaanSetuAi
