Aprende a construir y desplegar agentes de IA con LangGraph usando watsonx.ai

La inteligencia artificial ya no solo responde, también toma decisiones. Con frameworks como LangGraph y plataformas como watsonx.ai , puedes construir agentes que razonen y actúen de forma autónoma 🤯.

En este artículo, te explicaremos cómo implementar un agente ReAct (Reasoning + Action) localmente y desplegarlo en IBM Cloud, todo esto con un ejemplo práctico que incluye una herramienta de consulta del clima 🌤️.

Cómo construir y desplegar agentes IA autónomos con LangGraph y watsonx.ai

Preparemos el entorno para nuestro agente

Necesitamos:

  • Python 3.12 instalado
  • Acceso a IBM Cloud y watsonx.ai
  • Poetry para gestión de dependencias

¿Lo tienes todo? Pues lo primero es lo primero, clonar el repositorio que usaremos como ejemplo. Está basado en los ejemplos oficiales de IBM.

git clone https://github.com/thomassuedbroecker/watsonx-agent-langgraph-deployment-example.git 
cd ./agents/langgraph-arxiv-research

Arquitectura del proyecto

Antes de nada, entendamos el proyecto de ejemplo.

[Developer Workstation] → [CI/Build Process] → [Deployment] ↓
[IBM Cloud / watsonx.ai]

Los principales archivos del agente son:

ai_service.py
Archivo principal que inicia el servicio del agente en producción.
agent.py
Lógica central del agente IA basado en LangGraph. Define el flujo de trabajo.
tools.py
Herramientas conectadas al agente (Weather API).

Diagrama del repo de ejemplo de Langgraph y watson.ai

Pasemos a configurar el entorno

python3.12 -m venv .venv
source ./.venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install poetry

También recomendamos el uso de Anaconda o miniconda. Nos permite gestonar entornos virtuales o paquetes de Python de forma sencilla y es muy utilizado en ML.

Para que Python pueda encontrar nuestros módulos personalizados (como los agentes y las herramientas), necesitamos incluir el directorio actual en la variable de entorno PYTHONPATH

 

export PYTHONPATH=$(pwd):${PYTHONPATH}

echo ${PYTHONPATH}

 

Una vez tenemos listo el entorno es el momento de las variables. Debes crear un archivo config.toml si no lo tienes ya y usar tus credenciales de IBM Cloud:

[deployment]
  watsonx_apikey = "TU_APIKEY"
  watsonx_url = ""  # Tiene que seguir el siguiente formato: `https://{REGION}.ml.cloud.ibm.com0`
  space_id = "SPACE_ID"
  deployment_id = "YOUR_DEPLOYMENT_ID"
[deployment.custom]
  model_id = "mistralai/mistral-large"  # underlying model of WatsonxChat
  thread_id = "thread-1" # Más información: https://langchain-ai.github.io/langgraph/how-tos/persistence/
  sw_runtime_spec = "runtime-24.1-py3.11"

Encontrarás tus variables aquí:

https://dataplatform.cloud.ibm.com/developer-access

Una vez allí, selecciona tu espacio de despliegue y copia los datos necesarios (API Key, Space ID, etc.).

Ejecución en local del agente

Toca probar el agente:

source ./.venv/bin/activate
poetry run python examples/execute_ai_service_locally.py

Ya que es un agente meteorológico ¿por qué no lo pruebas con algo como algo como…?

“What is the current weather in Madrid?”

La consola debería darte el tiempo en Madrid. ¡Enhorabuena! solo nos falta hacer el deploy en watsonx.ai

Despliegue del agente en watsonx.ai

source ./.venv/bin/activate
poetry run python scripts/deploy.py
Este código desplegará el agente en Watsonx.ai 
deploy.py hace lo siguiente:
  1. Lee la configuración (config.toml) con tus credenciales y espacio de despliegue.
  2. Empaqueta tu código en un ZIP para subirlo a IBM Cloud.
  3. Crea una especificación de software personalizada basada en un entorno base (como runtime-24.1-py3.11).
  4. Despliega el agente como un servicio REST en watsonx.ai.
  5. Guarda el deployment_id , necesario para interactuar con el agente después.

En resumen:
Toma tu agente local, lo prepara y lo convierte en un servicio accesible desde la nube.

Revisamos que esté todo correcto en watsonx.ai y vamos al apartado de “Test”. Allí pegaremos el siguiente json (es tan solo una pregunta)
{
"messages": [
{
"content": "What is the weather in Malaga?",
"data": {
"endog": [
0
],
"exog": [
0
] },
"role": "User"
}
] }
Dale a predict y el agente usará la herramienta weather_service.
En el json de respuesta podrás ver el proceso del agente -> llamar a la herramienta -> recoger la ciudad -> procesar y devolver la temperatura.
¡Ya está funcionando tu agente en watsonx.ai!
Si quieres probarlo desde la terminal para asegurarte de que funciona, solo tienes que usar
source ./.venv/bin/activate
poetry run python examples/query_existing_deployment.py
Conclusiones

Si te ha quedado alguna duda, te recomendamos el siguiente vídeo tutorial donde podrás seguir paso a paso el desarrollo conectado con watsonx.ai

🚀 "AI Agents: A Complete Guide to Developing and Deploying on watsonx.ai with IBM Cloud" 🚀🚀 "AI Agents: A Complete Guide to Developing and Deploying on watsonx.ai with IBM Cloud" 🚀

Si quieres seguir explorando este tipo de implementaciones o aprender más sobre desarrollo cloud e inteligencia artificial, te invitamos a explorar nuestros cursos de IA👇

SIXE