Introducción
Los agentes de IA se vuelven útiles cuando pueden comunicarse con el mundo exterior. Las APIs REST son la forma más común en que los sistemas exponen funcionalidad, por lo que un agente debe poder llamarlas bajo demanda. El reto es que la mayoría de las APIs están diseñadas para clientes operados por humanos (paneles, aplicaciones móviles), no para tomadores de decisiones autónomos. Antes de que un agente pueda usar una API, necesitas traducir el contrato de la API en algo que el agente pueda entender e invocar.
Envolver una API como herramienta
Una herramienta, desde la perspectiva del agente, es una función con un nombre, una descripción y un conjunto de parámetros. Construyes un envoltorio delgado que recibe entrada estructurada del agente (por ejemplo, el nombre de una ciudad) y devuelve un resultado estructurado.
El envoltorio oculta los detalles HTTP (cabeceras, códigos de estado, parseo de JSON) y expone una firma de función limpia. El agente solo ve el nombre de la función, su docstring o descripción y los parámetros tipados.
Estructurar la descripción para el agente
La descripción es lo que indica al agente cuándo y cómo llamar a la herramienta. Una buena descripción de herramienta tiene tres partes: un resumen de una línea de lo que hace la herramienta, una nota sobre cuándo usarla (y, igualmente importante, cuándo no) y una descripción de cada parámetro, incluyendo formato y restricciones.
Mantén las descripciones factuales. Evita palabras exageradas como "potente" o "avanzado": el agente toma decisiones de invocación basándose en la utilidad, no en lenguaje de marketing.
Gestión de límites de velocidad, paginación y errores
Las APIs fallan de formas predecibles. Tu envoltorio debe manejar esos fallos para que el agente reciba retroalimentación útil en lugar de trazas de pila crudas.
Para límites de velocidad, respeta la cabecera Retry-After cuando esté presente y aplica backoff exponencial ante respuestas 429 repetidas. Envuelve la llamada en un bucle de reintentos con un número máximo de intentos para evitar esperas infinitas.
Para paginación, diseña el envoltorio de modo que acepte un parámetro page o cursor y devuelva una señal clara cuando haya más páginas disponibles. Deja que el agente decida si seguir fetching: puede razonar sobre coste y relevancia mejor que un bucle hardcoded.
Para errores, devuelve un objeto estructurado en lugar de lanzar excepciones a ciegas. Incluye el código de estado, una razón breve legible por humanos y, opcionalmente, una pista sobre cómo recuperarse. Esto permite al agente reintentar con parámetros corregidos, cambiar de herramienta o reportar el problema al usuario.
Resumen
Trata cada API como una herramienta con tres capas: una firma de función limpia, una descripción precisa que el agente pueda usar para seleccionarla y un envoltorio robusto que gestione las realidades del HTTP: reintentos, paginación y reporte de errores. El envoltorio es el contrato entre un servicio externo poco fiable y un agente razonador que necesita entradas predecibles para tomar buenas decisiones.
Errores comunes
Envolver una API sin una descripción que especifique cuándo no usarla. Dejar que las excepciones crudas se propaguen al agente en lugar de devolver objetos de error estructurados. Hardcodear bucles de paginación para que el agente no pueda saltar páginas o detenerse antes. Ignorar la cabecera Retry-After y usar retardos fijos que te baneen más rápido.
Punto de control de la lección
Repasa lo aprendido y recibe comentarios sobre tu trabajo.