LangGraph — framework de máquina de estados para Agents en producción
LangGraph modela los Agents como grafos dirigidos de nodos y aristas con estado explícito — la forma más lista para producción de construir AI Agents multi-paso confiables, con checkpoints, human-in-the-loop y flujo de control determinista.
Why LangGraph
LangGraph cambia una curva de aprendizaje más pronunciada por una fiabilidad de producción notablemente mejor. En lugar de esperar a que un bucle LLM termine, declaras el grafo: nodos (llamadas LLM, herramientas, funciones de enrutado), aristas (transiciones estáticas o condicionales) y un State tipado que fluye entre ellos. El runtime gestiona de fábrica el checkpointing en cualquier store (memoria, SQLite, Postgres, Redis), la reanudación y las interrupciones human-in-the-loop.
Es el framework al que recurres cuando «mi Agent debe pausarse para una aprobación humana» o «mi workflow de 20 pasos debe reanudarse exactamente donde se quedó tras un fallo». CrewAI y AutoGen pueden resolver estos problemas; LangGraph está diseñado alrededor de ellos.
El ecosistema también destaca. LangGraph se integra nativamente con LangChain, LangSmith (observabilidad), LangMem (memoria) y todo el conjunto de herramientas de LangChain. Si tu stack ya tiene componentes de LangChain, LangGraph es el complemento sin fricción. Si no, obtienes el beneficio completo pero te comprometes con un ecosistema considerable.
Quick Start — Multi-Agent Supervisor Graph
Patrón supervisor: un nodo de enrutado inspecciona el estado y elige al siguiente worker, los workers devuelven el control al supervisor y este finalmente retorna END. InMemorySaver hace checkpoint del estado; cámbialo por SqliteSaver / PostgresSaver en producción para reanudación duradera. Los thread IDs aíslan conversaciones concurrentes.
# pip install langgraph langchain-openai
from typing import Literal, TypedDict, Annotated
from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph, END, START
from langgraph.checkpoint.memory import InMemorySaver
from langchain_core.messages import HumanMessage, AIMessage
from langchain_core.tools import tool
llm = ChatOpenAI(model="gpt-4o-mini")
class State(TypedDict):
messages: Annotated[list, lambda a, b: a + b]
next: str
# Two specialized workers
def researcher(state: State) -> State:
resp = llm.invoke([HumanMessage(f"Research briefly: {state['messages'][-1].content}")])
return {"messages": [AIMessage(content=f"[researcher] {resp.content}")], "next": ""}
def writer(state: State) -> State:
resp = llm.invoke([HumanMessage(f"Polish into 2 sentences: {state['messages'][-1].content}")])
return {"messages": [AIMessage(content=f"[writer] {resp.content}")], "next": ""}
# Supervisor routes to the right worker
def supervisor(state: State) -> State:
last = state["messages"][-1].content if state["messages"] else ""
resp = llm.invoke([HumanMessage(
f"Pick the next worker (researcher, writer, or FINISH): {last}")]).content.upper()
next_ = "researcher" if "RESEARCH" in resp else ("writer" if "WRITE" in resp else "FINISH")
return {"messages": state["messages"], "next": next_}
def route(state: State) -> Literal["researcher", "writer", "__end__"]:
return state["next"] if state["next"] != "FINISH" else END
graph = StateGraph(State)
graph.add_node("supervisor", supervisor)
graph.add_node("researcher", researcher)
graph.add_node("writer", writer)
graph.add_edge(START, "supervisor")
graph.add_conditional_edges("supervisor", route,
{"researcher": "researcher", "writer": "writer", END: END})
graph.add_edge("researcher", "supervisor")
graph.add_edge("writer", "supervisor")
app = graph.compile(checkpointer=InMemorySaver())
cfg = {"configurable": {"thread_id": "demo"}}
for event in app.stream({"messages": [HumanMessage("The state of AI agents in 2026")], "next": ""},
config=cfg):
print(event)Características clave
State tipado
Define State como TypedDict o modelo Pydantic. LangGraph sigue las transformaciones de estado entre nodos, detecta el drift de esquema en tiempo de compilación y te deja razonar sobre lo que cada nodo lee y escribe.
Aristas condicionales
add_conditional_edges(source, router_fn, {label: target}) permite que cualquier nodo elija dinámicamente el siguiente. Más flexible que los grafos estáticos; sigue siendo auditable vía la estructura del grafo compilado.
Checkpointers
InMemory, SQLite, Postgres, Redis. El estado persiste entre invocaciones. Reanuda desde cualquier checkpoint — esencial para Agents de larga duración, reintentos y depuración.
Human-in-the-loop
interrupt() pausa la ejecución; reanuda con Command(resume=value). Flujos de aprobación, solicitudes de clarificación y ediciones de estado de primera clase sin maquinaria a medida.
LangGraph Studio
App de escritorio para depurar visualmente grafos en ejecución — ver estado, inspeccionar mensajes, paso a paso, editar estado y reejecutar. Lo más cercano que el mundo de Agents LLM tiene a un depurador tradicional.
Streaming + subgrafos
Stream de mensajes y actualizaciones de estado en tiempo real; compón grafos como subgrafos (un nodo puede ser otro grafo compilado). Soporta arquitecturas de Agents profundamente anidadas.
Comparación
| Control Flow | Checkpointing | Debugging | Learning Curve | |
|---|---|---|---|---|
| LangGraphesta | Graph / state machine | First-class (multiple backends) | LangGraph Studio | Medium |
| CrewAI | Sequential / hierarchical | Via Crew Flows | Traces | Low |
| AutoGen | Conversation loop | v0.4 has it; older v0.2 limited | Trace logs | Medium |
| OpenAI Swarm | Handoff tool calls | Not built-in | Logs | Low |
Casos de uso
01. Servicios de Agents en producción
Agents cara al usuario que deben sobrevivir a fallos, reintentos y despliegues. El checkpointing convierte a LangGraph en la opción por defecto para Agents en apps SaaS en producción.
02. Workflows de aprobación humana
Tareas sensibles a compliance (compras, emails, reembolsos) donde un Agent propone y un humano aprueba. interrupt() + Command resume es el patrón más limpio del ecosistema.
03. Arquitecturas multi-Agent complejas
Supervisor + workers, equipos jerárquicos, pools de Agents tipo torneo. Cuando tu sistema tiene más de 3 Agents con flujo de control no trivial, modelar por grafo evita el caos emergente.
Precios y licencia
LangGraph: open source MIT. Gratuito para self-hosting.
LangGraph Platform: servicio de despliegue gestionado de LangChain — Agents alojados con auto-escalado, webhooks, disparadores cron y una UI tipo studio. Niveles de pago; consulta langchain.com/langgraph-platform.
LangSmith (opcional): SaaS de observabilidad. Nivel dev gratuito. Complementa pero no reemplaza a LangGraph — desplegar en LangGraph Platform no requiere LangSmith.
Activos relacionados en TokRepo
LangGraph — Build Stateful AI Agents as Graphs
LangChain framework for building resilient, stateful AI agents as graphs. Supports cycles, branching, persistence, human-in-the-loop, and streaming. 28K+ stars.
LangGraph — Build Stateful AI Agent Workflows
Framework for building stateful, multi-step AI agent workflows as graphs. LangGraph enables cycles, branching, human-in-the-loop, and persistent state for complex agent systems.
LangGraph — Stateful AI Agent Graphs by LangChain
Framework for building stateful, multi-actor AI agent applications as directed graphs. Supports cycles, branching, persistence, and human-in-the-loop patterns. By LangChain. 8,000+ stars.
langchain-mcp-adapters — MCP Tools in LangGraph
Use MCP servers inside LangChain/LangGraph by loading MCP tools into agents via MultiServerMCPClient, without writing one-off wrappers per server.
Preguntas frecuentes
¿Necesito LangChain para usar LangGraph?+
No estrictamente — puedes construir nodos a partir de funciones sueltas y cualquier SDK LLM. Pero las integraciones de LangChain (herramientas, retrievers, loaders) hacen a LangGraph mucho más productivo; la mayoría de proyectos reales usan ambos.
¿LangGraph vs CrewAI?+
Apuestas distintas. CrewAI: basado en roles, rápido de poner en producción, más simple. LangGraph: basado en grafos, más configuración, fiabilidad de nivel producción. Si un no-ingeniero puede describir tu pipeline como «A, luego B, luego C con roles», empieza por CrewAI. Si tu pipeline tiene bucles, ramas condicionales o aprobaciones humanas, empieza por LangGraph.
¿Qué tan difícil es depurar?+
Mejor que la mayoría. LangGraph Studio ofrece una UI paso a paso con inspección de estado. Combinado con trazas de LangSmith, puedes precisar qué nodo produjo qué salida. Sigue siendo más difícil que depurar código no-agéntico — eso es inherente a los sistemas agénticos.
¿LangGraph aguanta alto rendimiento?+
Sí. El runtime es asíncrono y sin estado entre invocaciones (el estado vive en el checkpointer). Escala horizontalmente tras cualquier balanceador de carga; engancha un checkpointer de Postgres para durabilidad.
¿Y la antigua API de LangChain Agents?+
Usa LangGraph para todo trabajo nuevo de Agents. LangChain Agents (initialize_agent, AgentExecutor) está en modo mantenimiento. LangChain en sí sigue siendo la referencia para bloques no-Agent (prompts, retrievers, herramientas).