Ir al contenido principal

Cómo crear un modelo GPT con funciones de navegación usando LangChain Tools

Un tutorial para integrar Google SERP, DuckDuckGo, Wikipedia y YouTube en modelos GPT usando Python y las herramientas de LangChain.
Actualizado 17 sept 2026  · 14 min leer

Explorar con IA

ChatGPTClaudePerplexity

Una de las funciones nuevas de ChatGPT que más valoro es su capacidad para navegar por Internet y completar las solicitudes de los usuarios cuando necesita información adicional. Aun así, me he topado con dos problemas:

  1. Las funciones de navegación solo están disponibles para usuarios de ChatGPT Plus.
  2. Es posible usar la navegación desde la interfaz de usuario, pero no al interactuar con el modelo vía API.

Resulta que LangChain ha resuelto estos puntos con el lanzamiento de las LangChain Tools.

En este tutorial, veremos cómo usar LangChain Tools para crear tu propio modelo GPT con funciones de navegación. Aquí, funciones de navegación significa permitir que el modelo consulte fuentes externas para ampliar su base de conocimiento y responder mejor a las solicitudes de los usuarios que si dependiera solo de lo que ya sabe.

¿Y lo mejor? LangChain Tools se integran sin problema con Python y la API de OpenAI.

¡Vamos a ello!

Sistemas multiagente con LangGraph

Construye potentes sistemas multiagente aplicando patrones de diseño agéntico emergentes en el marco LangGraph.
Explora El Curso

Alcance y objetivos

Este artículo cubre los fundamentos de LangChain Tools y cómo usarlas en Python. Trabajaremos en un Jupyter Notebook con las librerías openai y langchain instaladas. Si primero quieres conocer el framework LangChain, te recomiendo el artículo Introducción a LangChain para ingeniería de datos y aplicaciones de datos.

En este tutorial, aprenderemos a utilizar cuatro de las LangChain Tools existentes para ofrecer al modelo GPT por defecto varias fuentes externas que consultar al responder a los usuarios. En concreto, exploraremos herramientas que usan estas fuentes:

  • Dos motores de búsqueda muy conocidos: Google SERP y DuckDuckGo.
  • Wikipedia como base de información amplia y reconocida.
  • Fuentes de YouTube para que el modelo sugiera vídeos.

Tras configurar estas herramientas, sabrás usar cualquier LangChain Tool en general y cómo combinarlas en un Toolkit para dotar al modelo de funciones de navegación.

Introducción a LangChain Tools

Como comentamos en la introducción, LangChain Tools pueden ampliar las capacidades de un modelo al permitirle consultar fuentes externas cuando responde a un prompt. Estas herramientas son clave en una técnica de prompting llamada ReAct Prompting. ReAct, acrónimo de Reasoning and Acting (razonamiento y acción), divide el proceso del modelo en dos etapas:

  1. Fase de razonamiento: el modelo decide la mejor estrategia para llegar a una respuesta.
  2. Fase de acción: ejecuta el plan formulado en la etapa anterior para obtener la respuesta final.

Este proceso genera rastros de razonamiento que guían al propio modelo hacia la respuesta correcta. Se ha demostrado que ayuda a los LLM a ofrecer respuestas más precisas y fiables, sobre todo en tareas de conocimiento intensivo y toma de decisiones. En parte, porque le da al modelo más tiempo para "pensar".

LangChain Tools pueden potenciar aún más ReAct aportando fuentes de información complementarias. En nuestro enfoque, en la fase de razonamiento el modelo decide qué herramienta usar según la consulta del usuario. En la fase de acción, el modelo se conecta con la fuente externa elegida para recopilar información adicional.

Si quieres una introducción en profundidad a ReAct con LangChain, el artículo ChatGPT ReAct Prompting es para ti.

Elementos de LangChain para ReAct Prompting

Hay dos elementos clave en el framework LangChain para aplicar esta técnica: agents y tools.

Los llamados agents son las entidades que ejecutan realmente las fases de razonamiento y acción. Devuelven los resultados al modelo para que el LLM genere una respuesta en lenguaje natural con la información extra. Hay varios tipos de agents, cada uno adecuado a distintas tareas que quieras que el LLM realice. Tienes una descripción detallada en la documentación oficial de LangChain sobre Agents.

Las Tools ya han sido protagonistas en nuestra explicación. Técnicamente, son funciones a las que un agent puede llamar. LangChain ofrece un amplio abanico: utilidades de Google (Search, Drive, Scholar), búsquedas en Wikipedia, la base de datos de ArXiV, una extensión de shell y plugins nativos de ChatGPT, entre otras. En este artículo conoceremos cuatro. Consulta la lista completa de Tools en la documentación oficial de LangChain.

Manos a la obra con LangChain Tools

¡Pasemos a la práctica!

Configurar el entorno de OpenAI

Como en cualquier proyecto con modelos GPT, el primer paso es cargar la clave de la API de OpenAI en el entorno. Para ello usaremos los módulos os y openai.

import openai
import os

os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")

Si aún no tienes una clave de la API de OpenAI, este artículo, Guía para principiantes de la API de OpenAI, es para ti.

Como usaremos el framework LangChain, también cargaremos el modelo gpt desde la librería langchain:

from langchain.llms.openai import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo")

En este caso usamos gpt-3.5-turbo como opción sin coste, pero siéntete libre de usar el modelo que prefieras.

En la siguiente sección configuraremos nuestra primera Tool. Usaremos la búsqueda de DuckDuckGo como ejemplo, pero verás que todas siguen los mismos pasos para funcionar.

Configurar nuestra primera LangChain Tool: DuckDuckGo

DuckDuckGo es un motor de búsqueda que da prioridad a la privacidad. A diferencia de otros, no rastrea el historial de búsqueda de sus usuarios ni crea ni mantiene un perfil personal.

Dispone de una librería de Python que debemos instalar para usarlo. Se instala con pip:

!pip install duckduckgo-search

Además, necesitamos importar la Tool de DuckDuckGo desde la librería langchain:

from langchain.tools import DuckDuckGoSearchRun

ddg_search = DuckDuckGoSearchRun()

El método DuckDuckGoSearchRun() por sí solo ya permite navegar por Internet sin conectarse a ningún LLM. Veamos un ejemplo sencillo:

Captura de la ejecución de ddg_search.run() para navegar por Internet con DuckDuckGo

Captura de la ejecución de ddg_search.run() para navegar por Internet con DuckDuckGo

La idea de las Tools es integrar esta capacidad de navegación en un LLM para obtener una respuesta coherente en lenguaje natural, en vez de solo un dato en bruto. Para ello, debemos incrustar este método en una instancia de la clase Tool de langchain así:

from langchain.agents import Tool

tools = [
   Tool(
       name="DuckDuckGo Search",
       func=ddg_search.run,
       description="Useful to browse information from the Internet.",
   )
]

Cualquier tool necesita un nombre (name) con el que el agent de LangChain se referirá a ella, una función (func) que el agent ejecutará para consultar fuentes externas (ddg_search.run, como arriba) y una descripción (description) que le indica al agent cuándo usarla.

Para este ejemplo, hemos definido la descripción: Useful to browse information from the Internet. También hay más parámetros opcionales en la definición de Tools que puedes personalizar según tus necesidades.

Explorar otras herramientas de navegación

Una vez configurada la primera herramienta, el resto es bastante directo porque siguen la misma estructura.

Google Serper Tool

Google Serper es una API de Google Search de bajo coste que nos permite navegar por Internet como DuckDuckGo.

Para esta herramienta necesitamos una clave de API que puedes obtener creando una cuenta gratuita en https://serper.dev/.

Captura de la página principal de la API de Google Serper

Captura de la página principal de la API de Google Serper.

Una vez en tu cuenta de Serper, verás la opción de la clave de API en el panel lateral izquierdo:

Captura de una página de cuenta en la API de Google Serper

Captura de una página de cuenta en la API de Google Serper. Opción de clave de API en el panel lateral izquierdo.

Al hacer clic, obtendrás la clave de API para copiarla e integrarla fácilmente en tus scripts de Python:

Captura de la generación de la clave de API en la página de Google Serper

Captura de la generación de la clave de API en la página de Google Serper.

De vuelta al código, podemos importar la clave a nuestro entorno:

serper_api_key = os.environ["SERPER_API_KEY"]

Para usar la API de Google Serper, primero hay que instalar la librería de Python necesaria (pip install google-serp-api). Además, debemos importar la Tool GoogleSerper desde la librería langchain:

from langchain.utilities import GoogleSerperAPIWrapper

google_search = GoogleSerperAPIWrapper()

Como antes, google_search.run() también puede navegar por Internet de forma independiente. Aun así, la idea es integrarlo como una Tool de LangChain así:

tools.append(
   Tool(
       name="Google Search",
       func=google_search.run,
       description="Useful to search in Google. Use by default.",
   )
)

Fíjate en que aquí añadimos una nueva tool a la lista tools. Por tanto, ahora contiene ambos motores de búsqueda.

Wikipedia Tool

Vamos a completar el conjunto con las fuentes de Wikipedia siguiendo el mismo proceso que antes.

El primer paso es instalar la librería de Python wikipedia vía pip (pip install wikipedia) e importar los módulos necesarios de LangChain. Esta tool requiere dos módulos por la arquitectura de la API de Wikipedia:

from langchain.tools import WikipediaQueryRun
from langchain.utilities import WikipediaAPIWrapper

wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())

Por último, añadimos una nueva instancia de la clase Tool con la función que ejecuta wikipedia.run():

tools.append(
   Tool(
       name="Wikipedia Search",
       func=wikipedia.run,
       description="Useful when users request biographies or historical moments.",
   )
)

YouTube Tool

Para terminar, es muy interesante integrar fuentes de YouTube para que el modelo pueda responder con vídeos, no solo con texto. Siguiendo el mismo procedimiento:

!pip install youtube

from langchain.tools import YouTubeSearchTool
youtube = YouTubeSearchTool()

tools.append(
   Tool(
       name="Youtube Search",
       func=youtube.run,
       description="Useful for when the user explicitly asks you to look on Youtube.",
   )
)

¡Listo!

Hemos creado un toolkit (lista tools) con cuatro Tools que aportan funciones de navegación a nuestro modelo. Aun así, todavía no hemos interactuado con él.

¡Veamos cómo aprovecha esas fuentes!

Probar las funciones de navegación

Como ya hemos mencionado, los agents son quienes usan las Tools. Por lo tanto, también debemos importarlos desde la librería langchain:

from langchain.agents import initialize_agent

El método initialize_agent nos permitirá configurar nuestro agent:

agent = initialize_agent(
   tools, llm, agent="zero-shot-react-description", verbose=True
)

Como se ve en la inicialización, hay que proporcionarle la lista de Tools disponibles (tools), el LLM a usar (llm) y el tipo de agent (agent="zero-shot-react-description"). Para este ejemplo usaremos el agent Zero-shot ReAct como agente de acción de propósito general. También hemos puesto verbose=True para observar su proceso de razonamiento.

Una vez inicializado, podemos ejecutar cualquier prompt de usuario con el método agent.run().

Ejemplo 1: biografía

En principio, cuando enviamos un prompt, el agent analiza las descripciones de las Tools y usa la más adecuada para el caso. Además, recurrirá a otras Tools si no encuentra la información adecuada con la primera.

Vamos con una primera prueba pidiendo una biografía. En este caso tenemos una tool pensada para biografías y momentos históricos, así que esperamos que el agent la seleccione:

agent.run(
   "Harry Styles biography"
)

Podemos ver el proceso de razonamiento:

> Entering new AgentExecutor chain...
I should look for a biography of the singer

Action: Wikipedia Search
Action Input: Harry Styles biography

Observation:

Page: Harry Styles
Summary: Harry Edward Styles (born 1 February 1994) is an English singer. His musical career began in 2010 as part of One Direction, a boy band formed on the British music competition series The X Factor after each member of the band had been eliminated from the solo contest. They became one of the best-selling boy groups of all time before going on an indefinite hiatus in 2016.
Styles released his self-titled debut solo album through Columbia Records in 2017. It debuted at number one in the UK and the US and was one of the world's top-ten best-selling albums of the year, while its lead single, "Sign of the Times", topped the UK Singles Chart. Styles' second album, Fine Line (2019), debuted atop the US Billboard 200 with the biggest ever first-week sales by an English male artist, and was the most recent album to be included in Rolling Stone's "500 Greatest Albums of All Time" in 2020. Its fourth single, "Watermelon Sugar", topped the US Billboard Hot 100. Styles' third album, Harry's House (2022), broke several records and was widely acclaimed, receiving the Grammy Award for Album of the Year in 2023. Its lead single, "As It Was", became the number-one song of 2022 globally according to Billboard.
Styles has received various accolades, including six Brit Awards, three Grammy Awards, an Ivor Novello Award, and three American Music Awards. His film roles include Dunkirk (2017), Don't Worry Darling (2022), and My Policeman (2022). Aside from music and acting, Styles is known for his flamboyant fashion. He is the first man to appear solo on the cover of Vogue.

Page: Debbie Harry
Summary: Deborah Ann Harry (born Angela Trimble; July 1, 1945) is an American singer, songwriter and actress, best known as the lead vocalist of the band Blondie. Four of her songs with the band reached No. 1 on the US charts between 1979 and 1981.
Born in Miami, Florida, Harry was adopted as an infant and raised in Hawthorne, New Jersey. After college she worked various jobs—as a dancer, a Playboy Bunny, and a secretary (including at the BBC in New York)—before her breakthrough in the music industry. She co-formed Blondie in 1974 in New York City. The band released its eponymous debut studio album in 1976 and released three more studio albums between then and 1979, including Parallel Lines, which spawned six singles, including "Heart of Glass". Their fifth studio album, Autoamerican (1980), spawned such hits as a cover of "The Tide Is High", and "Rapture", which is considered the first rap song to chart at number one in the United States.Harry released her debut solo studio album, KooKoo, in 1981. During a Blondie hiatus, she embarked on an acting career, appearing in lead roles in the neo-noir Union City (1980) and in David Cronenberg's body horror film Videodrome (1983). She released her second solo studio album, 1986's Rockbird, and starred in John Waters's cult dance film Hairspray (1988). She released two more solo albums between then and 1993, before returning to film with roles in a John Carpenter-directed segment of the horror film Body Bags (1993), and in the drama Heavy (1995).
Blondie reunited in the late 1990s, releasing No Exit (1999), followed by The Curse of Blondie (2003). Harry continued to appear in independent films throughout the 2000s, including Deuces Wild (2002), My Life Without Me (2003) and Elegy (2008). With Blondie, she released the group's ninth studio album, Panic of Girls, in 2011, followed by Ghosts of Download (2014). The band's eleventh studio album, 2017's Pollinator, charted at number 4 in the United Kingdom.

Page: Harry Potter
Summary: Harry Potter is a series of seven fantasy novels written by British author J. K. Rowling. The novels chronicle the lives of a young wizard, Harry Potter, and his friends Hermione Granger and Ron Weasley, all of whom are students at Hogwarts School of Witchcraft and Wizardry. The main story arc concerns Harry's conflict with Lord Voldemort, a dark wizard who intends

Thought: I now know the final answer
Final Answer: Harry Styles is an English singer, songwriter and actor. He rose to fame as a member of the boy band One Direction, and later embarked on a solo career. He released his debut solo album, Harry Styles, in 2017, and his second album, Fine Line, in 2019. He has also had success in film, appearing in Dunkirk (2017), Don't Worry Darling (2022) and My Policeman (2022).

> Finished chain.

"Harry Styles is an English singer, songwriter and actor. He rose to fame as a member of the boy band One Direction, and later embarked on a solo career. He released his debut solo album, Harry Styles, in 2017, and his second album, Fine Line, in 2019. He has also had success in film, appearing in Dunkirk (2017), Don't Worry Darling (2022) and My Policeman (2022)."

Vemos que al ejecutar .run(), el agent procesa el prompt y comienza la fase de razonamiento, que concluye con: «I should look for a biography of the singer». Para ello diseña un plan de acción que consiste en usar la herramienta Wikipedia Search —según nuestra definición— con «Harry Styles biography» como entrada. Luego ejecuta el plan, recupera información de Wikipedia, procesa los hallazgos y genera una respuesta adecuada en lenguaje natural.

Ejemplo 2: navegación genérica

Ahora vamos a pedirle una tarea de navegación genérica, sin que haya una tool específica mencionada en la descripción del toolkit:

agent.run(
   "Yesterday's latest news in Spain"
)

Observemos el razonamiento en este caso:

> Entering new AgentExecutor chain...
I should look for news from yesterday

Action: Google Search
Action Input: "Yesterday's news in Spain"

Observation: The latest breaking news, comment and features from The Independent. All the latest content about Spain from the BBC. Find all national and international information about spain. Select the subjects you want to know more about on euronews.com. Latest Spain news stories including accidents, crime and policing, politics, and Spanish sport news headlines. Latest news, essential insights and practical guides to life in Spain from The Local, Europe's leading independent voice. Missing: Yesterday's | Show results with:Yesterday's. Stay on top of Spain latest developments on the ground with Al Jazeera's fact-based news, exclusive video footage, photos and updated maps. Missing: Yesterday's | Show results with:Yesterday's. Spain · Shakira due to go on trial in Spain over tax fraud claims · The Observer view on Pedro Sánchez's election deal to take power: it undermines democracy. Missing: Yesterday's | Show results with:Yesterday's. Latest News · Hundreds leave Al-Shifa hospital as Israeli forces take control of facility · F1 fans file class-action suit over being forced to exit Las Vegas ... Missing: Yesterday's | Show results with:Yesterday's. Follow the latest Spain news stories and headlines. Get breaking news alerts when you download the ABC News App and subscribe to Spain notifications. Missing: Yesterday's | Show results with:Yesterday's. Get the latest breaking news and top news headlines at Reuters ... Spain Headlines. Shakira stands trial in Spain for alleged tax fraud. Shakira ... Missing: Yesterday's | Show results with:Yesterday's.
Thought: I found a lot of news sources with yesterday's news, so the final answer should be about that.

Final Answer: The latest news in Spain from yesterday is that Shakira is standing trial in Spain for alleged tax fraud, hundreds of people have left Al-Shifa hospital as Israeli forces take control, and F1 fans have filed a class-action suit over being forced to exit Las Vegas. Other news includes insights and practical guides to life in Spain, Pedro Sánchez's election deal to take power, and the top news headlines from Reuters.

> Finished chain.
"The latest news in Spain from yesterday is that Shakira is standing trial in Spain for alleged tax fraud, hundreds of people have left Al-Shifa hospital as Israeli forces take control, and F1 fans have filed a class-action suit over being forced to exit Las Vegas. Other news includes insights and practical guides to life in Spain, Pedro Sánchez's election deal to take power, and the top news headlines from Reuters."

Aquí el agent recurre correctamente a la tool predeterminada de Google Serper y encuentra las últimas noticias en España. Este ejemplo es interesante porque lanzamos un prompt muy reciente a un LLM cuyo entrenamiento se cortó en septiembre de 2021, y aun así obtenemos una respuesta actualizada.

Ejemplo 3: recuperación de vídeo

Por último, supongamos que queremos un recurso en vídeo. Veamos si el modelo puede señalarlo. Desactivamos el modo verbose y miramos la respuesta:

agent = initialize_agent(
   tools, llm, agent="zero-shot-react-description"
)

agent.run(
   "Can you point me to the Procrastination TED talk by Tim Urban?"
)

Y, como era de esperar, obtenemos la siguiente respuesta:

'The TED Talk "Procrastination" by Tim Urban can be found at
https://www.youtube.com/watch?v=arj7oStGLkU'

¡Funciona! Con estos tres ejemplos hemos visto distintas fuentes que el LLM puede usar para responder a nuestras peticiones.

Si te interesa incorporar más Tools a nuestro Toolkit, te recomiendo el artículo ReAct: 3 LangChain Tools para ampliar las capacidades por defecto de GPT.

Conclusión

En este tutorial hemos visto cómo usar LangChain Tools para mejorar las funciones de navegación en LLM. En el corazón de LangChain está su capacidad para agilizar el desarrollo de aplicaciones basadas en LLM, con un conjunto de funciones potentes como memorias integradas, chatbots completos y las Tools que hemos explorado, entre otras.

Aunque OpenAI está avanzando en IA personalizada con el lanzamiento de sus últimos modelos GPT, creo que aún hay mucho margen para crecer e innovar.

En este sentido, LangChain Tools ofrecen una ventaja importante para quienes interactúan con modelos GPT desde Python y la API de OpenAI. Contrasta con los GPTs, que parecen pensados para un público sin código. Los usuarios de GPT pueden configurar una instancia especializada desde la interfaz de ChatGPT y acceder a ella cuando la necesiten: es muy usable, pero menos flexible.

Además, la capacidad de LangChain Tools para consultar fuentes externas como Google o Wikipedia amplía notablemente la base de conocimiento del modelo. Es una ventaja considerable frente a los GPTs, que admiten subir información pero a menor escala.

En definitiva, en mi opinión LangChain Tools son de lo más potente para aumentar las capacidades del modelo y personalizar nuestras propias instancias con datos públicos ampliamente disponibles. ¿Te imaginas combinar estas Tools con tu propia base de datos privada?

¿Nuevo en el mundo de los LLM? Échale un vistazo a nuestro curso Large Language Models (LLMs) Concepts para ponerte al día.


Andrea Valenzuela's photo
Author
Andrea Valenzuela
LinkedIn
Twitter

Andrea Valenzuela trabaja actualmente en el experimento CMS en el acelerador de partículas (CERN) de Ginebra (Suiza). Con experiencia en ingeniería y análisis de datos durante los últimos seis años, sus funciones incluyen el análisis de datos y el desarrollo de software. Ahora trabaja para democratizar el aprendizaje de las tecnologías relacionadas con los datos a través de la publicación en Medium ForCode'Sake.

Es licenciada en Ingeniería Física por la Universidad Politécnica de Cataluña, así como Máster en Sistemas Interactivos Inteligentes por la Universidad Pompeu Fabra. Su experiencia investigadora incluye el trabajo profesional con algoritmos anteriores de OpenAI para la generación de imágenes, como Flujos Normalizadores.

Temas
Inteligencia Artificial

¡Desarrolla tus habilidades en IA!

Curso

Creación de agentes de IA con Google ADK

1 h
7.5K
Crea un asistente de atención al cliente paso a paso con el kit de desarrollo de agentes (ADK) de Google.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial sobre cómo crear aplicaciones LLM con LangChain

Explore el potencial sin explotar de los grandes modelos lingüísticos con LangChain, un marco Python de código abierto para crear aplicaciones avanzadas de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

Construir agentes LangChain para automatizar tareas en Python

Un tutorial completo sobre la construcción de agentes LangChain multiherramienta para automatizar tareas en Python utilizando LLMs y modelos de chat utilizando OpenAI.

Tutorial

Cómo hacer modelos de ChatGPT personalizados: 5 sencillos pasos para conseguir GPT personalizados

Echa un vistazo a estos cinco sencillos pasos para liberar todo el potencial de ChatGPT con tus propios GPT personalizados.
Moez Ali's photo

Moez Ali

9 min

Tutorial

Guía para principiantes sobre la ingeniería de avisos ChatGPT

Descubra cómo conseguir que ChatGPT le proporcione los resultados que desea dándole las entradas que necesita.
Matt Crabtree's photo

Matt Crabtree

6 min

Tutorial

Ajuste fino de GPT-3 mediante la API OpenAI y Python

Libere todo el potencial de GPT-3 mediante el ajuste fino. Aprenda a utilizar la API de OpenAI y Python para mejorar este modelo de red neuronal avanzado para su caso de uso específico.
Zoumana Keita 's photo

Zoumana Keita

12 min

Tutorial

Visión GPT-4: Guía completa para principiantes

Este tutorial le presentará todo lo que necesita saber sobre GPT-4 Vision, desde cómo acceder a él hasta ejemplos prácticos del mundo real y sus limitaciones.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

Ver MásVer Más