Bu bölüm Part 4 olarak, hava durumu ve web araması yapabilen bir LangChain ajanını bellek katmanıyla tamamlama adımı. Önceki videolarda anlık hava, üç günlük tahmin ve internet araması için araçlar kurulmuş, bu videoda ise eksik kalan bağlam yönetimi ele alınıyor ve kısa bir gösterimle neden gerekli olduğu kanıtlanıyor.
Belleksiz çalışmanın bedeli iki küçük diyalogla gösteriliyor: ajana adın Yemi deniyor ve hemen ardından adın ne diye sorulunca yanıt bilmiyorum oluyor, benzer şekilde Seattle için hava sorulup yarın nasıl denince şehir bağlamı kayboluyor. Sorun modelin unutkanlığı değil, konuşma durumunu saklayan bir katman olmaması ve her çağrının sıfırdan başlaması.
Çözüm LangGraph tarafındaki InMemorySaver sınıfı. Videoda from langgraph.checkpoint.memory import InMemorySaver satırıyla içe aktarılıyor, bir checkpointer nesnesine örnekleniyor ve graf derlenirken compile(checkpointer=checkpointer) ile bağlanıyor. Bu haliyle bellek yalnızca bilgisayar belleğinde duruyor, hızlı prototip ve hata ayıklama için tasarlanmış bir yapı olarak tanıtılıyor.
Bağlamı ayıran anahtar thread_id oluyor. Çağrılar invoke edilirken configurable içinde thread_id taşınıyor, aynı kimlikle yapılan ardışık çağrılar aynı sohbeti sürdürüyor, farklı kimlik yeni bir oturum açıyor. Böylece aynı ajan birden fazla diyaloğu birbirine karıştırmadan ve her oturumun geçmişini ayrı tutela biliyor.
Canlı gösterim komut satırında main.py ile yapılıyor. Aynı thread içinde Yemi adı bir kez verilince ikinci soruda ajan adın Yemi diye doğru yanıt veriyor, işlem kapatılıp yeni bir thread_id ile başlatılınca aynı soruya adını bilmiyorum dönerek yalıtım doğrulanıyor. Sunucu kalıcı belleğin bir sonraki videoda ele alınacağını ve mevcut çözümün oturum içi olduğunu özellikle vurguluyor.
Hava durumu bağlamı da aynı mekanizmayla düzeliyor. Seattle için hava nasıl sorusundan hemen sonra ya yarın denince ajan artık şehri hatırlayarak 4 Eylül için tahmin döndürüyor. Önceki bölümde yarım kalan bu anlama adımı, bellek eklenince ek bir yönlendirme veya şehir tekrarı olmadan çözülüyor ve araç çağrısı doğru parametreyle tetikleniyor.
Video komut satırının son durak olduğunu açıkça söylüyor ve mimariyi bir sonraki adıma taşıyor. Plan FastAPI ile çok kullanıcılı bir API katmanı kurmak ve üzerine Streamlit ile hafif bir sohbet arayüzü eklemek. Böylece ajan terminal dışına çıkıyor, her oturum kendi geçmişiyle REST üzerinden servis ediliyor ve proje sergilenebilir bir ürüne dönüşüyor.
AI yorumu
"Bu bölümü ben prototipin en dürüst anı olarak gördüm; bağlam kaybı teoride değil canlı denemede ortaya çıkınca bellek fikri soyut bir özellikten pratik bir ihtiyaca dönüşüyor ve ben de bu yüzden InMemorySaver ile başlama kararını yerinde buluyorum."
AI değerlendirmesi
İtirazı en güçlü haliyle kuralım: InMemorySaver üretim için yetersiz görünebilir ve doğrudan Postgres tabanlı bir saklayıcı tercih edilmeliydi diyenler haklı bir kaygıyı dile getiriyor. Buna karşılık bu video bir öğreticinin dördüncü adımı ve amacı kalıcılığı değil kavramı en sade haliyle göstermek; kalıcı katmanı erken eklemek thread ve checkpointer fikrini gölgeler, bilişsel yükü artırır ve yeni başlayanlar için bağlam fikrini bulanıklaştırır.
Videonun test etmediği yerler de net: yeniden başlatmada belleğin uçması, thread sayısının büyümesi ve temizleme stratejisi, hata yönetimi ve zaman aşımı, web araması gecikmesi ve hız limiti, üç günlük tahmin aracının veri kaynağı ve doğruluğu hiç ölçülmüyor. Uzun süreli tercihler için Store ile çapraz oturum belleği ve FastAPI tarafında oturum yalıtımının maliyeti de bu bölümde ele alınmıyor.
İki katmanı ayırmak gerekir. InMemorySaverin yalnızca hata ayıklama ve test için olduğu doğrudan LangGraph dokümantasyonunda yazıyor ve üretim için Postgres önerisi açık; FastAPI artı Streamlit ile çok kullanıcılı servis mimarisi ise LangGraph ekibinin agent-service-toolkit örneğiyle birebir örtüşüyor. Buna karşılık hava ve tahmin araçlarının detayları videodaki komut satırı gösterimine dayanıyor, kaynak depo açılmadan bağımsız teyit zor ve rakamlar tek kaynaktan geliyor.
Benim hükmüm şu: LangChain ile ilk ajanını kuran ve aynı sohbet içinde şehir ve isim bağlamının kaybolduğunu ilk kez yaşayan herkes bu bölümü temel almalı, prototip aşamasındaysanız InMemorySaver ideal bir başlangıç. Buna karşılık kalıcı ve çok kullanıcılı bir ürün hedefliyorsanız bu videoyu basamak sayıp hemen Postgres checkpointer ve Store katmanına geçin, aksi halde her yeniden başlatmada diyaloglar silinecek ve ölçekte yalıtım sorunları birikecektir.
Kaynaklar
7 bağlantı; bunları kullanan başka yayımlanmış haber yok. Aynı bağlantıyı paylaşan haberler birbirini doğrulamış sayılmaz; kaynağın kökeni bağlantı sayısından çıkarılmaz.
- @youtube.com YouTube — bölüm videosu
- @docs.langchain.com https://docs.langchain.com/oss/python/langgraph/add-memory
- @docs.langchain.com https://docs.langchain.com/oss/python/langgraph/persistence
- @reference.langchain.com https://reference.langchain.com/python/langgraph.checkpoint/memory/InMemorySaver
- @dev.to https://dev.to/vikas2426/build-a-weather-search-agent-langchain-ollama-1231
- @parallel.ai https://parallel.ai/articles/how-to-add-web-search-to-your-langchain-agent
- @docs.langchain.com https://docs.langchain.com/oss/python/langchain/agents
programlama · langchain · hava · durumu · arama · ajanına · nodesdaily