- Qodo, GPT-3 döneminden beri yapay zeka destekli kodlama yardımcı araçları geliştiren bir ekip ve son dönemde daha esnek ve dinamik bir kodlama ajanı oluşturmak için LangGraph çerçevesini seçti
- Bu yazı, LangGraph’ın geliştirme akışındaki esnekliği ve kod kalitesi standartlarını aynı anda nasıl karşılayabildiğini açıklıyor
İlk yapısal yaklaşımdan LangGraph’a geçiş
- GPT-3 tabanlı ilk dönemde odak, test üretimi, kod inceleme ve iyileştirme çalışmaları gibi akışı net olan yapısal görevlerdi
- Claude Sonnet 3.5 sonrasında LLM performansı büyük ölçüde artınca daha dinamik ajan tasarımları mümkün hale geldi
- Daha önce yalnızca kalıplaşmış iş akışları mümkünken, yeni modelleri kullanarak kullanıcı isteklerine esnek şekilde yanıt verebilen bir sistem geliştirmek istediler
- Hızlı deney ve doğrulama yapmaya uygun bir çerçeve ararken LangGraph’ı seçtiler; bu seçim, ilk kavram kanıtını aşarak gerçek ürüne kadar ölçeklenebildi
Esneklik ile net kuralların bir arada bulunması
- LangGraph, state machine tabanlı bir grafik yapısı sunuyor
- Her düğüm, iş akışının ayrı bir adımını üstleniyor (bağlam toplama, planlama, yürütme, doğrulama vb.) ve kenarlar (edge) adımlar arasındaki geçiş kurallarını tanımlıyor
- Kenarların yoğunluğuna göre iş akışının esnekliği ya da yapılandırma seviyesi değişiyor
- Seyrek grafik → sabit ve öngörülebilir akış
- Yoğun grafik → dinamik akış ve çeşitli yol seçimleri mümkün
- LangGraph’ın avantajı, model geliştikçe iş akışının ne kadar yapılandırılmış olacağını kolayca yeniden ayarlayabilmek
- Ana akış şu yapıya sahip:
- Bağlam toplama → görev planlama → kod yürütme → sonuç doğrulama → başarısızlıkta yineleme
Sade ve sezgisel arayüz
- LangGraph, iş akışını deklaratif biçimde tanımlamaya izin verdiği için kod neredeyse bir doküman gibi okunuyor
- Bir durum grafiği tanımlayıp düğüm ve kenar ekleme yaklaşımıyla çalışıyor
- Koşullu akışlar da kolayca uygulanabiliyor (ör. doğrulama başarısız olursa yürütme düğümüne dönme)
- LangChain’in karmaşık soyutlamalarından farklı olarak LangGraph, mantığın görünür olduğu bir yapı sunduğu için geliştirici deneyimi açısından olumlu
Farklı iş akışları arasında yeniden kullanılabilirlik
- Düğüm tabanlı yapı sayesinde bileşenleri yeniden kullanmak kolay
- Örn: bağlam toplama düğümü ile doğrulama düğümü, çoğu akışta tekrar kullanılıyor
- Yeni uzmanlaşmış akışlar (TDD vb.) oluştururken de mevcut düğümleri yeniden bağlayarak hızlıca genişletmek mümkün
Yerleşik durum yönetimi özellikleri
- LangGraph, durum saklama özelliğini varsayılan olarak sunduğu için kalıcılık uygulamak oldukça kolay
- Örn: Postgres üzerinden checkpoint alma özelliği birkaç satır kodla yapılandırılabiliyor
- Toplanan bağlam, planlar, yürütme sonuçları gibi tüm durumu saklayabiliyor; ayrıca branch ve rollback özelliklerini de destekliyor
- SQLite, bellek içi gibi diğer yöntemlere geçmek de kolay
Geliştirilmesi gereken noktalar
- Hızla gelişen bir çerçeve olduğu için dokümantasyon bazen eksik kalabiliyor veya güncellemeler gecikebiliyor
- Neyse ki Slack üzerinden bakım ekibiyle iletişim hızlı ve oldukça ilgiliydi
- Deterministik olmayan LLM sistemlerinin testi hâlâ önemli bir zorluk
- IDE ile etkileşime giren ajanlarda otomatik test ortamı kurmak zor olabiliyor
- Bazı IDE özelliklerini mock etmek çok zor olduğundan manuel teste bağımlı kalmak gerekti ve bu da yineleme hızını yavaşlattı
- Olgun çerçeveler çoğu zaman test ve mocking altyapısı sunar; LangGraph’ın da bu yönde gelişmesi bekleniyor
Henüz yorum yok.