Las complejidades de las LangChain Chains: desatando el poder de los flujos de trabajo de IA modernos
Updated on
LangChain sigue evolucionando rápidamente, y las chains siguen siendo uno de sus conceptos más esenciales. En esta guía actualizada, exploramos qué significan realmente las LangChain Chains en 2025, cómo funcionan usando el nuevo LCEL (LangChain Expression Language) y cómo ayudan a los desarrolladores a crear aplicaciones de IA fiables y de múltiples pasos.
Este artículo actualiza todos los ejemplos a los estándares modernos de LangChain, reemplazando clases obsoletas como LLMChain por Runnables, PromptTemplate, ChatModels y pipelines secuenciales.
¿Qué es LangChain? (visión general 2025)
LangChain es un potente framework de Python/JavaScript que ayuda a los desarrolladores a crear aplicaciones de IA usando:
- Modelos de lenguaje grandes (LLMs)
- Plantillas de prompt
- Memoria
- Tools & agents
- Retrieval (RAG)
- Workflow graphs (LangGraph)
El concepto más icónico de LangChain es la Chain:
un pipeline reutilizable y componible que pasa datos paso a paso por prompts, modelos, tools, transformaciones y parsers de salida.
📘 ¿Quieres una introducción básica? Lee nuestro artículo introductorio de LangChain.
¿Qué son las LangChain Chains?
En 2023, las chains se creaban comúnmente usando LLMChain y clases personalizadas de Python.
En 2025, la forma recomendada es LCEL, que utiliza una sintaxis de pipeline funcional y limpia:
chain = prompt | model | output_parserUna Chain es simplemente:
- Una secuencia de pasos
- Conectados en una única unidad invocable
- Donde la salida de un paso se convierte en la entrada del siguiente
LangChain ahora proporciona:
- Simple Chains (un solo modelo + prompt)
- Sequential Chains (múltiples pasos)
- Parallel Chains (flujos ramificados)
- Agents (chains que eligen tools de forma dinámica)
Veamos ejemplos modernos.
Chains básicas (actualizado para 2025)
Una chain básica dispara un modelo con un único prompt.
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
prompt = PromptTemplate.from_template(
"Describe a perfect day in {city}."
)
model = ChatOpenAI(model="gpt-4o-mini")
chain = prompt | model
chain.invoke({"city": "Paris"})¿Qué está ocurriendo?
- PromptTemplate formatea
"Describe a perfect day in Paris." - El LLM genera la descripción
- La salida se devuelve como ChatMessage o string, según la configuración
Esta es la chain más simple posible en el LangChain moderno.
Chains avanzadas: pipelines multi‑paso
Las chains multi‑paso combinan varias operaciones.
Ejemplo: Resumir → Traducir usando LCEL:
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
summarize_prompt = PromptTemplate.from_template(
"Summarize this text:\n\n{text}"
)
translate_prompt = PromptTemplate.from_template(
"Translate this into Spanish:\n\n{summary}"
)
model = ChatOpenAI(model="gpt-4o-mini")
summarize_chain = summarize_prompt | model
translate_chain = translate_prompt | model
full_chain = summarize_chain | (lambda x: {"summary": x.content}) | translate_chain
full_chain.invoke({"text": "Climate change is causing rapid ocean warming..."})Por qué esto es importante
Esto refleja las mejores prácticas modernas de LangChain:
- Runnables en lugar de las antiguas clases de chain
- Composición funcional usando
| - Mapeo de datos intermedios con funciones de Python
Chains sin LLMs (pipelines de transformación y limpieza)
No todas las chains necesitan un LLM. Puedes crear pipelines de preprocesamiento o postprocesamiento.
Ejemplo: recortar espacios → convertir a minúsculas → enviar al LLM:
def cleanup(text):
return text.strip().lower()
chain = cleanup | model
chain(" WHAT is the WEATHER LIKE? ")Cualquier función de Python puede insertarse en una chain siempre que acepte y devuelva datos serializables.
Sequential Chains (reemplazo de SimpleSequentialChain)
SimpleSequentialChain y SequentialChain están obsoletas.
El equivalente en LCEL es simplemente:
chain = step1 | step2 | step3Ejemplo: Limpiar el prompt → reescribir → responder
from langchain_openai import ChatOpenAI
clean = lambda x: x.strip()
rewrite_prompt = PromptTemplate.from_template(
"Rewrite this more clearly: {text}"
)
answer_prompt = PromptTemplate.from_template(
"Answer this question: {question}"
)
model = ChatOpenAI(model="gpt-4o-mini")
rewrite_chain = rewrite_prompt | model
answer_chain = answer_prompt | model
chain = clean | (lambda x: {"text": x}) | rewrite_chain | (lambda x: {"question": x.content}) | answer_chain
chain.invoke(" What is LangChain used for? ")Este es el reemplazo moderno de SimpleSequentialChain.
El papel de los agents en LangChain (edición 2025)
Los agents permiten que los LLMs elijan tools de forma dinámica:
- Motores de búsqueda
- Ejecución de código
- Calculadoras
- APIs
- Retrievers
- Funciones personalizadas
Ejemplo (sintaxis moderna):
from langchain.agents import AgentExecutor, load_tools, create_react_agent
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
tools = load_tools(["llm-math"], llm=llm)
agent = create_react_agent(llm, tools)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
executor.invoke({"input": "If I'm half my dad's age and he'll be 60 next year, how old am I?"})Los agents son más útiles cuando la tarea requiere:
- Razonamiento
- Elegir las tools correctas
- Varios pasos de decisión
Para flujos fijos, una simple chain suele ser mejor.
Ejemplo práctico: un flujo de recomendación de películas (actualizado)
Modernizamos tu ejemplo de chain con dos LLMs usando LCEL.
Paso 1 — Preguntar al usuario por géneros
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
ask_prompt = PromptTemplate.from_template(
"Ask the user about their favorite movie genres."
)
ask_chain = ask_prompt | ChatOpenAI(model="gpt-4o-mini")Paso 2 — Recomendar películas
recommend_prompt = PromptTemplate.from_template(
"Based on these genres: {genres}, recommend 5 movies."
)
recommend_chain = recommend_prompt | ChatOpenAI(model="gpt-4o-mini")Combinarlos
chain = ask_chain | (lambda x: {"genres": x.content}) | recommend_chain
chain.invoke({})Añadiendo memoria (en versión moderna)
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True)
# pipelines can load memory before passing to next stepConclusión
El LangChain moderno (2024–2025) hace que construir flujos de trabajo de IA escalables sea más fácil que nunca usando pipelines LCEL, Runnables y agents. Tanto si estás:
- Preprocesando texto
- Construyendo flujos multi‑paso
- Integrando tools
- Creando agents dinámicos
LangChain proporciona los bloques de construcción para conectar todo de forma limpia y fiable.
Experimenta libremente: las chains simples pueden evolucionar rápidamente hasta convertirse en potentes aplicaciones de IA.
FAQ (actualizado)
-
¿Qué es LangChain?
LangChain es un framework para crear aplicaciones de IA usando prompts, modelos, tools, memoria y workflow graphs. -
¿Qué reemplaza a SimpleSequentialChain?
Los pipelines LCEL usando el operador|para el procesamiento secuencial. -
¿Cómo añado memoria?
UsaConversationBufferMemory,SummaryMemoryo memoria personalizada inyectada en tu chain. -
¿Siguen siendo útiles los agents?
Sí, cuando se necesita selección dinámica de tools. Para pasos fijos, las chains son más limpias. -
¿Dónde puedo aprender más?
Visita la documentación de LangChain o explora LangGraph para la orquestación de agents basada en workflows.