AI Otomasyon
LangGraph ile Döngüsel ve Stateful Ajan Mimarisi: StateGraph ve MemorySaver
LangChain ekibinin geliştirdiği LangGraph ile durum yönetimi (state management), döngüsel grafikler (cycles) ve kontrol edilebilir otonom AI ajanları inşa etme rehberi.
4 dk
Neden Doğrusal (DAG) Zincirler Yetersiz Kalır?
Geleneksel LLM zincirleri A -> B -> C adımlarını takip eder. Ancak bir ajan hata yaptığında veya bir testi geçemediğinde bir önceki adıma dönüp hatayı düzeltmesi (döngü/cycle) gerekir.
LangGraph, durumu (State) koruyan ve şartlı kenarlar (conditional edges) ile döngüsel karar ağaçları kuran endüstri standardı bir çerçevedir.
agent_graph.py
from typing import TypedDict, Annotated, Sequence
from langchain_core.messages import BaseMessage
from langgraph.graph import StateGraph, END
from langgraph.checkpoint.memory import MemorySaver
class AgentState(TypedDict):
messages: Sequence[BaseMessage]
iteration_count: int
workflow = StateGraph(AgentState)
# Düğümleri (Nodes) tanımla
workflow.add_node("coder", lambda state: {"messages": ["Kod üretildi"], "iteration_count": state["iteration_count"] + 1})
workflow.add_node("tester", lambda state: {"messages": ["Test çalıştırıldı"]})
# Şartlı kenar (Conditional Edge): Test geçtiyse bitir, geçmediyse koda geri dön
def should_continue(state: AgentState):
if state["iteration_count"] > 3:
return END
return "coder"
workflow.add_edge("coder", "tester")
workflow.add_conditional_edges("tester", should_continue)
workflow.set_entry_point("coder")
app = workflow.compile(checkpointer=MemorySaver())Sıkça Sorulan Sorular
MemorySaver nedir?
Her adımda durumu hafızada (veya PostgreSQL/Redis'te) kontrol noktası (checkpoint) olarak saklayarak kesinti anında ajanın kaldığı yerden devam etmesini sağlar.