Implementación de Tools en ReAct Agents con LangChain Core

Clase 14 de 26Curso para Crear Agentes de AI con LangGraph

Resumen

Los grandes modelos de lenguaje pueden pensar, pero para actuar necesitan tools bien definidas. Aquí verás, paso a paso, cómo integrar tools en un React Agent, distinguir qué corre en la capa de aplicación y qué puede ejecutar el modelo, y cómo convertir un prompt en acciones reales como consultar una API o agendar una cita.

¿Cómo fluyen las tools desde el prompt hasta la capa de aplicación?

La interacción inicia con el request del usuario y pasa por tu aplicación, que actúa como wrapper del large language model. Con tools, el modelo no ejecuta la acción ni devuelve el resultado directo: primero identifica la herramienta y extrae parámetros, de forma parecida al structured output.

¿Qué retorna el modelo con tools y structured output?

  • Devuelve un formato con el function identifier y los parámetros requeridos.
  • Si faltan datos, pide al usuario lo que falta hasta estar “listo”.
  • Cuando está listo, cambia de respuesta conversacional a respuesta tool con el nombre de la función y sus argumentos.

¿Dónde se ejecuta la tool: modelo o capa de aplicación?

  • En general, las tools declaradas como funciones se ejecutan en tu capa de aplicación.
  • Algunas tools son propias del modelo, como FileSearch de OpenAI, que corre con su infraestructura.
  • Tras ejecutar la función en tu sistema, devuelves el resultado al modelo y este lo interpreta y responde al usuario. Ese es el ciclo completo de una tool.

¿Cómo definir una tool con LangChain Core y parámetros?

Se construye una función decorada como tool en LangChain Core. Así, el modelo puede mapear qué hace, cuándo usarla y con qué argumentos.

¿Qué incluir en la descripción y argumentos de la tool?

  • Nombre claro, por ejemplo: GetProducts.
  • Descripción orientada a uso: qué obtiene y para qué sirve.
  • Argumentos tipados: por ejemplo, precio como entero para filtrar resultados.
  • Contexto adicional: explica qué espera cada argumento, como harías en un prompt.

¿Cómo devolver resultados en texto para el modelo?

  • Aunque podrías responder con arrays, el modelo entiende mejor texto formateado.
  • Mapea y concatena los elementos (por ejemplo, producto y precio) para ofrecer una lista legible.
  • Llama a la tool pasando un diccionario con los argumentos; si no hay argumentos, envía un diccionario vacío.

¿Cómo conectar la tool a una API y evitar alucinaciones?

Para información en tiempo real (clima, productos, etc.), no basta el conocimiento del modelo. Necesitas una tool que consulte una API y te devuelva datos actualizados. Así evitas respuestas vagas o alucinaciones.

¿Qué ejemplo práctico se implementa con GetProducts?

  • Se parte de fake data para simular productos y luego se sustituye por una API de productos de Platzi.
  • Se corrige el endpoint y se confirman los campos: title y price.
  • La función devuelve los productos en texto con su precio, lista para que el LLM responda con claridad.
  • También se menciona el caso del agendador de citas: el modelo identifica la tool con parámetros como nombre del paciente, doctor y fecha; tu app llama a la API de agendamiento y regresa el resultado al modelo para que lo comunique.

¿Qué modelos se mencionan para razonar y responder rápido?

  • Un modelo de razonamiento: “Cloud Opus 4.1”, más lento pero con mejor análisis.
  • Alternativa con equilibrio entre rapidez y razonamiento: “Gemini 2.5”.
  • Además, se contrasta ampliar conocimiento con un “rack” vectorial frente a usar tools: puedes vectorizar productos y hacer retrieval, o conectarte a una API según el caso.

Ideas clave para poner en práctica: - React Agent y tools: la tool define la acción, el modelo decide cuándo usarla. - function identifier y parámetros: formato no conversacional que guía la ejecución. - Capa de aplicación: ahí se hacen las llamadas reales a servicios y bases de datos. - Respuesta en texto: formatea la salida para que el modelo continúe la conversación. - Evitar alucinaciones: conecta APIs para clima, Wikipedia o tus propios sistemas.

¿Te gustaría ver más tools conectadas a tus datos o APIs favoritas? Comparte qué integración quieres construir y en qué caso de uso te gustaría aplicarla.