¿Por qué los equipos migran de las cadenas de LangChain a los flujos de trabajo de LangGraph?
Los agentes de producción necesitan un estado duradero, ramas y HITL. Mantenga las herramientas de LangChain dentro de los nodos; transfiera el flujo de control a un grafo explícito cuando la operabilidad lo exija.
Los equipos que superan las limitaciones de las cadenas lineales de LangChain suelen recurrir a LangGraph, no porque esas cadenas estén “muertas”, sino porque los agentes de producción necesitan un estado duradero, ciclos y un flujo de control explícito. La migración se debe a problemas operativos: intentos repetidos, controles manuales, ramificaciones y dificultades para observar el progreso parcial.
Lo que hizo bien LangChain
LangChain permitió que los LLM fueran programables mediante prompts componibles, herramientas, recuperadores de datos y conexiones LCEL. Normalizó la idea de que una aplicación es un grafo de llamadas a modelos y transformaciones de datos, e incluyó herramientas para demostraciones RAG que siguen siendo útiles en el ecosistema. Para flujos de una sola pasada o con pocas ramificaciones, sigue siendo una herramienta muy útil.
Dónde comienza a presentar problemas en producción
Los ejecutores de agentes lineales o ad hoc resultan insuficientes cuando se necesita:
- Bucles que vuelvan a realizar búsquedas tras un fallo
- Pausas y reanudaciones entre reinicios del proceso
En ese punto, introducir más memoria en una cadena oculta la topología dentro de los prompts. Los fallos se convierten en narrativas en lugar de transiciones de estado escritas.
Qué cambia realmente LangGraph
LangGraph trata como clases principales a state, nodes, edges y checkpoints. El entorno de ejecución conoce la posición del cursor en el flujo de trabajo. Las interrupciones, las reproducciones y la transmisión en tiempo real de eventos de nodos se vuelven algo natural. Todavía se utilizan componentes de LangChain dentro de los nodos; lo que cambia es la capa de orquestación.
La forma del código, concretamente
Un modelo mental en forma de cadena:
from langchain.agents import AgentExecutor, create_tool_calling_agent
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = executor.invoke({"input": "Find the latest invoice and flag anomalies"})
Un modelo mental en forma de grafo con ramas explícitas y persistencia:
from langgraph.graph import StateGraph, END
def call_model(state: AgentState) -> AgentState:
response = llm.invoke(state["messages"])
return {"messages": [response]}
def route(state: AgentState) -> str:
last = state["messages"][-1]
return "tools" if last.tool_calls else END
graph = StateGraph(AgentState)
graph.add_node("agent", call_model)
graph.add_node("tools", tool_node)
graph.add_conditional_edges("agent", route, {"tools": "tools", END: END})
graph.add_edge("tools", "agent")
app = graph.compile(checkpointer=checkpointer)
El segundo formato convierte el enfoque de “evaluar primero y luego reescribir” en un elemento visible, no en un párrafo dentro de una instrucción extensa.
Dónde encajan CrewAI y Pydantic AI
CrewAI optimiza la colaboración entre roles/tareas cuando la metáfora utilizada es la de una tripulación, y no la de una máquina de estados. Pydantic AI y otros kits de agentes tipados priorizan el uso de herramientas basadas en esquemas. Pueden coexistir con LangGraph o reemplazarlo cuando las necesidades de flujo de control son menores. La presión para migrar a LangGraph es mayor cuando la durabilidad y las ramificaciones son cruciales, no cuando basta con una lista corta de tareas para la tripulación.
Los verdaderos problemas detrás de la migración
- Flujo de control oculto en los ejecutores de agentes.
- Falta de posibilidad de esperar a los humanos sin modificar el estado global.
- Tempestades de intentos que vuelven a realizar llamadas a herramientas irreversibles.
LangGraph no arregla mágicamente herramientas defectuosas, pero permite abordar esos problemas durante las revisiones de código.
Cuando LangChain sigue siendo útil
- Flujos de prompts similares a ETL
- RAG simple sin bucles
- Código de enlace dentro de los nodos del grafo
- Aceleración en la enseñanza y creación de prototipos
No reescriba un trabajo por lotes LCEL que funcione solo para adaptarlo a un grafo.
Cuando vale la pena reescribirlo
- Agentes de múltiples pasos con capacidad de reflexión
- Cumplimiento de HITL
- Flujos de trabajo de investigación u operaciones de larga duración
- Necesidad de depuración con “viaje en el tiempo” del estado
Guía de migración
- Inventariee las cadenas y marque aquellas que requieran intentos repetidos, ramificaciones o HITL.
- Extraer el esquema de estado compartido (TypedDict / Pydantic).
- Convertir cada segmento de la cadena en un nodo con entradas/salidas claras.
- Sustituir las ramas descritas en los prompts por aristas condicionales.
- Agregar verificadores antes de habilitar la pausa/reanudación en producción.
- Mantener los recuperadores/herramientas de LangChain dentro de los nodos para evitar una reescritura total de las integraciones existentes.
Efectos organizativos
Los grafos crean un lenguaje común entre los ingenieros de ML y los de la plataforma: los nodos representan la responsabilidad por tareas y las aristas, los acuerdos de nivel de servicio. La respuesta a incidentes mejora cuando las páginas mencionan los nombres de los nodos. Esa claridad es una parte importante de las razones para migrar, más allá de cualquier prueba de rendimiento.
Costos y compensaciones
Los grafos añaden código genérico y requieren un tiempo de aprendizaje. Fragmentar excesivamente cada herramienta en un nodo genera ruido innecesario. Comience de forma general: ciclo de recuperación → generación → evaluación → reescritura, y luego divida los nodos según lo indiquen las métricas.
Cierre
LangChain enseñó a la industria cómo conectar modelos. LangGraph enseña cómo ejecutarlos como sistemas. La migración no es tanto un rechazo como una admisión de que los agentes de producción son flujos de trabajo, y estos flujos de trabajo merecen máquinas de estado, no solo secuencias de operaciones.
Notas de campo de los equipos que realizaron la migración
Esperar ejecuciones paralelas: mantenga la ruta de cadena para el tráfico de bajo riesgo mientras un porcentaje de sesiones se dirige al grafo. Compare las tasas de error de las herramientas, los pasos medios hasta la finalización y la frecuencia de interrupciones humanas. Si el grafo resulta más operativo incluso con una calidad de respuesta similar, realice la migración. De lo contrario, el problema radicaba en otro lugar, generalmente en el diseño o la evaluación de las herramientas, y no en la marca del orquestador.
Documentación contra objetivos imposibles: LangGraph no corregirá un índice que no pueda responder, ni una herramienta sin claves de idempotencia. Combine la migración con contratos para las herramientas y con conjuntos de evaluación offline que prueben los caminos de decisión que le interesan.
Las métricas de interés muestran que los desarrolladores se inclinan por kits de tipo gráfico y basados en equipos, ya que los agentes de producción exigen un estado duradero y la capacidad de tomar decisiones en ramas, no simplemente cadenas más largas. La primera ola de aplicaciones basadas en LLM recompensó pipelines simples de llamada y recuperación; la ola actual premia flujos de trabajo explícitos.
Patrones que aparecen en los análisis posteriores
Cuando un agente basado en cadenas falla en producción, la descripción suele ser siempre la misma: el modelo “decidió” omitir una herramienta de verificación, o un intento de repetición generó un efecto secundario, o nadie pudo determinar si se había ejecutado la recuperación de datos. Los gráficos no eliminan esos errores, pero sí cambian las pruebas disponibles posteriormente. Los registros a nivel de nodo y las diferencias entre puntos de control muestran el último estado válido. Esto acorta el tiempo promedio necesario para comprender lo sucedido, incluso cuando el tiempo promedio de reparación sigue dependiendo de la calidad de las herramientas.
Diseñando el estado para que las migraciones den resultados
Un esquema de estado útil nombra explícitamente los hitos comerciales: retrieved, drafted, graded, approved, committed. Las aristas mueven esas marcas; las solicitudes no las crean. Durante la migración, asocia cada segmento antiguo de la cadena con un hito. Si no es posible nombrar un hito, es posible que ese segmento aún no necesite su propio nodo.
Intervención humana sin soluciones temporales globales
A menudo, las cadenas de procesamiento colocan la intervención humana en colas externas conectadas mediante callbacks. Los mecanismos de interrupción de LangGraph mantienen la espera dentro del entorno de ejecución: el punto de control se congela, una interfaz gráfica recoge la aprobación y la continuación del proceso se realiza con el mismo identificador de hilo. Ese diseño elimina toda una categoría de errores relacionados con la “aprobación perdida” que afectan a los sistemas manuales de espera.
Transmisión en tiempo real y expectativas de la UX
Los usuarios de productos basados en agentes esperan flujos de tokens así como flujos por etapas (“búsqueda”, “evaluación”, “espera de aprobación”). Los flujos de eventos del grafo se corresponden perfectamente con esas etapas. Las cadenas de procesamiento pueden simularlo con callbacks personalizados, pero el modelo basado en grafo coincide con el vocabulario de la UX que ya está consolidándose en el mercado.
Control de costos
Más nodos pueden significar más llamadas al modelo. Establezca un límite presupuestario para las repeticiones en los bucles de reflexión. El almacenamiento en caché mantiene los resultados del estado durante toda la vida útil de un hilo. Prefiera clasificadores económicos para los nodos de enrutamiento y reserve modelos grandes para la síntesis. La migración es una oportunidad para insertar esos controles de forma intencionada en lugar de descubrirlos al revisar la factura de nube.
Interoperabilidad con inversiones existentes en LangChain
Los recuperadores, envoltorios de herramientas, analizadores de salida y plantillas de prompts rara vez necesitan ser reescritos. Los nodos los importan. El argumento basado en costos ya invertidos en contra de LangGraph suele desvanecerse una vez que los equipos comprenden que la migración consiste en trasplantar una orquestación existente, no en reconstruirla desde cero. Cuando CrewAI u otros kits ya cuentan con un subsistema, envuélvalos como un único nodo en lugar de forzar una cultura homogénea.
Matriz de decisiones (condensada)
| Semilla | Cadena ligera | Gráfico ligero |
|---|
Historia de una semana típica de reescritura
Días 1–2: dibujar la cadena actual como un grafo en una pizarra; nombrar los estados. Día 3: implementar el camino óptimo con dos aristas condicionales. Día 4: agregar puntos de control e interrupciones en la herramienta peligrosa. Día 5: analizar el tráfico y comparar las huellas. Los equipos que omiten el paso de la pizarra crean estructuras complejas dentro de los nodos y se preguntan por qué nada mejora.
Qué significa “listo” para la migración
La migración se logra cuando los operadores pueden determinar, únicamente con las herramientas disponibles, qué nodo se ejecutó por último, qué claves de estado cambiaron y cómo reproducir desde el punto de control anterior, sin necesidad de revisar registros antiguos en Slack. La calidad de las respuestas puede permanecer igual desde el primer día; sin embargo, la capacidad operativa no debería seguir así.
Diferencias concretas en las superficies de errores
Los errores en cadenas suelen manifestarse como una única excepción que envuelve un fallo del modelo dentro de una secuencia ejecutable. Los errores en grafos pueden atribuirse al nombre del nodo y a las claves de estado presentes cuando ocurrió el fallo. Los ingenieros de soporte utilizan esa atribución para decidir si corregir la recuperación de datos, las instrucciones de evaluación o los adaptadores de herramientas. Con el paso de los meses, esta diferencia influye más en la narrativa sobre el retorno de inversión de la migración que cualquier microprueba de tokens por segundo.
Versionado de grafos
Trate las definiciones de gráficos compilados como artefactos con versión. Cuando cambian los contratos de nodos, aumente el valor de graph_version en los metadatos del punto de control y rechace las continuaciones incompatibles. Sin esa disciplina, la función de pausar/reanudar se convierte en un obstáculo durante los despliegues progresivos. Las cadenas rara vez se enfrentaron a esto porque pocas veces se pausaban en medio del proceso; los gráficos hacen que el problema sea visible y resoluble.
Experiencia de desarrollo local
La capacidad de LangGraph para examinar los nodos con su estado actualizado mejora la revisión de las propuestas de cambio. Los revisores pueden ejecutar un único nodo con entradas registradas en lugar de reproducir toda la cadena. Ese flujo de trabajo fomenta nodos más pequeños y verificables, la misma presión que una buena arquitectura de servicios ya aplica a los controladores HTTP.
Cuándo no fragmentar
Si dos “nodos” siempre se ejecutan juntos sin ninguna conexión entre ellos, consérvelos como un único nodo que contenga llamadas secuenciales a LangChain. Los grafos deben codificar las decisiones, no los límites de cada función. La sobrefragmentación es el modo de fallo de las migraciones realizadas con entusiasmo.
Trayectoria del ecosistema
A medida que los herramientas de verificación de puntos de control, los depuradores y las ayudas para despliegue maduran, disminuye el costo de elegir grafos desde el principio. Sin embargo, la razón estratégica sigue siendo la honestidad en el flujo de control: los agentes son flujos de trabajo, y estos merecen máquinas de estado explícitas cuando es importante la fiabilidad en producción.
Anexo: temas para iniciar conversaciones sobre revisión de arquitectura
Pregunte si el agente actual puede hacer una pausa para revisión legal sin perder su estado; si se evitan las llamadas duplicadas a herramientas al intentar nuevamente; si un nuevo ingeniero puede identificar los pasos a partir únicamente de un seguimiento; y si la evaluación abarca todos los caminos posibles, no solo el camino de recuperación exitosa. Las respuestas negativas son señales de migración. Las respuestas positivas pueden indicar que LangChain-plus-discipline ya es suficiente, y eso también constituye un resultado válido.
Apéndice: temas para iniciar conversaciones sobre revisión de arquitectura
Pregunte si el agente actual puede pausarse para una revisión legal sin perder su estado; si se evitan las llamadas duplicadas a herramientas al intentarlo de nuevo; si un ingeniero nuevo puede identificar los pasos a partir únicamente de un seguimiento; y si la evaluación abarca todos los caminos posibles, no solo el camino de recuperación exitosa. Las respuestas negativas son señales de migración. Las respuestas positivas pueden indicar que LangChain-plus-disciplina ya es suficiente, y eso también constituye un resultado válido.
La operabilidad es el KPI de migración que, con el tiempo, los departamentos financieros terminan observando.
Documente las suposiciones sobre el flujo de control junto al código para que las ediciones futuras no eliminen silenciosamente algún nodo o filtro. Prefiera afirmaciones verificables por máquinas en lugar de conocimientos internos compartidos únicamente en hilos de chat. Realice simulacros de fallos cada vez que cambien las reglas de topología o identidad. Mantenga los conjuntos de evaluación versionados junto con el grafo para que las regresiones se detecten antes de que lo hagan los clientes.
Lecturas relacionadas
- Construye tus primeros flujos de trabajo LangGraph antes de los sistemas multi-agente — Aprende LangGraph con ejemplos compatibles con Colab: estado compartido, nodos secuenciales, un único paso de LLM y una tubería de blog de múltiples etapas.
- Divide los mensajes humanos con múltiples intenciones en planes de subtareas LangGraph — Los supervisores principales deben analizar las solicitudes humanas complejas en subtareas tipadas para que los equipos de solicitud y búsqueda dejen de heredar el tema incorrecto de un mensaje compartido.