LangChain vs LangGraph: cómo elegir y cuándo migrar
Compara LangChain y LangGraph: agentes, flujos, ejemplos en Python, migración y precios de LangSmith para elegir la arquitectura que necesita tu aplicación.
Publicado el

LangChain vs LangGraph: empieza con LangChain si tu aplicación se basa en un modelo que llama a herramientas; diseña un flujo propio con LangGraph si el proceso de negocio debe decidir qué ocurre después. Los agentes de LangChain ya se ejecutan sobre LangGraph, así que añadir persistencia o aprobación humana no obliga por sí solo a reescribir la aplicación. Ambas bibliotecas son gratuitas; el servicio opcional LangSmith Plus parte de $39 por usuario al mes, más el consumo.
LangChain vs LangGraph: ¿cuál conviene elegir?
Elige LangChain si necesitas un bucle de agente configurable. Usa LangGraph directamente si necesitas diseñar el proceso que lo rodea. La decisión depende de quién elige el siguiente paso, qué debe conservarse tras una interrupción y qué responsabilidades operativas quieres asumir.
Si vas a crear un asistente de atención al cliente que consulta pedidos y responde preguntas, usa create_agent de LangChain. Tú aportas el modelo, las herramientas y las instrucciones; la abstracción del agente se encarga de repetir la interacción entre modelo y herramientas. Cuando necesites aplicar una política o comprobar una aprobación, añade middleware: código que se ejecuta alrededor de esa interacción.
Si ya tienes una aplicación con LangChain, consérvala hasta que puedas señalar un requisito del flujo que resulte difícil de expresar con esa abstracción. Añadir memoria a la conversación o revisar una llamada a una herramienta no basta como motivo: los agentes actuales de LangChain ofrecen ambas funciones sobre LangGraph. Documentación de agentes de LangChain.
Si la aplicación debe validar una solicitud, recopilar pruebas, esperar a un operador, realizar una acción autorizada y conciliar el resultado, considera un flujo propio con LangGraph. Esas etapas son reglas de negocio que puedes definir de forma explícita, mientras un agente se ocupa del trabajo flexible dentro de una etapa.
Las condiciones de las bibliotecas figuran en las páginas de producto de LangChain y LangGraph. La comparación de funciones se basa en la descripción del entorno de ejecución y la documentación del middleware de aprobación de sus desarrolladores. Es una recomendación de arquitectura, no una clasificación por velocidad.
Qué son hoy LangChain y LangGraph
LangChain aporta los componentes y la abstracción del agente; LangGraph, el motor de orquestación con estado sobre el que se ejecuta. Tratarlos como sustitutos rivales lleva a migraciones innecesarias.
LangChain: una capa de agentes configurable
LangChain describe create_agent como una «estructura mínima y muy configurable». Esa estructura, o harness, es el mecanismo que rodea al modelo: instrucciones, herramientas que puede invocar y controles de comportamiento. La misma descripción afirma expresamente que «los agentes de LangChain están construidos sobre LangGraph». Descripción general de LangChain.
Su ventaja es ofrecer una estructura útil desde el principio. Para un asistente de atención sobre pedidos, puedes exponer como herramienta la función de consulta que ya tienes y añadir reglas de uso. No hace falta construir el bucle a mano antes de empezar a trabajar en el producto.
Su límite aparece cuando esa estructura deja de encajar. Un caso de larga duración, con etapas de negocio bien definidas, puede resultar más difícil de entender si cada transición queda escondida entre prompts, convenciones de las herramientas y middleware. Es una cuestión de mantenimiento: no significa que los agentes de LangChain no puedan bifurcarse o conservar el estado. La biblioteca es gratuita; el acceso a los modelos y la infraestructura que elijas se pagan por separado.
LangGraph: un motor de flujos bajo tu control
LangGraph se define como un «framework y entorno de ejecución de bajo nivel para la orquestación» de agentes con estado y de larga duración. Un nodo es una unidad de trabajo; una arista determina a dónde continúa la ejecución; el estado es la información que pasa de un paso al siguiente. Puedes combinar lógica convencional de la aplicación con decisiones tomadas por el modelo. Descripción general de LangGraph.
LangGraph destaca cuando el propio flujo forma parte del producto. Puedes dejar que un modelo redacte una respuesta mientras el código de la aplicación decide si hace falta aprobarla y si la acción aprobada ya se ha realizado.
La contrapartida es la responsabilidad que asumes. Debes diseñar un estado coherente, las transiciones y el comportamiento ante fallos. Un grafo con límites confusos sigue siendo software confuso. LangGraph también es una biblioteca gratuita y puede usarse sin LangChain, aunque suele resultar práctico conservar los componentes de modelos y herramientas de LangChain.

El punto intermedio práctico consiste en incluir un agente de LangChain dentro de un proceso más amplio. Conserva esa abstracción para el trabajo flexible con herramientas y define de forma explícita la secuencia de negocio que la rodea solo donde haga falta.
Agentes de LangChain frente a LangGraph: dónde está el control
LangChain facilita el trabajo dentro del bucle del agente; LangGraph permite controlar de forma explícita las distintas etapas del negocio. Ambos ofrecen durabilidad y revisión humana, pero sigue siendo necesario configurarlas bien.
Bucles de agentes y aprobación de herramientas: ventaja para LangChain
Un asistente que consulta un pedido, explica su estado y propone una respuesta encaja en el bucle de modelo y herramientas. Añadir una revisión antes de que una herramienta envíe la respuesta también encaja: HumanInTheLoopMiddleware puede pausar las llamadas configuradas y aceptar su aprobación, la modificación de sus argumentos o su rechazo. Utiliza la persistencia de LangGraph para conservar el estado interrumpido. Documentación de intervención humana.
En una aplicación existente de LangChain, el siguiente paso queda bastante acotado: configurar la política de aprobación y un mecanismo persistente de puntos de control, y conectar después la decisión pendiente con la aplicación. El middleware no construye la bandeja de revisiones ni decide qué empleado puede aprobar; esas responsabilidades siguen siendo de la aplicación.
Etapas de negocio explícitas: ventaja para LangGraph
Elige un grafo propio cuando el siguiente paso correcto dependa del registro del negocio y no de la próxima herramienta que sugiera el modelo. Piensa en un proceso de alta de proveedores: recopilar pruebas, validar los campos obligatorios, enviar una excepción a un operador y activar al proveedor solo después de recibir la aprobación.
Un grafo puede representar esas transiciones directamente. El nodo que recopila pruebas puede seguir llamando a un agente de LangChain. La validación y la activación pueden ser funciones convencionales con resultados explícitos. La diferencia útil aquí es la capacidad documentada de LangGraph para combinar pasos deterministas con pasos gestionados por agentes. Descripción general de LangGraph.
El criterio para cambiar es concreto: baja una capa cuando definir el estado y las transiciones de forma explícita elimine dudas recurrentes sobre qué puede hacer la aplicación a continuación. Un prompt más largo, más herramientas o una respuesta lenta del modelo no justifican por sí solos ese cambio.
Durabilidad: la misma base, distinta carga de diseño
Un checkpointer guarda el estado del flujo de un hilo para que la ejecución pueda continuar más adelante. Un store conserva información definida por la aplicación entre distintos hilos, como una preferencia que se utiliza en conversaciones separadas. Resuelven problemas de persistencia diferentes. Documentación de persistencia.
En ambos enfoques, elige el almacenamiento según el fallo que necesites soportar. InMemorySaver conserva los puntos de control en el proceso en ejecución y los pierde al reiniciarse. Sirve para demostrar el estado de una conversación o una interrupción; no demuestra que la aplicación pueda recuperarse si desaparece el proceso de trabajo. Un mecanismo de persistencia respaldado por una base de datos de producción, o la persistencia gestionada por Agent Server, cubre ese requisito de almacenamiento.
También hay que distinguir un punto de control de la confirmación de una acción externa. Guardar «listo para activar al proveedor» no prueba que el sistema de proveedores haya aceptado la activación. Conserva el identificador externo y el resultado en un registro de la aplicación que permita conciliarlos.
Los desarrolladores documentan este reinicio y la necesidad de que los efectos externos sean idempotentes: operaciones que pueden repetirse sin duplicar su efecto sobre el negocio. Por ejemplo, utiliza un identificador de operación estable para que un trabajo reanudado no pueda crear dos veces el mismo proveedor. Reglas de interrupción y repetición.

LangChain vs LangGraph en Python: la misma tarea sencilla
Para consultar el estado de un pedido, LangChain expresa la misma intención con menos código de orquestación. El grafo propio deja visible la ruta entre modelo y herramientas, algo que cobra valor cuando necesitas cambiarla.
Estos ejemplos comparten modelo, prompt, herramienta de solo lectura y entrada. El registro del pedido es un dato de prueba local y expresamente ficticio. Instala langchain[anthropic] y langgraph; para llamar al modelo real, la aplicación necesita ANTHROPIC_API_KEY. El identificador del modelo sigue la descripción actual de LangChain y la guía de inicio rápido de LangGraph de sus desarrolladores. Ambos fragmentos se comprobaron localmente con un modelo de respuestas programadas para verificar la ejecución de la herramienta y el estado guardado. Esta comprobación valida la conexión entre los componentes, no el comportamiento ni el rendimiento de un modelo real.
Guarda esta configuración compartida como common.py:
from langchain.chat_models import init_chat_model
from langchain.tools import tool
model = init_chat_model("claude-sonnet-4-6", temperature=0)
prompt = "Use lookup_order for order status. Do not invent a status."
request = {"messages": [{"role": "user", "content": "Status of order demo?"}]}
config = {"configurable": {"thread_id": "order-demo"}}
@tool
def lookup_order(order_id: str) -> str:
"""Read an order's status from a fictional local fixture."""
return {"demo": "shipped"}.get(order_id, "unknown order")LangChain: aprovechar el bucle existente
Ejecuta lo siguiente como un script independiente junto a common.py:
from common import model, prompt, request, config, lookup_order
from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver
agent = create_agent(
model, tools=[lookup_order], system_prompt=prompt,
checkpointer=InMemorySaver(),
)
print(agent.invoke(request, config)["messages"][-1].content)Este agente ya se apoya en el motor de ejecución del grafo. Pasarle un checkpointer no obliga a sustituir create_agent por un grafo escrito a mano. Configuración del agente.
LangGraph: declarar el mismo bucle
Ejecuta este script alternativo junto al mismo archivo common.py:
from common import model, prompt, request, config, lookup_order
from langchain.messages import SystemMessage
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.graph import StateGraph, MessagesState, START
from langgraph.prebuilt import ToolNode, tools_condition
bound_model = model.bind_tools([lookup_order])
def call_model(state: MessagesState):
reply = bound_model.invoke([SystemMessage(prompt)] + state["messages"])
return {"messages": [reply]}
builder = StateGraph(MessagesState)
builder.add_node("model", call_model)
builder.add_node("tools", ToolNode([lookup_order]))
builder.add_edge(START, "model")
builder.add_conditional_edges("model", tools_condition)
builder.add_edge("tools", "model")
agent = builder.compile(checkpointer=InMemorySaver())
print(agent.invoke(request, config)["messages"][-1].content)La arista condicional envía a tools la llamada que solicita el modelo, o termina cuando este produce una respuesta final. El nodo de herramientas devuelve el control al modelo. Es el patrón de bucle explícito de la guía de inicio rápido de LangGraph, con las utilidades que proporciona para los nodos de herramientas.
Los dos fragmentos usan deliberadamente memoria limitada al proceso y muestran solo el recorrido de lectura cuando todo funciona. Ninguno es una receta de despliegue, una configuración de base de datos persistente ni una política completa de errores. Que la configuración coincida tampoco garantiza que el modelo produzca una salida idéntica palabra por palabra.
Para esta tarea, elige LangChain. Un grafo propio empieza a ser útil cuando el siguiente requisito cambia el proceso: una validación obligatoria antes de la consulta, una cola de excepciones independiente o una etapa de aprobación que necesite su propio estado y sus propios resultados.
Precios de LangSmith y del despliegue de LangGraph
Elegir una biblioteca no implica elegir una tarifa de alojamiento distinta. La decisión de pago depende de los servicios de LangSmith y del entorno de despliegue que necesites. Los precios y la documentación de producto que se presentan a continuación se verificaron en las páginas oficiales el 13 de octubre de 2026.
LangChain, LangGraph y LangSmith: qué aporta cada uno
LangSmith es la plataforma de trazas, evaluación y despliegue que rodea a tu aplicación. Una traza registra una ejecución de la aplicación y puede incluir sus llamadas al modelo y otros pasos. Es un objeto distinto del punto de control que se utiliza para reanudar la aplicación. Precios y definiciones de LangSmith.
Ambas bibliotecas son gratuitas. Si ejecutas cualquiera de ellas en infraestructura que administras, debes seguir presupuestando las llamadas al modelo, el cómputo, el almacenamiento y la operación. Contratar LangSmith es una decisión aparte; su documentación de despliegue admite expresamente aplicaciones de LangGraph y LangChain.
Estas son las condiciones de los planes publicadas en langchain.com/pricing. La calculadora de esa página describe lo incluido en Plus como 10K trazas en total: añadir usuarios no implica sumar otro cupo por cada uno. Para la configuración de observabilidad que muestra, indica 0.005 LSU por traza adicional. Ese valor de la calculadora no debe extrapolarse a todas las opciones de retención de trazas.
Las trazas base se conservan durante 14 días; las trazas extendidas, durante 180 días, con un cargo adicional. Ampliar la retención y contratar servicios de evaluación son decisiones de presupuesto independientes, no ventajas gratuitas por elegir un grafo. Preguntas frecuentes sobre precios.
Opciones de despliegue y sus límites
Cloud es la opción gestionada, disponible desde Plus. LangChain opera la infraestructura. Dentro de Cloud, la página pública de precios ofrece despliegues Serverless y Dedicated en tamaños Small, Medium y Large. Entornos de despliegue.
Serverless encaja con trabajo intermitente, en segundo plano o que tolera latencia. Reduce los recursos a cero cuando está inactivo, y Plus incluye un despliegue pequeño. Dedicated encaja con servicios de cara al cliente que necesitan disponibilidad constante, con infraestructura siempre activa, escalado automático, copias de seguridad y alta disponibilidad. Son los usos que propone el propio proveedor, no mediciones de rendimiento de esta comparativa. Preguntas frecuentes sobre precios de despliegue.
Hay una limitación práctica que afecta al plan de migración: puedes cambiar el tamaño de un despliegue, pero no su tipo una vez creado. Pasar de Serverless a Dedicated exige, por tanto, una transición entre despliegues y no solo un ajuste de tamaño. Además, los recursos de Serverless se facturan mientras están aprovisionados, incluido el tiempo de inactividad anterior a la reducción de recursos. «Escalar a cero» no significa que cada segundo sin solicitudes sea gratuito. Funciones de la plataforma Cloud.
Hybrid mantiene el plano de control gestionado mientras tú operas la infraestructura de los agentes. El plano de control es el servicio que administra los despliegues; el plano de datos ejecuta los agentes y los servicios que los sustentan. La opción autogestionada con plano de control sitúa ambos en tu entorno. La página de precios incluye las opciones híbridas y autogestionadas dentro de Enterprise, con precio a medida. No hay un importe mensual fijo y público para empresas que pueda usarse en su lugar. Precios y entornos de despliegue.
Agent Server independiente es otra opción operativa, sin plano de control y con servicios de soporte propios. Su documentación exige una licencia de LangSmith, PostgreSQL y Redis. Es distinto de integrar la biblioteca gratuita LangGraph en tu aplicación. La documentación del servidor independiente también desaconseja desplegarlo en un entorno serverless que escale a cero; el producto gestionado Cloud Serverless tiene una configuración diferente. Agent Server independiente.
La misma carga de trabajo cuesta lo mismo con ambos frameworks
La página pública fija $1.00 por LSU, o LangChain Standard Unit, y enumera estas tarifas de recursos de despliegue:
- Cómputo del entorno de ejecución: 0.0675 LSU / vCPU-hr.
- Memoria del entorno de ejecución: 0.0090 LSU / GiB-hr.
- Cómputo de la base de datos: 0.177 LSU / vCPU-hr.
- Memoria de la base de datos: 0.025 LSU / GiB-hr.
Estas tarifas se aplican al consumo facturable de recursos de los despliegues Serverless y Dedicated adicionales. Tarifas publicadas de despliegue.
Tanto para un agente de LangChain como para una aplicación con un grafo propio de LangGraph, el cálculo mensual de Plus sobre una base comparable es $39 × usuarios, más cada cantidad de horas de recursos facturables multiplicada por su tarifa anterior, más el consumo del modelo, las trazas y los demás cargos aplicables. Descuenta lo cubierto por el despliegue incluido antes de contar los recursos facturables. No conviertas solicitudes ni nodos del grafo en horas de recursos sin mediciones.
Los siguientes importes se obtienen con los tamaños publicados por el proveedor: son cálculos, no precios de planes citados. Un despliegue Serverless adicional de tamaño Small tiene 1 vCPU y 2 GiB de recursos de ejecución, lo que da 1 × 0.0675 + 2 × 0.0090 = $0.0855 por hora aprovisionada. Un despliegue Dedicated de tamaño Small especifica 3 vCPU y 6 GiB para ejecución, más 1 vCPU y 4 GiB para su base de datos, lo que da 3 × 0.0675 + 6 × 0.0090 + 1 × 0.177 + 4 × 0.025 = $0.5335 por hora aprovisionada. Son estimaciones de recursos según el tamaño, antes de cualquier escalado adicional u otros servicios, basadas en la tabla de tamaños y las tarifas publicadas.
Para un único usuario de Plus, manteniendo constante ese perfil de recursos de Dedicated, el subtotal mensual es $39 + $0.5335 × horas aprovisionadas, antes de los demás cargos mencionados. La fórmula es idéntica para ambos frameworks. Para garantizar una factura mensual hace falta conocer el tiempo real de uso de los recursos y el escalado del despliegue.
Con la misma carga de trabajo, no hay un punto a partir del cual un framework resulte más barato que el otro. La diferencia calculada es de $0 si se mantienen iguales los usuarios, los recursos facturables, el uso de modelos y herramientas y la política de trazas. Rediseñar el flujo puede cambiar esas cantidades, pero el nombre de la biblioteca no aporta un descuento ni garantiza una factura de tokens menor.
Cómo pasar de LangChain a LangGraph sin reescribirlo todo
Migra la parte de la orquestación que necesita más control y conserva los componentes que siguen funcionando. El costo relevante de la migración está en rediseñar el estado, el comportamiento y la recuperación, no en cambiar la instrucción de importación.
Primero distingue entre actualizar una API antigua y decidir usar un grafo propio. La guía de migración actual recomienda langchain.agents.create_agent en lugar del constructor anterior langgraph.prebuilt.create_react_agent. Seguir esa migración no supone abandonar LangGraph como base, y una aplicación antigua puede aprovechar las funciones actuales de LangChain antes de necesitar una orquestación a medida. Guía de migración de LangChain.
Identifica el requisito que el bucle actual no expresa con claridad
Escribe la secuencia exacta, la decisión pendiente o el problema de recuperación. «Esperar la aprobación antes de llamar a esta herramienta» puede encajar en middleware. «Mantener un caso de alta a través de la recopilación de pruebas, la revisión, la activación y la conciliación» apunta a un flujo explícito.
Mantén estables las interfaces del modelo y las herramientas
Reutiliza los adaptadores, prompts y funciones de negocio que sigan sirviendo para la tarea. Introduce un grafo alrededor del proceso concreto que lo necesite. Evita sustituir el modelo, cambiar el comportamiento de las herramientas y modificar la orquestación al mismo tiempo: dificultaría localizar las regresiones.
Define el estado persistente y las confirmaciones de acciones externas
Separa los mensajes de la conversación, el estado del caso, las decisiones pendientes y las acciones externas completadas. Decide qué corresponde a los puntos de control, qué va en un almacén compartido y qué permanece en el registro de referencia de la aplicación. Guardar una transcripción del chat no equivale a haber migrado un flujo de negocio.
Planifica qué hacer con el trabajo en curso
No des por hecho que un grafo modificado puede interpretar todos los puntos de control anteriores. Decide si los trabajos pendientes terminarán en la implementación anterior o si recibirán una migración explícita de estado. Conserva identificadores de trabajo estables y las confirmaciones externas necesarias para evitar acciones duplicadas.
Comprueba las interrupciones antes de ampliar la migración
Prueba ese flujo acotado con un rechazo, un reinicio del proceso de trabajo y una solicitud de reanudación repetida. Inspecciona el registro resultante de la aplicación, no solo la respuesta final. Amplía la migración cuando los nuevos límites faciliten explicar y operar el comportamiento.
No cambies un asistente de LangChain que funciona solo porque los grafos parezcan más adecuados para producción. Si el bucle, el middleware y el almacenamiento persistente cubren los requisitos, un grafo propio añade trabajo de diseño sin un beneficio demostrado.
La dependencia tecnológica también tiene capas. Los componentes reutilizables de modelos y herramientas pueden permanecer mientras cambian el estado del grafo y el flujo de control. La infraestructura alojada añade sus propias restricciones: se accede a la persistencia de Cloud mediante Agent Server, y la base de datos alojada no es accesible directamente. Ten en cuenta ese límite de acceso ante una futura exportación o un cambio de alojamiento. Detalles de la persistencia en Cloud.
Si tu decisión es otra y quieres comparar la orquestación con grafos frente a una abstracción de equipo de especialistas, lee LangGraph vs CrewAI. Para explorar opciones fuera de este conjunto de herramientas, consulta la comparativa de frameworks para agentes de IA.
Preguntas habituales al elegir una arquitectura
¿Necesito LangGraph solo para añadir memoria o aprobación humana?
Necesitas las funciones que ofrece como base, pero no necesariamente escribir un grafo propio. Los agentes actuales de LangChain ya utilizan LangGraph y admiten mecanismos de puntos de control y middleware de aprobación. Elige almacenamiento persistente cuando el estado deba sobrevivir al reinicio de un proceso.
¿Es LangGraph una alternativa a LangChain?
Puede ser tu punto de entrada directo a la orquestación mientras los componentes de LangChain siguen dentro de la aplicación. Son capas complementarias. Un grafo propio sustituye la forma de definir el flujo, no necesariamente los adaptadores de modelos ni las herramientas.
¿Conviene cambiar una aplicación de LangChain que ya funciona?
Cambia el flujo correspondiente cuando unas etapas, bifurcaciones o límites de recuperación explícitos resuelvan un problema identificado. Conserva la abstracción actual si el bucle del agente y el middleware expresan tus requisitos con claridad.
¿Necesito LangSmith para usar alguna de las dos bibliotecas?
Las bibliotecas pueden usarse gratuitamente y de forma independiente de la plataforma de pago. El despliegue gestionado, las trazas y la evaluación opcionales tienen condiciones propias. El Agent Server independiente con licencia también es distinto de ejecutar la biblioteca de código abierto dentro de tu servicio.
¿Cuál es más rápido o más barato?
Esta comparativa no establece un resultado universal de velocidad. La misma carga de trabajo facturable utiliza las mismas tarifas publicadas de LangSmith. Compara trabajos completados, incluidas las llamadas al modelo, los reintentos y el tiempo de uso de los recursos, antes de atribuir una diferencia de costo al cambio de arquitectura.
Usa la lista de verificación para auditar flujos de negocio con IA para definir la tarea, qué requiere revisión y quién se responsabiliza de la operación antes de cambiar la orquestación.
- Publicado
- Categoría
- Build
- Idioma










