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.