Skip to content
Explicado: ¿Qué es LangChain? ¿Cómo usar las LangChain Chains?

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_parser

Una 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?

  1. PromptTemplate formatea "Describe a perfect day in Paris."
  2. El LLM genera la descripción
  3. 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 | step3

Ejemplo: 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 step

Conclusió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)

  1. ¿Qué es LangChain?
    LangChain es un framework para crear aplicaciones de IA usando prompts, modelos, tools, memoria y workflow graphs.

  2. ¿Qué reemplaza a SimpleSequentialChain?
    Los pipelines LCEL usando el operador | para el procesamiento secuencial.

  3. ¿Cómo añado memoria?
    Usa ConversationBufferMemory, SummaryMemory o memoria personalizada inyectada en tu chain.

  4. ¿Siguen siendo útiles los agents?
    Sí, cuando se necesita selección dinámica de tools. Para pasos fijos, las chains son más limpias.

  5. ¿Dónde puedo aprender más?
    Visita la documentación de LangChain o explora LangGraph para la orquestación de agents basada en workflows.

📚