Inicio > Cursos > IA para Devs > LangChain y LangGraph
IA para DevsIA en ProducciónLección 9 de 13

LangChain y LangGraph

LangChain nació en 2022 y en pocos meses se volvió el framework más popular para apps de IA, con miles de estrellas en GitHub. Su idea central es la "cadena" (chain): une componentes —prompt template, modelo, parser, memoria— usando el operador pipe igual que en Unix (`prompt | modelo | parser`).

Esto hace el código modular y reutilizable: puedes cambiar el modelo de GPT-4 a Claude con una línea sin tocar el resto del código.

LangGraph (del mismo equipo) lleva el concepto más allá para agentes: en lugar de cadenas lineales, define grafos donde cada nodo es un paso y las aristas son condiciones. Esto permite ciclos —el agente puede revisar su propio trabajo y repetir pasos hasta quedar satisfecho.

La crítica común a LangChain es que abstrae demasiado y puede ser difícil de debuggear; muchos equipos maduros prefieren llamar las APIs directamente. Úsalo para prototipar rápido; luego evalúa si necesitas la abstracción.

// npm install langchain @langchain/openai @langchain/core
import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage, SystemMessage } from "@langchain/core/messages";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { StringOutputParser } from "@langchain/core/output_parsers";

const modelo = new ChatOpenAI({
  model: "gpt-4o-mini",
  temperature: 0,
});

// Prompt Template
const prompt = ChatPromptTemplate.fromMessages([
  ["system", "Eres un asistente que responde en {idioma}."],
  ["human", "{pregunta}"],
]);

const parser = new StringOutputParser();

// Chain = prompt | model | parser
const chain = prompt.pipe(modelo).pipe(parser);

const respuesta = await chain.invoke({
  idioma: "español",
  pregunta: "¿Cuál es la capital de Francia?",
});

// Conversación con memoria
import { ConversationChain } from "langchain/chains";
import { BufferMemory } from "langchain/memory";

const conversacion = new ConversationChain({
  llm: modelo,
  memory: new BufferMemory(),
});

const r1 = await conversacion.call({ input: "Hola, me llamo Ana" });
const r2 = await conversacion.call({ input: "¿Cómo me llamo?" }); // Recuerda: Ana

// Streaming con LangChain
const stream = await chain.stream({
  idioma: "español",
  pregunta: "Explica qué es recursión"
});
for await (const chunk of stream) {
  process.stdout.write(chunk);
}
Consejo🔗 La "cadena" (chain) en LangChain es el patrón pipe: prompt → modelo → parser. Puedes encadenar cualquier número de pasos.
← Agentes de IABases de Datos Vectoriales →

Practica esta lección

Resuelve los ejercicios del curso de IA para Devs en la app, gratis y con corrección automática.

Empezar a practicar