Contenido del curso
Chat Models y Prompt templates
- 5

Flujo de conversación con trim_message en LangChain
09:35 min - 6

Conexión y uso de modelos de chat con LangChain y OpenAI
07:51 min - 7

Uso de Modelos de Google AI Gemini en LangChain
03:39 min - 8

Creación de Plantillas de Prompts en LangChain
08:45 min - 9

Técnicas de Few-Shot Prompting en Modelos de Lenguaje
12:18 min
Cadenas en LangChain
- 10

Creación de Cadenas en LangChain con String Output Parser
04:53 min - 11

Gestión de Historial de Chat con LangChain
07:52 min - 12

Integración de Herramientas Claves en LangChain: Runnable, OutputParser, Streaming
14:08 min - 13

Creación de Chatbots Inteligentes con Memoria Conversacional
13:55 min - 14

Cadena de Procesos para Memoria Conversacional con GPT-3.5 Turbo
07:37 min
Carga de documentos en LangChain
Retrieval-augmented generation (RAG)
- 18

Gestión de Vectores de Texto con Chroma y LangChain
05:46 min - 19

Embeddings y su aplicación en modelos de lenguaje y RAG
08:19 min - 20

Pinecone como vector store con LangChain
14:16 min - 21

Creación de Chatbot RAG con LangChain y ChromaDB
12:52 min - 22

Construcción de un Asistente Conversacional con LangChain y RAG
13:44 min
Agentes en LangChain
Ecosistema de LangChain
Agentes LangChain con Tavily y RAG
Resumen
Crear agentes con LangChain te permite que un modelo de lenguaje no solo genere texto, sino que decida qué herramientas usar para resolver una consulta. Aquí aprendes a construir un agente que combina búsqueda en internet con Tavily y consultas a una base vectorial alimentada con la documentación de LangSmith, ideal si trabajas con LLMs y quieres conectarlos a datos en tiempo real.
¿Qué es un agente en LangChain y por qué importa?
En LangChain, un agente es un sistema que usa un Large Language Model como motor de razonamiento para decidir qué acciones tomar y con qué entradas ejecutarlas. La diferencia con un chatbot tradicional está en que el agente puede llamar a APIs externas, consultar bases vectoriales o hacer búsquedas web según el contexto de la pregunta.
¿Qué hace exactamente un agente de LangChain? Usa un modelo de lenguaje para razonar qué herramienta invocar (búsqueda web, base vectorial, API) y con qué parámetros, en lugar de responder solo con texto generado.
Esto abre la puerta a tareas complejas: responder con datos actualizados, consultar documentación interna o encadenar varias acciones en una sola conversación [00:14].
¿Cómo configurar Tavily Search como herramienta del agente?
Para este proyecto vas a usar Tavily Search, un servicio que permite búsquedas en internet en tiempo real desde tu código [00:35]. Necesitas crear una cuenta, obtener una API key y cargarla junto con la de OpenAI.
El flujo de configuración es directo:
- Cargar las dependencias y las dos API keys: OpenAI y Tavily.
- Inicializar el Large Language Model base.
- Importar desde
langchain_communityel módulo de herramientas y traerTavilySearchResults. - Instanciar la búsqueda con
max_results=2para limitar resultados [01:20].
Una vez creada la herramienta, puedes probarla con una consulta directa. En la clase se pregunta ¿qué es OpenAI o1-mini? y Tavily devuelve dos URLs, incluida la documentación oficial de OpenAI, con un extracto del contenido relevante [01:45].
¿Para qué sirve Tavily dentro del agente?
Tavily actúa como los ojos del agente en la web. Cuando el modelo detecta que la pregunta requiere información externa o actualizada, invoca esta herramienta en lugar de responder con su conocimiento entrenado.
¿Cómo construir la base vectorial con la documentación de LangSmith?
La segunda herramienta del agente es un retriever que consulta una base vectorial alimentada con la documentación de LangSmith [02:35]. Aquí entran varios componentes clave de LangChain trabajando en conjunto.
El proceso paso a paso:
- Importar
WebBaseLoaderpara cargar el contenido desde la URL de la documentación. - Cargar los documentos con el método
load(). - Dividir el texto con un TextSplitter configurado en
chunk_size=1000yoverlap=200para mantener contexto entre fragmentos [03:35]. - Generar los embeddings con
OpenAIEmbeddingsy crear el vector store confrom_documents. - Convertir el vector store en un retriever con
.as_retriever()[04:15].
¿Qué es un retriever en LangChain? Es el componente que toma una consulta, la convierte en vector y devuelve los fragmentos más relevantes de la base vectorial para alimentar al modelo.
El chunk_size de 1000 caracteres con overlap de 200 es un equilibrio común: fragmentos lo bastante grandes para tener contexto, pero con solapamiento para no cortar ideas a la mitad.
¿Cómo convertir el retriever en una herramienta del agente?
Un retriever por sí solo no es una tool. Hay que envolverlo con create_retriever_tool desde langchain.tools.retriever y darle:
- Un nombre, en este caso
langsmith_search. - Una descripción tipo busca información sobre LangSmith; usa esta herramienta para cualquier pregunta sobre LangSmith.
- El retriever ya creado [05:10].
Esa descripción es crítica: es lo que el modelo lee para decidir si usar esta herramienta o no.
¿Cómo unir las herramientas con el modelo y probar el agente?
Con Tavily y el retriever tool listos, los agrupas en una lista tools y los enlazas al modelo con bind_tools. En la clase se usa GPT-4o como motor de razonamiento [06:00].
Para enviar mensajes al agente importas HumanMessage desde langchain_core.messages e invocas el modelo:
python response = model_with_tools.invoke([HumanMessage(content="hi")]) print(f"Content: {response.content}") print(f"Tool calls: {response.tool_calls}")
Los resultados muestran cómo razona el agente:
- Con un input simple como hi, el modelo responde directamente y
tool_callsqueda vacío. No necesita herramientas. - Con una pregunta tipo ¿cuál es el clima en Bogotá?, el modelo decide invocar Tavily y devuelve el llamado a la herramienta en
tool_calls[06:50].
Esa decisión automática es la esencia del agente: el modelo evalúa si puede responder solo o si requiere datos externos.
¿Qué falta para tener un agente completo?
En este punto tienes el modelo conectado a herramientas, pero todavía no es un agente con memoria ni con un executor que orqueste múltiples pasos. Ese es el siguiente nivel: darle estructura, añadir memoria conversacional y permitir que ejecute varias acciones encadenadas para construir una respuesta final al usuario.
¿Qué herramienta externa conectarías primero a tu agente: una API de datos, una base vectorial propia o búsqueda web? Cuéntalo en los comentarios.