LangChain por dentro: análisis del repo, create_agent, middleware y cuándo usarlo

Por David Moya · · 9 min lectura · Análisis de repos

Analizamos langchain-ai/langchain, el repo que votó la comunidad: estructura, create_agent, middleware, MCP, modelos locales con Ollama, LangGraph vs Deep Agents y veredicto.

LangChain por dentro: análisis del repo, create_agent, middleware y cuándo usarlo

Míralo en vídeo (8 min)

Mateo recorre el repositorio por dentro: estructura, create_agent, middleware, MCP y el veredicto final.

Ver el análisis en YouTube

Por qué analizamos LangChain

Este análisis lo ha elegido la comunidad de IAcademy por votación. Y tiene sentido: langchain-ai/langchain es uno de los repositorios de inteligencia artificial más seguidos de GitHub, con más de 148.000 estrellas, casi 25.000 forks y unas 3.700 personas que han contribuido. Su paquete principal supera los 170 millones de descargas al mes en PyPI.

Pero la popularidad no responde a la pregunta que importa: ¿te conviene LangChain para tu agente? En este artículo lo analizamos por dentro, con el código de la versión 1.x en la mano, y te damos un veredicto con sus pros y sus contras. Si buscas un tutorial paso a paso desde cero, tienes la guía de LangChain en español; si dudas entre frameworks, la comparativa LangChain vs LlamaIndex.

Qué es LangChain hoy

LangChain es un framework de código abierto, con licencia MIT, para construir agentes y aplicaciones con modelos de lenguaje. Su propuesta es ofrecer piezas con una interfaz común (modelos, herramientas, prompts, recuperadores de documentos, bases vectoriales) que encajan entre sí, de modo que puedes cambiar una sin reescribir el resto.

El repositorio nació el 17 de octubre de 2022, semanas antes del lanzamiento de ChatGPT, y exactamente tres años después, el 17 de octubre de 2025, publicó la versión 1.0, que reorganizó el proyecto alrededor de los agentes. Hoy se presenta como «The agent engineering platform»: ya no habla de cadenas, habla de agentes.

Las cifras del repositorio

Métrica (21-10-2026)Valor
Estrellas148.177
Forks24.865
Contribuidores~3.700
Versiones publicadas en el último mes33
Última versión de langchain1.4.6 (14-10-2026)
Descargas mensuales en PyPI (langchain)~170 millones
Incidencias abiertas / PR abiertos539 / 119

La lectura es doble. Lo bueno: el proyecto está muy vivo, los fallos se corrigen rápido y los modelos nuevos llegan enseguida. Lo menos bueno: con ese ritmo de versiones, tienes que fijar las versiones en tu proyecto y leer las notas antes de actualizar.

Cómo está organizado el repositorio

Todo el código vive en la carpeta libs/, que es un monorepo con varios paquetes independientes:

Es la gran lección de la versión 1: un núcleo pequeño y estable, y todo lo demás en paquetes que instalas solo si los necesitas.

Tu primer agente con create_agent

La pieza central de LangChain 1.x es una función: create_agent. Recibe el modelo (como texto "proveedor:modelo"), una lista de herramientas, que son funciones de Python con su descripción, y las instrucciones del sistema.

from langchain.agents import create_agent

def tiempo(ciudad: str) -> str:
    """Devuelve el tiempo actual de una ciudad."""
    return f"En {ciudad} hace sol y 22 grados"

agent = create_agent(
    model="openai:gpt-5.5",
    tools=[tiempo],
    system_prompt="Eres un asistente breve y preciso.",
)

agent.invoke({"messages": [{"role": "user", "content": "¿Qué tiempo hace en Madrid?"}]})

El agente razona, decide llamar a tiempo, lee el resultado y responde. Por debajo, create_agent construye un grafo de LangGraph, el motor que gestiona los pasos, el estado y la memoria. Dos parámetros más que conviene conocer: response_format, para recibir la respuesta como datos estructurados con los campos que tú definas, y checkpointer, para que el agente recuerde la conversación y pueda retomar un trabajo.

Middleware: lo que separa una demo de producción

Lo más interesante de la v1 está en libs/langchain_v1/langchain/agents/middleware/. Un middleware se coloca entre el agente y el modelo, o entre el agente y sus herramientas, y controla lo que ocurre. Algunos de los que vienen de serie:

from langchain.agents.middleware import (
    HumanInTheLoopMiddleware, PIIMiddleware, ToolCallLimitMiddleware,
)

agent = create_agent(
    model="openai:gpt-5.5",
    tools=[buscar_cliente, enviar_email],
    middleware=[
        HumanInTheLoopMiddleware(interrupt_on={"enviar_email": True}),
        PIIMiddleware("email", strategy="redact"),
        ToolCallLimitMiddleware(run_limit=10),
    ],
)

Si ninguno encaja, puedes escribir el tuyo con los ganchos before_model, after_model, wrap_model_call o wrap_tool_call: por ejemplo, para registrar el coste de cada paso o bloquear una herramienta fuera del horario laboral.

Herramientas por MCP

El repositorio incluye un módulo langchain.mcp con un MCPAdapter que conecta uno o varios servidores MCP y convierte sus herramientas en herramientas normales de create_agent. También permite que el agente se detenga y pida un dato que falta (elicitation).

from langchain.agents import create_agent
from langchain.mcp import MCPAdapter

async with MCPAdapter("https://tu-servidor/mcp") as adapter:
    agent = create_agent("anthropic:claude-sonnet-5", await adapter.list_tools())
    result = await agent.ainvoke({"messages": [...]})

Ojo: el módulo está en beta y emite un LangChainBetaWarning al importarlo. Úsalo para prototipos y proyectos internos antes de apoyar en él algo crítico.

Cambiar de modelo o usar uno local

Cambiar de proveedor es cambiar un texto: "openai:...", "anthropic:..." u "ollama:qwen3". Con Ollama, el agente funciona igual pero los datos no salen de tu equipo ni de tu servidor. Para empresas con datos de clientes, sanitarios o de la administración, combinar un modelo local con PIIMiddleware da dos capas de protección compatibles con el RGPD. Eso sí: un modelo pequeño no razona como los grandes de pago, así que mide cuántas tareas completa bien antes de decidir.

LangChain, LangGraph o Deep Agents

CapaPara quéEstrellas
Deep AgentsAgente con planificación, subagentes y sistema de archivos de serie. Tareas largas y abiertas.30.463
LangChaincreate_agent + middleware: un agente completo en pocas líneas. Punto de partida recomendado.148.177
LangGraphControl total de cada paso: ramas, reintentos, aprobaciones. Es el motor de los tres.43.610

La regla práctica: empieza por LangChain; si te falta control, baja a LangGraph; si la tarea es larga y abierta, sube a Deep Agents. Como comparten motor, moverse entre capas no obliga a rehacer el proyecto.

Lo que no te cuentan

  1. Para una llamada simple, sobra. Si solo vas a preguntarle algo a un modelo, usa el cliente del proveedor.
  2. Cambia muy rápido. Fija versiones y lee las notas de cada versión.
  3. Muchos tutoriales están desfasados. Si ves cadenas por todas partes, es código anterior a la v1 (hoy en langchain-classic).
  4. Necesitas trazas. LangSmith es la herramienta oficial, de pago a partir de cierto uso; Langfuse u OpenTelemetry son alternativas abiertas.
  5. Mide el coste por tarea. Cada paso del agente es una llamada al modelo: un agente mal diseñado puede gastar diez veces más de lo previsto.

Preguntas frecuentes

¿LangChain es gratis?

Sí. El framework es de código abierto con licencia MIT y puedes usarlo en productos comerciales. Pagas los modelos que conectes y, si lo usas, LangSmith a partir de cierto volumen.

¿Puedo usar LangChain con modelos locales?

Sí. Con el paquete langchain-ollama basta con indicar "ollama:<modelo>" en create_agent. Los datos no salen de tu infraestructura.

¿Qué diferencia hay entre LangChain y LangGraph?

LangGraph es el motor de bajo nivel para orquestar agentes paso a paso. LangChain 1.x se apoya en él y ofrece create_agent y el middleware para montar un agente completo con menos código.

¿Sigue funcionando el código de LangChain 0.x?

El código antiguo se trasladó a langchain-classic. Para proyectos nuevos, usa la API de la v1.

Veredicto

Si vas a construir un agente con herramientas, memoria y control humano, LangChain 1.x es hoy una de las opciones más sólidas: un núcleo estable, middleware listo para producción, MCP en camino y libertad para usar modelos locales. Si solo necesitas una llamada a un modelo, no lo necesitas.

Tu reto: crea un agente con create_agent, conéctalo a un modelo local con Ollama y ponle un límite de llamadas con ToolCallLimitMiddleware. Y cuéntanos en los comentarios del vídeo qué le pediste.

Aprende a construir agentes de IA, gratis

Empieza hoy el curso gratuito de IAcademy: fundamentos de IA, prompts y tus primeros agentes, en español y sin tarjeta.

Empieza gratis