¿Qué es LangGraph?
Aprende qué es LangGraph, cómo se compara con LangChain, y por qué los grafos de estado son el futuro de la construcción de agentes de IA.
LangGraph es un framework para construir aplicaciones de IA basadas en estado y multi-actores. Piensa en ello como un motor de grafo donde cada paso de tu flujo de trabajo de IA es un nodo, y las conexiones entre pasos son aristas.
LangChain vs LangGraph
Aspecto | LangChain | LangGraph |
|---|---|---|
Paradigma | Pipeline lineal | Grafo cíclico |
Estado | Efímero (pipe-through) | Persistente, compartido |
Flujo de control | Secuencial fijo | Condicional, dinámico |
Bucles | No soportados | Soportados (ReAct) |
Caso de uso | Prompts simples, chains | Agentes, flujos complejos |
# LangChain: pipeline lineal
chain = prompt | llm | output_parser
# LangGraph: grafo con estado
builder = StateGraph(State)
builder.add_node("agent", agent)
builder.add_node("tools", execute_tools)
builder.add_conditional_edges("agent", should_continue, {"continue": "tools", "end": END})¿Por qué usar un Grafo?
Los flujos de trabajo del mundo real rara vez son lineales. Un agente típico necesita:
- Recibir entrada del usuario
- Decidir qué hacer (¿llamar a una herramienta? ¿responder?)
- Ejecutar acciones (herramientas, búsqueda, cálculo)
- Repetir hasta que esté listo
- Devolver la respuesta final
Este bucle (llamar LLM → ejecutar herramienta → llamar LLM → ...) es imposible en un pipeline lineal. LangGraph lo hace natural.
Conceptos Principales
Concepto | Descripción |
|---|---|
State | Un único diccionario compartido que contiene todos los datos del flujo de trabajo |
Node | Una función de Python que lee/escribe en el State |
Edge | Una conexión entre nodos, que define el orden de ejecución |
Conditional Edge | Una arista que decide el siguiente nodo basada en el State actual |
Todo en LangGraph gira en torno al State. Los nodos lo leen, lo modifican y las aristas deciden qué ocurre después en función de él.
Tu Primer Grafo
from langgraph.graph import StateGraph, START, END
from typing_extensions import TypedDict
class MyState(TypedDict):
message: str
def hello_world(state: MyState) -> dict:
return {"message": "¡Hola, LangGraph!"}
builder = StateGraph(MyState)
builder.add_node("say_hello", hello_world)
builder.add_edge(START, "say_hello")
builder.add_edge("say_hello", END)
app = builder.compile()
result = app.invoke({"message": ""})
print(result["message"]) # ¡Hola, LangGraph!¡Has construido tu primer grafo LangGraph! Este patrón, definir estado, añadir nodos, conectar aristas, compilar e invocar, es la base de todo lo que construyas.
¿Qué sigue?
En las próximas lecciones aprenderás:
- Lección 2: Repaso rápido de LangChain (prompts, LLMs, chains)
- Lección 3: Definir grafos de estado con esquemas tipados
- Lección 4: Trabajar con nodos y aristas
- Lección 5: Construir tu primer grafo funcional
- Lección 6: Añadir un LLM a tu grafo
- Lección 7: Dar herramientas a tu agente
- Lección 8: Cadenas secuenciales y pipelines
- Lección 9: Ramificación condicional
- Lección 10: Proyecto final: agente de Q&A
Preguntas de Práctica
Cómo responder
Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.
¿Cuál es la principal diferencia entre LangChain y LangGraph?
Cómo responder
Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.
¿Qué representa un Node en LangGraph?
Cómo responder
Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.
¿Qué hace una Conditional Edge?
Cómo responder
Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.
¿Qué tipo de flujo de trabajo NO es posible en un pipeline lineal de LangChain pero sí en LangGraph?
Cómo responder
Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.
¿Cuál es el papel del State en LangGraph?
Puntos Clave
- LangGraph construye aplicaciones de IA como grafos con estado, no pipelines lineales
- Nodos = funciones de Python; Aristas = conexiones entre nodos
- Aristas Condicionales permiten rutas de ejecución dinámicas
- El State es un diccionario compartido, accesible por todos los nodos
- LangGraph soporta bucles, ramificaciones y flujos complejos del mundo real
- Los grafos se construyen con: StateGraph, add_node, add_edge, compile e invoke