LangGraph je framework od LangChain pre budovanie multi-actor AI aplikácií so stavovým riadením a cyklickými workflow.

Prečo LangGraph?

Tradičné LLM chains sú lineárne - vstup → spracovanie → výstup. Reálne AI aplikácie potrebujú:

  • Cykly - iteratívne zlepšovanie výstupu
  • Vetvenie - rôzne cesty podľa kontextu
  • Stav - pamätanie si predchádzajúcich krokov
  • Ľudský vstup - schválenie pred pokračovaním

Základné koncepty

Graf a uzly

from langgraph.graph import StateGraph, END

# Definícia stavu
class AgentState(TypedDict):
    messages: list
    next_action: str

# Vytvorenie grafu
workflow = StateGraph(AgentState)

# Pridanie uzlov
workflow.add_node("agent", call_agent)
workflow.add_node("tools", execute_tools)

# Definícia hrán
workflow.add_edge("agent", "tools")
workflow.add_conditional_edges(
    "tools",
    should_continue,
    {
        "continue": "agent",
        "end": END
    }
)

Stavový management

def call_agent(state: AgentState) -> AgentState:
    messages = state["messages"]
    response = llm.invoke(messages)

    return {
        "messages": messages + [response],
        "next_action": determine_action(response)
    }

Praktický príklad: Research Agent

from langgraph.graph import StateGraph

class ResearchState(TypedDict):
    topic: str
    sources: list
    summary: str
    is_complete: bool

def search_web(state):
    # Vyhľadávanie informácií
    results = web_search(state["topic"])
    return {"sources": results}

def analyze_sources(state):
    # Analýza nájdených zdrojov
    analysis = llm.analyze(state["sources"])
    return {"summary": analysis}

def check_quality(state):
    # Kontrola kvality
    is_good = quality_check(state["summary"])
    return {"is_complete": is_good}

# Zostavenie grafu
graph = StateGraph(ResearchState)
graph.add_node("search", search_web)
graph.add_node("analyze", analyze_sources)
graph.add_node("check", check_quality)

graph.add_edge("search", "analyze")
graph.add_edge("analyze", "check")
graph.add_conditional_edges(
    "check",
    lambda s: "end" if s["is_complete"] else "search"
)

Výhody oproti tradičným chains

Aspekt LangChain LangGraph
Tok Lineárny Cyklický
Stav Implicitný Explicitný
Vetvenie Obmedzené Plná podpora
Human-in-loop Ťažké Natívne

Použitie

  • Customer support boti - eskalácia, routing
  • Research asistenti - iteratívny výskum
  • Code review - viacfázová analýza
  • Content generation - draft → review → publish

Záver

LangGraph posúva AI agentov na novú úroveň. Namiesto jednoduchých prompt chains máte plnú kontrolu nad komplexnými workflow s ľudským dohľadom.