8 puan yazan GN⁺ 2025-04-09 | Henüz yorum yok. | WhatsApp'ta paylaş
  • 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.

Henüz yorum yok.