Qué es un agente de IA
Un agente de IA es un sistema que combina un modelo de lenguaje con herramientas externas para razonar sobre tareas, decidir qué acciones ejecutar y trabajar de forma iterativa hacia una solución. A diferencia de una simple llamada a un modelo que devuelve texto, un agente puede realizar múltiples pasos de razonamiento y ejecución hasta alcanzar su objetivo.
El funcionamiento de un agente sigue un bucle de razonamiento-acción:
- El agente recibe una entrada del usuario
- El modelo razona sobre qué acción tomar
- Si decide usar una herramienta, la ejecuta y observa el resultado
- Con esa observación, vuelve a razonar sobre el siguiente paso
- El bucle continúa hasta que el modelo determina que tiene la respuesta final
Este flujo se puede visualizar de la siguiente manera:
[Entrada] → [Modelo razona] → [Ejecuta herramienta] → [Observa resultado] → [Modelo razona] → [Respuesta final]
La diferencia fundamental con un modelo de lenguaje estándar es que el agente puede tomar decisiones dinámicas. No sigue un script predefinido, sino que adapta su comportamiento según las respuestas que obtiene en cada paso.
Por ejemplo, si un usuario pregunta "¿Cuál es el clima en Madrid?", un agente puede:
- Decidir que necesita buscar información actualizada
- Llamar a una herramienta de clima con "Madrid" como parámetro
- Recibir la respuesta de la herramienta
- Formular una respuesta al usuario con los datos obtenidos
El módulo agents
LangChain organiza toda la funcionalidad relacionada con agentes en el módulo langchain.agents. Este módulo proporciona las abstracciones y funciones necesarias para crear, configurar y ejecutar agentes de forma sencilla.
Los componentes principales que encontramos en este módulo son:
create_agent: Función principal para crear agentes listos para producciónAgentState: Clase base para definir el estado que mantiene el agente durante su ejecución- Middleware: Decoradores y clases para personalizar el comportamiento del agente
Para utilizar el módulo, la importación básica es:
from langchain.agents import create_agent
El diseño del módulo sigue una arquitectura basada en grafos, donde cada paso del agente representa un nodo y las transiciones entre pasos son las aristas. Esta arquitectura permite:
- Ejecución de múltiples herramientas en secuencia
- Llamadas paralelas cuando es apropiado
- Persistencia del estado entre llamadas
- Manejo de errores y reintentos
La función create_agent
La función create_agent es el punto de entrada principal para construir agentes en LangChain. Esta función crea un agente completamente funcional con solo especificar el modelo y las herramientas disponibles.
El uso más básico requiere únicamente dos parámetros:
from langchain.agents import create_agent
from langchain.tools import tool
# Definimos una herramienta simple
@tool
def buscar_clima(ciudad: str) -> str:
"""Busca el clima de una ciudad."""
return f"El clima en {ciudad} es soleado, 22°C"
# Creamos el agente
agent = create_agent(
model="gpt-5.1",
tools=[buscar_clima]
)
El parámetro model acepta diferentes formatos. Podemos usar una cadena con el identificador del modelo:
agent = create_agent("gpt-5.1", tools=[])
LangChain infiere automáticamente el proveedor a partir del nombre del modelo. Por ejemplo, "gpt-5.1" se interpreta como "openai:gpt-5.1".
Para mayor control sobre la configuración del modelo, podemos instanciar directamente la clase del proveedor:
from langchain_openai import ChatOpenAI
modelo = ChatOpenAI(
model="gpt-5.1",
temperature=0.1,
max_tokens=1000
)
agent = create_agent(modelo, tools=[buscar_clima])
Invocación del agente
Una vez creado el agente, lo invocamos pasando un diccionario con los mensajes. El formato estándar incluye una lista de mensajes con su rol y contenido:
resultado = agent.invoke({
"messages": [
{"role": "user", "content": "¿Qué tiempo hace en Madrid?"}
]
})
# El resultado contiene los mensajes de la conversación
print(resultado["messages"][-1].content)
El agente procesa la petición, decide si necesita usar alguna herramienta, la ejecuta si es necesario, y devuelve la respuesta final. Todo el estado de la conversación se mantiene en la clave messages del resultado.
Agentes sin herramientas
Si creamos un agente con una lista de herramientas vacía, obtenemos un agente que funciona como un modelo de lenguaje simple, sin capacidad de ejecutar acciones externas:
agent_simple = create_agent("gpt-5.1")
resultado = agent_simple.invoke({
"messages": [{"role": "user", "content": "Explica qué es Python"}]
})
Este tipo de agente resulta útil como punto de partida o cuando queremos añadir herramientas de forma dinámica mediante middleware, un concepto que exploraremos en lecciones posteriores de este módulo.
Fuentes y referencias
Documentación oficial y recursos externos para profundizar en LangChain
Documentación oficial de LangChain
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, LangChain es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de LangChain
Explora más contenido relacionado con LangChain y continúa aprendiendo con nuestros tutoriales gratuitos.
Aprendizajes de esta lección
Comprender qué es un agente de IA y su bucle de razonamiento-acción, usar create_agent para crear agentes funcionales, invocar agentes con mensajes estructurados, trabajar con agentes sin herramientas, y entender la arquitectura basada en grafos del módulo agents.
Cursos que incluyen esta lección
Esta lección forma parte de los siguientes cursos estructurados con rutas de aprendizaje