Inicio / Artículos

LangChain vs LangGraph: Elegir entre cadenas y grafos con estado

LangChain ofrece cadenas lineales; LangGraph agrega flujos de trabajo con estado y ramificaciones. Ejemplos sencillos de cada uno y una forma clara de decidir cuál necesita su aplicación.

Editor: REACTAPP.TOP5 min de lectura1088 palabras

Fuentes: LangChain vs LangGraph: What’s the Difference?

Si estás iniciando en el desarrollo de IA, hay dos nombres que aparecen por todas partes:

LangChain y LangGraph.

A primera vista pueden parecer intercambiables. ¿Son la misma herramienta? ¿Necesitas aprender ambas? ¿Y cómo decides cuál se adapta mejor a tu proyecto?

Analicémoslo con un ejemplo sencillo.

¿Qué es LangChain?

Imagina LangChain como una caja de herramientas para crear aplicaciones de IA.

Te proporciona componentes listos para usar que te permiten trabajar con modelos de lenguaje grande y conectarlos a otros recursos como:

  • Prompts
  • Modelos de lenguaje grande
  • Herramientas
  • APIs
  • Documentos
  • Bases de datos vectoriales
  • Sistemas de recuperación

Supongamos que quieres crear un tutor básico de IA.

El flujo podría verse así:

Student Question
       ↓
     Prompt
       ↓
      LLM
       ↓
     Answer

LangChain hace que la creación de este tipo de pipeline sea bastante sencilla.

Ejemplo simple de LangChain

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4o-mini")prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful programming teacher."),
    ("human", "{question}")
])chain = prompt | llmresponse = chain.invoke({
    "question": "What is recursion?"
})print(response.content)

La lógica aquí es simple y lineal:

Pregunta → Prompt → LLM → Respuesta

Este tipo de pipeline en línea recta es exactamente lo en lo que destaca LangChain.

¿Qué es LangGraph?

Ahora supongamos que su tutor de IA necesita manejar más de un proceso.

En lugar de simplemente dar una respuesta, usted quiere que:

  1. Responda a la pregunta del estudiante.
  2. Evalúe si esa respuesta es realmente buena.
  3. Si es buena, deténgase allí.
  4. Si no es buena, revísela.
  5. Vuelva a verificar la respuesta revisada.

El flujo ahora se parece más a esto:

Student Question
                    ↓
              Generate Answer
                    ↓
               Check Answer
                ↙        ↘
             Good          Bad
              ↓             ↓
            Finish       Improve
                            ↓
                       Check Again

Este es precisamente el tipo de escenario para el cual se creó LangGraph.

LangGraph le permite diseñar flujos de trabajo que pueden incluir:

  • Varios pasos
  • Ramas condicionales
  • Bucles
  • Estatuto compartido
  • Puntos de decisión
  • Aprobación con intervención humana
  • Comportamiento de agentes más avanzado

Un ejemplo sencillo de LangGraph

Para comenzar, define el estado que su aplicación necesita para hacer un seguimiento.

from typing import TypedDict
class State(TypedDict):
    question: str
    answer: str
    good: bool

Este estado registra tres cosas:

question
answer
good

A partir de ahí, crea los pasos individuales, denominados nodos, dentro de su gráfico.

Generar respuesta

def generate_answer(state):
    response = llm.invoke(
        f"Answer this question simply:\n{state['question']}"
    )    return {
        "answer": response.content
    }

Verificar respuesta

def check_answer(state):
    response = llm.invoke(
        f"""
        Is this answer good?        Question:
        {state['question']}        Answer:
        {state['answer']}        Reply only YES or NO.
        """
    )    return {
        "good": response.content.strip().upper() == "YES"
    }

A continuación, define una función de decisión:

def decision(state):
    if state["good"]:
        return "finish"    return "improve"

Lo importante aquí es que LangGraph es quien conecta estos nodos entre sí y decide qué nodo se ejecutará a continuación.

Si la verificación falla, el gráfico puede volver al nodo de mejora y ejecutar nuevamente la verificación posteriormente.

¿Cuál es entonces la principal diferencia?

La forma más sencilla de explicar esta distinción es la siguiente:

LangChain = Bloques de construcción

LangChain proporciona los componentes individuales con los que se monta una aplicación de IA.

Por ejemplo:

LLM
Prompt
Retriever
Tool
Vector Database
     ↓
   LangChain

LangGraph = Flujo de trabajo

LangGraph regula cómo interactúan esos componentes y en qué orden.

Start
         ↓
      Generate
         ↓
       Check
      ↙     ↘
    Good     Bad
     ↓        ↓
   Finish   Improve
              ↓
            Check

¿Son LangChain y LangGraph competidores?

No realmente.

Están diseñados para usarse juntos.

Por ejemplo:

LangGraph
                     ↓
          ┌──────────┴──────────┐
          ↓                     ↓
     LangChain              LangChain
     Retriever                 Tools
          ↓                     ↓
          └──────────┬──────────┘
                     ↓
                    LLM

LangChain proporciona los bloques de construcción y las herramientas, mientras que LangGraph orquesta el flujo de trabajo más amplio alrededor de ellos.

¿Cuándo debería usar LangChain?

LangChain es la opción adecuada cuando su aplicación sigue un camino bastante lineal.

Los casos típicos incluyen:

  • Un chatbot básico
  • Una aplicación basada en RAG
  • Responder preguntas a partir de un PDF
  • Buscar en documentos
  • Una aplicación sencilla impulsada por LLM
  • Llamadas a herramientas simples

Un flujo básico en este caso podría verse más o menos así:

User
 ↓
Retrieve Information
 ↓
LLM
 ↓
Answer

Para este tipo de configuraciones, crear una estructura de grafo completa suele ser excesivo.

¿Cuándo debería usar LangGraph?

LangGraph cobra relevancia cuando su aplicación requiere lógica y decisiones ramificadas, no solo una secuencia fija de pasos.

Esto incluye situaciones como:

  • Agentes de IA autónomos
  • Flujos de trabajo que abarcan varios pasos
  • Sistemas con varios agentes que colaboran
  • Procesos con intervención humana
  • Flujos que necesitan repetirse en bucle
  • Aplicaciones que requieren un estado persistente a lo largo de las etapas
  • Cadenas avanzadas de llamadas a herramientas
  • Por ejemplo, imagine un tutor de IA estructurado de esta manera:

    Student asks question
            ↓
    Analyze level
            ↓
    Generate explanation
            ↓
    Give quiz
            ↓
    Check answer
            ↓
    Correct?
       ↙          ↘
     YES           NO
      ↓             ↓
    Next topic   Explain again
    

    Ese tipo de comportamiento con ramificaciones y estado es precisamente donde brilla LangGraph.

    La analogía más sencilla

    Imagínese construyendo una casa.

    LangChain funciona como su caja de herramientas.

    Le proporciona cosas como:

    Ladrillos, herramientas, materiales y componentes.

    LangGraph funciona como el plano de construcción.

    Define la secuencia:

    Colocar los cimientos → levantar las paredes → añadir el techo → inspeccionar el trabajo → si algo no está bien, volver atrás y corregirlo.

    En resumen:

    LangChain le ayuda a armar las piezas.

    LangGraph te ayuda a gestionar el proceso.

    Conclusión final

    En lugar de considerar LangChain y LangGraph como herramientas independientes, es más preciso verlos como dos capas de la misma estructura.

    AI Application
                  ↓
              LangGraph
           (Workflow / Logic)
                  ↓
              LangChain
          (Tools / Components)
                  ↓
                 LLM
    

    Si tu caso de uso es sencillo, LangChain por sí solo probablemente satisfará tus necesidades.

    Cuando tu aplicación requiere seguimiento de estado, lógica condicional, bucles o un comportamiento complejo del agente, LangGraph resulta ser la opción más adecuada.

    No obstante, en muchos sistemas de producción, se combinan ambos.

    La regla a recordar:

    LangChain construye las piezas. LangGraph conecta y controla el flujo.

    Lecturas relacionadas