Ai/automazione

Agentes de Coding: Optimización con Gemini API Docs MCP

Los agentes de coding prometen automatizar lo que más tiempo nos roba: escribir tests repetitivos, configurar endpoints, generar boilerplate. Sin embargo, cuando un agente no tiene acceso a la documentación actualizada de la API, genera código que simplemente no compila o llama a endpoints depreciados. He visto a equipos perder horas depurando código generado por agentes que inventaron respuestas en lugar de consultar la spec oficial. Aquí es donde entra Gemini API Docs MCP (Model Context Provider) combinado con Agent Skills. MCP permite inyectar la documentación OpenAPI directamente en el contexto del modelo, y las Agent Skills definen capacidades especializadas para que el agente ejecute acciones concretas. En este artículo verás cómo configurar este entorno para que tus agentes de coding dejen de adivinar y empiecen a generar código funcional basado en la realidad de tu API. Reducirás los errores de integración y acortarás los ciclos de despliegue de días a horas.

Requisitos Previos para Agentes de Coding

  • Una cuenta de Google Cloud Platform (GCP) con acceso a la API de Gemini.
  • Python 3.9 o superior instalado.
  • Librerías Python: google-generativeai, requests, pyyaml.
  • Entorno de desarrollo configurado (virtualenv o Conda).
  • Familiaridad con especificaciones OpenAPI/Swagger.

Lee también: Automatización de Infraestructura con Ansible

Configuración del Entorno de Desarrollo

El primer paso consiste en preparar el entorno de desarrollo Python. Aislar las dependencias del proyecto evita conflictos de versiones que rompen la ejecución del agente.

Crear un Virtual Environment

Abre tu terminal y crea un nuevo entorno virtual para mantener el espacio de trabajo limpio.

python3 -m venv venv
source venv/bin/activate

Instalar las Librerías Necesarias

Instala las librerías google-generativeai y requests utilizando pip. Estas dependencias permiten la conexión con el modelo y la descarga de la especificación de la API.

pip install google-generativeai requests pyyaml

Configurar las Credenciales de Google Cloud

Asegúrate de configurar las credenciales de Google Cloud para acceder a la API de Gemini. Ejecuta el siguiente comando mediante Google Cloud CLI:

gcloud auth application-default login

Este comando abre una ventana del navegador para autenticarte con tu cuenta de Google Cloud. Verifica que el proyecto tenga la API de Gemini habilitada.

Integrar Gemini API Docs MCP

Gemini API Docs MCP (Model Context Provider) permite proporcionar al modelo el contexto exacto para comprender y utilizar las APIs. Carga la documentación directamente en el modelo, lo que permite al agente de coding acceder a la información más actualizada y evitar alucinaciones. Todavía no tengo una respuesta definitiva sobre si MCP reemplazará por completo a RAG tradicional, pero para APIs estructuradas es netamente superior.

Obtener la Documentación de la API

Primero necesitas recuperar la documentación de la API en formato OpenAPI/Swagger. Muchas APIs públicas proporcionan un endpoint para descargar esta documentación. Supongamos que trabajamos con una API de gestión de usuarios. El URL de la documentación podría ser https://example.com/api/v1/openapi.json.

Utiliza la librería requests para descargar y procesar la especificación:

import requests
import json

openapi_url = "https://example.com/api/v1/openapi.json"
response = requests.get(openapi_url)

if response.status_code == 200:
    api_spec = response.json()
    # Extraer endpoints y esquemas relevantes para el contexto
    context_data = json.dumps(api_spec, indent=2)
    print(f"Documentación cargada: {len(api_spec.get('paths', {}))} endpoints disponibles.")
else:
    print(f"Error al descargar la spec: HTTP {response.status_code}")

Inyectar el Contexto en el Modelo

Una vez descargada la especificación, inyecta ese contexto en el modelo Gemini. Esto garantiza que el agente conozca los parámetros exactos, los métodos permitidos y los códigos de respuesta.

import google.generativeai as genai

genai.configure(api_key="TU_API_KEY")

model = genai.GenerativeModel('gemini-1.5-pro')

prompt = f"""
Eres un agente de coding experto en Python.
Utiliza la siguiente especificación OpenAPI para generar el código solicitado.
No inventes endpoints. Cíñete estrictamente a la documentación proporcionada.

Especificación OpenAPI:
{context_data}

Tarea: Escribe una función en Python que consuma el endpoint /users para listar todos los usuarios activos, incluyendo manejo de errores para códigos de estado 4xx y 5xx.
"""

response = model.generate_content(prompt)
print(response.text)

Consulta la documentación oficial de Gemini API para revisar los límites de tokens y los modelos disponibles.

Implementar Agent Skills

Las Agent Skills transforman un modelo de lenguaje pasivo en un agente capaz de ejecutar acciones concretas. En lugar de limitarse a generar texto, el agente utiliza herramientas predefinidas para interactuar con el entorno.

Define las funciones que el agente puede invocar y mapealas como skills disponibles. Esto le indica al modelo qué acciones puede realizar y qué parámetros requiere cada una.

def listar_usuarios_activos(api_base_url):
    """Obtiene la lista de usuarios activos del sistema."""
    import requests
    response = requests.get(f"{api_base_url}/users?status=active")
    response.raise_for_status()
    return response.json()

def crear_usuario(api_base_url, datos_usuario):
    """Crea un nuevo usuario en el sistema."""
    import requests
    response = requests.post(f"{api_base_url}/users", json=datos_usuario)
    response.raise_for_status()
    return response.json()

# Mapear las skills disponibles para el agente
agent_skills = {
    "list_users": {
        "function": listar_usuarios_activos,
        "description": "Lista todos los usuarios activos del sistema."
    },
    "create_user": {
        "function": crear_usuario,
        "description": "Crea un nuevo usuario proporcionando nombre y email."
    }
}

Cuando configures el agente, pásale este mapeo de funciones. El modelo Gemini determinará cuándo invocar cada skill basándose en el prompt del usuario y el contexto de la API proporcionado por el MCP.

Errores Comunes y Resolución de Problemas

Integrar agentes de coding con APIs reales presenta desafíos. Estos son los errores más frecuentes y cómo solucionarlos.

El agente alucina endpoints que no existen. Esto ocurre cuando la especificación OpenAPI no se inyectó correctamente o excedió el límite de tokens del modelo. Solución: Filtra el JSON de la spec antes de pasarlo al modelo. Extrae solo los endpoints relevantes para la tarea específica en lugar de pasar toda la API.

Fallos de autenticación con GCP. El agente no puede generar respuestas si las credenciales no están activas. Solución: Verifica que gcloud auth application-default login se ejecutó en la misma sesión de terminal donde corres el script. Revisa que el proyecto tenga facturación habilitada.

El código generado no maneja errores HTTP. El agente asume que todas las llamadas serán exitosas. Solución: Incluye instrucciones explícitas en el prompt para manejar códigos de estado 4xx y 5xx, y solicita el uso de raise_for_status() en la librería requests.

Conflictos de dependencias en Python. Las librerías del agente chocan con otras versiones instaladas. Solución: Utiliza siempre un entorno virtual aislado. Nunca ejecutes estos scripts en el entorno global del sistema operativo.

Conclusiones con Puntos Clave Operativos

Optimizar agentes de coding requiere proporcionarles el contexto exacto y las herramientas adecuadas para ejecutar tareas reales. Inyectar la especificación OpenAPI mediante Gemini API Docs MCP elimina las alucinaciones del modelo. Definir Agent Skills transforma la salida de texto en acciones ejecutables. Al aplicar esta arquitectura, reduces los errores de integración y aceleras el desarrollo de software.

Puntos clave:

  • Inyecta siempre la documentación OpenAPI en el prompt para evitar que el agente invente endpoints.
  • Filtra la especificación de la API antes de enviarla al modelo para no exceder los límites de tokens.
  • Define Agent Skills claras con funciones Python ejecutables para que el agente interactúe con el mundo real.
  • Aísla las dependencias en un entorno virtual para evitar conflictos de versiones en producción.

Comparte este artículo:

Escrito por

Rosario Giordano

Rosario Giordano es administrador de sistemas y consultor de TI especializado en c iberseguridad y cloud, con más de 20 años de experiencia en la gestión de infraestructuras Linux empresariales. Sus áreas de especialización incluyen el hardening de SSH, plataformas Kubernetes , bases de datos PostgreSQL, virtualización con VMware/Proxmox y el cumplimiento de los marcos de seguridad NIS2 e ISO 27001.