# Cambios necesarios para actualizar el curso LangChain.js

> Fecha de revision: 2026-05-22
> Las slides fueron preparadas para Enero 2026 (v0.3.x). Desde entonces se ha lanzado **LangChain v1** y **LangGraph v1**, que traen cambios significativos.
> **Todos los cambios críticos e importantes han sido aplicados.** El documento se conserva como referencia histórica.

## Versiones actuales en npm (mayo 2026)

| Paquete | Slides | Actual | Cambio |
|---------|--------|--------|--------|
| `langchain` | v0.3.x | **v1.2.35** | MAJOR |
| `@langchain/core` | v0.3.x | **v1.1.34** | MAJOR |
| `@langchain/openai` | - | **v1.3.0** | MAJOR |
| `@langchain/anthropic` | - | **v1.3.25** | MAJOR |
| `@langchain/google-genai` | en uso | **v2.1.26** (DEPRECATED) | Ver punto 3 |
| `@langchain/google` | no mencionado | **v0.1.7** (NUEVO, reemplaza google-genai) | NUEVO |
| `@langchain/community` | en uso | **v1.1.24** | MAJOR |
| `@langchain/langgraph` | en uso | **v1.2.3** | MAJOR |
| `@langchain/classic` | no existe en slides | **v1.0.24** (NUEVO) | NUEVO |
| `@langchain/qdrant` | en uso | **v1.0.1** | MAJOR |
| `@langchain/pinecone` | - | **v1.0.1** | MAJOR |

---

## 1. CRITICO: Versiones en slides/setup/03.md

**Fichero**: `pages/setup/03.md:52`
**Problema**: Dice `Versiones actuales (Enero 2026): langchain v0.3.x · @langchain/core v0.3.x`
**Correccion**: Cambiar a `Versiones actuales (Marzo 2026): langchain v1.x · @langchain/core v1.x`

---

## 2. CRITICO: Nuevo paquete @langchain/classic

**Ficheros afectados**: `pages/setup/02.md`
**Problema**: La arquitectura de paquetes no menciona `@langchain/classic`, que es donde se ha movido la funcionalidad legacy en v1.
**Que se movio a @langchain/classic**:
- `MemoryVectorStore` (antes en `langchain/vectorstores/memory`)
- `DirectoryLoader` (antes en `langchain/document_loaders/fs/directory`)
- `TextLoader` (antes en `langchain/document_loaders/fs/text`)
- Legacy chains (`LLMChain`, `ConversationChain`, etc.)
- Retrievers legacy
- Hub module
- `ChatPromptTemplate` ahora se importa desde `@langchain/classic/prompts` en los ejemplos de proveedores (aunque sigue disponible en `@langchain/core/prompts`)

**Accion**: Anadir `@langchain/classic` al diagrama de arquitectura de paquetes en `setup/02.md`

---

## 3. CRITICO: @langchain/google-genai DEPRECATED

**Ficheros afectados**:
- `pages/setup/02.md:54` - lista de proveedores
- `pages/setup/03.md:31` - instalacion
- `pages/setup/13.md` - ejemplo completo con Gemini
- `pages/models/08b.md` - ChatGoogleGenerativeAI
- `pages/models/10.md:38` - providers disponibles
- `pages/rag/06.md:22` - GoogleGenerativeAIEmbeddings
- `pages/rag/07.md` - no afectado directamente

**Problema**: La documentacion oficial dice textualmente:
> "This library is based on a deprecated library from Google and will be replaced by the ChatGoogle library. New implementations should use the ChatGoogle library instead."

**Correccion**:
```typescript
// ANTES (deprecated)
import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
const model = new ChatGoogleGenerativeAI({ model: "gemini-2.0-flash-exp" });

// AHORA (recomendado)
import { ChatGoogle } from "@langchain/google";
const model = new ChatGoogle({ model: "gemini-2.5-flash" });
```

**Instalacion**: `npm install @langchain/google` en lugar de `npm install @langchain/google-genai`

---

## 4. CRITICO: createReactAgent -> createAgent

**Ficheros afectados**:
- `pages/models/15.md` - ejemplo con Tavily usa `createReactAgent` de `@langchain/langgraph/prebuilt`
- `pages/models/16.md` - comparacion bindTools vs createReactAgent

**Problema**: `createReactAgent` de `@langchain/langgraph/prebuilt` ha sido reemplazado por `createAgent` de `langchain` en v1.

**Correccion para models/15.md**:
```typescript
// ANTES
import { ChatOpenAI } from "@langchain/openai";
import { TavilySearchResults } from "@langchain/community/tools/tavily_search";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const model = new ChatOpenAI({ model: "gpt-4o-mini" });
const agent = createReactAgent({ llm: model, tools: [searchTool] });

// AHORA
import { createAgent } from "langchain";
import { TavilySearchResults } from "@langchain/community/tools/tavily_search";

const searchTool = new TavilySearchResults({ apiKey: process.env.TAVILY_API_KEY, maxResults: 5 });
const agent = createAgent({
  model: "openai:gpt-4.1-mini",
  tools: [searchTool],
});
```

**Correccion para models/16.md**: Cambiar el titulo y contenido del panel derecho de `createReactAgent()` a `createAgent()`. La comparacion sigue siendo valida conceptualmente (bindTools para control manual vs createAgent para loop automatico).

> NOTA: La seccion de agentes (pages/agents/) ya usa `createAgent` correctamente. Solo models/15.md y models/16.md estan desactualizados.

---

## 5. IMPORTANTE: Nombres de modelos desactualizados

### OpenAI
**Ficheros**: Multiples (models/, messages/, rag/, setup/, agents/)
- `gpt-4o-mini` -> `gpt-4.1-mini` (segun docs actuales de LangChain)
- `gpt-4o` -> `gpt-4.1` (segun docs actuales de LangChain)
- `gpt-4-turbo` en `models/10.md:18` -> `gpt-4.1` o posterior

**Nota**: Los modelos `gpt-4o` y `gpt-4o-mini` siguen funcionando pero ya no son los mas recientes. La documentacion oficial de LangChain ahora muestra `gpt-4.1-mini` y `gpt-5.2` como ejemplos.

### Anthropic
- `claude-sonnet-4-20250514` en `models/08.md:41` -> `claude-sonnet-4-6` (ultimo segun docs)
- `claude-sonnet-4-5-20250929` en `agents/05.md:17` -> mantener o actualizar a `claude-sonnet-4-6`

### Google Gemini
- `gemini-2.0-flash-exp` en `models/08b.md:19` -> `gemini-2.5-flash` (segun docs actuales)
- `gemini-pro` en `models/10.md:38` -> `gemini-2.5-flash-lite` (modelo recomendado actual)
- `gemini-2.5-flash` en `setup/13.md:16` -> OK, este esta correcto

### Embeddings
- `embedding-001` en `rag/06.md:25` -> verificar nombre actual del modelo de embeddings de Google
- `llama2` en `rag/07.md:32` (OllamaEmbeddings) -> `llama3.2` o modelo mas reciente

---

## 6. IMPORTANTE: MemoryVectorStore - import path cambiado

**Fichero**: `pages/rag/11.md:12`
**Problema**:
```typescript
// ANTES (v0.3.x)
import { MemoryVectorStore } from "langchain/vectorstores/memory";

// AHORA (v1.x)
import { MemoryVectorStore } from "@langchain/classic/vectorstores/memory";
```

**Nota**: En v1, `MemoryVectorStore` se ha movido a `@langchain/classic`. Requiere instalar: `npm install @langchain/classic`

---

## 7. IMPORTANTE: initChatModel - import path cambiado

**Fichero**: `pages/models/09.md:22`
**Problema**:
```typescript
// ANTES (v0.3.x)
import { initChatModel } from "@langchain/core/chat_models/universal";

// AHORA (v1.x)
import { initChatModel } from "langchain";
```

---

## 8. IMPORTANTE: Document Loaders - import paths cambiados

**Fichero**: `pages/pending/06c.md`
**Problema**: Los loaders que estaban en `langchain/` se han movido a `@langchain/classic/`:
```typescript
// ANTES
import { DirectoryLoader } from "langchain/document_loaders/fs/directory";
import { TextLoader } from "langchain/document_loaders/fs/text";

// AHORA
import { DirectoryLoader } from "@langchain/classic/document_loaders/fs/directory";
import { TextLoader } from "@langchain/classic/document_loaders/fs/text";
```
Los loaders de community (`PDFLoader`, `CSVLoader`) mantienen su path en `@langchain/community/...`.

---

## 9. IMPORTANTE: OllamaEmbeddings - import path

**Fichero**: `pages/rag/07.md:29`
**Problema**:
```typescript
// ANTES
import { OllamaEmbeddings } from "@langchain/community/embeddings/ollama";

// AHORA (paquete dedicado)
import { OllamaEmbeddings } from "@langchain/ollama";
```
Requiere: `npm install @langchain/ollama`

---

## 10. MENOR: favicon en slides.md

**Fichero**: `slides.md:10`
**Problema**: `favicon: https://js.langchain.com/v0.2/img/favicon.ico` - URL con referencia a v0.2
**Correccion**: Actualizar a la URL actual de la documentacion: `https://docs.langchain.com/...` o usar favicon local

---

## 11. NUEVO CONCEPTO: Standard Content Blocks (v1)

**No existe en las slides actualmente.**
**Relevancia**: Es una de las 3 mejoras principales de LangChain v1.

`contentBlocks` es una nueva propiedad en los mensajes que proporciona acceso unificado a features modernos de LLMs (reasoning tokens, imagenes, etc.) de forma estandarizada entre proveedores:

```typescript
import { AIMessage } from "@langchain/core/messages";

// Los mensajes ahora tienen .contentBlocks para acceso tipado
const reasoning = message.contentBlocks
  .filter((b) => b.type === "reasoning")
  .map((b) => b.reasoning);
```

**Sugerencia**: Considerar anadir una slide en la seccion de mensajes (messages/) o en la seccion de agentes explicando este nuevo concepto.

---

## 12. NUEVO CONCEPTO: @langchain/classic

**No explicado en las slides.**
En v1, la funcionalidad legacy se ha movido a `@langchain/classic`:
- Legacy chains (LLMChain, ConversationChain)
- Retrievers legacy
- Hub module
- MemoryVectorStore
- Algunos document loaders

**Sugerencia**: Mencionar en la seccion de estructura/setup que en v1 existe este paquete para compatibilidad hacia atras.

---

## 13. MENOR: Modelos disponibles en providers (models/10.md)

**Fichero**: `pages/models/10.md`
Los comentarios de modelos disponibles estan desactualizados:
- OpenAI: `gpt-4o, gpt-4o-mini, gpt-4-turbo` -> `gpt-4.1, gpt-4.1-mini, gpt-5.2`
- Google: `gemini-2.0-flash-exp, gemini-pro` -> `gemini-2.5-flash, gemini-2.5-flash-lite`
- Anthropic: `claude-sonnet-4, claude-opus-4` -> `claude-sonnet-4-6, claude-opus-4-6`
- Groq: `llama-3.1-70b, mixtral-8x7b` -> verificar disponibilidad actual
- Ollama: `llama3.1:7b` -> `llama3.2:7b` o posterior

---

## 14. MENOR: Structured Output con createAgent (v1 mejora)

**Ficheros**: Los slides de structured output ya cubren `withStructuredOutput()` correctamente.
**Novedad v1**: En `createAgent`, structured output ahora se genera en el loop principal (sin llamada LLM adicional) via `responseFormat`:

```typescript
import { createAgent } from "langchain";
import * as z from "zod";

const agent = createAgent({
  model: "gpt-4.1-mini",
  tools: [getWeather],
  responseFormat: z.object({
    temperature: z.number(),
    condition: z.string(),
  }),
});
const result = await agent.invoke({ messages: [...] });
console.log(result.structuredResponse);
```

**Sugerencia**: Verificar si esto ya esta cubierto en las slides de agents/structured output.

---

## 15. MENOR: URLs de documentacion desactualizadas

**Ficheros afectados**:
- `pages/models/11.md` - enlace `js.langchain.com/docs/integrations/chat`
- `pages/models/13.md` - enlace `js.langchain.com/docs/integrations/tools`
- `pages/rag/29.md` - enlace `js.langchain.com/docs/tutorials/rag`
- `pages/pending/09.md` - enlace `js.langchain.com/docs`

**Problema**: Las URLs antiguas `js.langchain.com/docs/...` han cambiado a `docs.langchain.com/oss/javascript/...`
**Correccion**:
- `js.langchain.com/docs/integrations/chat` -> `docs.langchain.com/oss/javascript/integrations/chat`
- `js.langchain.com/docs/integrations/tools` -> `docs.langchain.com/oss/javascript/integrations/tools`
- `js.langchain.com/docs/tutorials/rag` -> `docs.langchain.com/oss/javascript/langchain/rag`
- `js.langchain.com/docs` -> `docs.langchain.com/oss/javascript`

---

## 16. MENOR: Precios y modelos en setup/04.md

**Fichero**: `pages/setup/04.md`
**Problema**: La tabla de comparativa dice "Enero 2025" y lista modelos desactualizados:
- "GPT-4o" -> "GPT-4.1" (o posterior)
- "Gemini 2.0 Flash" -> "Gemini 2.5 Flash"
- "Claude 4 Sonnet" -> modelo actual
- Precios probablemente han cambiado

**Accion**: Actualizar la tabla con modelos y precios actuales (marzo 2026)

---

## 17. MENOR: setup/07.md modelos recomendados para produccion

**Fichero**: `pages/setup/07.md`
**Problema**: Recomienda "Claude 4 Sonnet o GPT-4o" para produccion. Los nombres de modelo deberian reflejar los ultimos disponibles.

---

## 18. MENOR: Modelos Ollama en setup/09.md

**Fichero**: `pages/setup/09.md`
**Problema**: Referencia a "Llama 3.1 7B/13B/70B" en la tabla de hardware. Llama 3.2 ya esta disponible y setup/14.md ya lo usa correctamente.

---

## 19. MENOR: Modelos en agents/ y alternatives/ desactualizados

**Ficheros afectados**:
- `pages/agents/05.md:17` y `pages/agents/06.md:31` - usan `claude-sonnet-4-5-20250929`
- `pages/alternatives/06.md:40` - usa `claude-sonnet-4-20250514` en ejemplo de Anthropic SDK nativo
- `pages/alternatives/06.md:22` - usa `gpt-4o` en ejemplo de OpenAI SDK nativo
- `pages/alternatives/07.md:15` - usa `gpt-4o` en Assistants API
- `pages/alternatives/07.md:32` - usa `gemini-2.0-flash` en Google GenAI SDK

**Correccion**: Actualizar nombres de modelos a los ultimos disponibles (ver punto 5)

---

## NOTA POSITIVA: Secciones ya actualizadas a v1

Las siguientes secciones **ya estan correctamente actualizadas** para LangChain v1:
- **agents/** (01-23): Usa `createAgent`, middleware, `humanInTheLoopMiddleware`, etc.
- **messages/** (01-11): `ChatPromptTemplate`, `MessagesPlaceholder`, `SystemMessage` siguen siendo validos
- **introduction/06.md**: Ya menciona "LangChain (v1)"
- **langsmith/05.md**: Ya usa `createAgent` de `"langchain"`

---

## Resumen de prioridades

### Criticos (el curso no funciona correctamente sin estos cambios)
1. Actualizar version numbers en setup/03.md (v0.3.x -> v1.x)
2. Actualizar `@langchain/google-genai` a `@langchain/google` en multiples ficheros
3. Reemplazar `createReactAgent` por `createAgent` en models/15.md y models/16.md
4. Actualizar import de `MemoryVectorStore` en rag/11.md
5. Actualizar import de `initChatModel` en models/09.md
6. Anadir `@langchain/classic` a la arquitectura de paquetes

### Importantes (el codigo funciona pero con warnings/deprecaciones)
7. Actualizar nombres de modelos (gpt-4o-mini -> gpt-4.1-mini, etc.)
8. Actualizar imports de document loaders en pending/06c.md
9. Actualizar OllamaEmbeddings import path en rag/07.md

### Menores / Mejoras
10. Actualizar favicon URL en slides.md
11. Considerar anadir slide sobre Standard Content Blocks
12. Actualizar lista de modelos en models/10.md
13. Mencionar @langchain/classic en el modulo de estructura
14. Documentar responseFormat en createAgent
15. Actualizar URLs de documentacion (js.langchain.com -> docs.langchain.com)
16. Actualizar tabla de precios/modelos en setup/04.md
17. Actualizar modelos recomendados en setup/07.mdhttps://docs.langchain.com/oss/javascript/langchain/messages
18. Actualizar modelos Ollama en setup/09.md
