Cómo usar 🤖 cagent 🤖 con GitHub Models

¡Hola developer 👋🏻! Ayer Docker publicó un artículo en el cual presentaban una nueva herramienta llamada cagent, la cual te permite de forma declarativa, muy al estilo Docker Compose, crear agentes … o multi-agentes que ahora está muy de moda 🤖. Si bien es cierto que en su documentación te cuentan cómo configurarlo con OpenAI, Anthropic, Docker Model Runner o Gemini, en este artículo te quiero mostrar cómo puedes configurarlo para poder usar esta herramienta GRATIS con los modelos que tienes disponibles en GitHub Models, gracias a tu cuenta personal en GitHub, aunque cagent no tenga un provider específico para ello.

💡 Si quieres hacer lo mismo pero con modelos de Ollama puedes echar un vistazo a este otro artículo. Y si quieres verlo en acción puedes echar un vistazo a mi vídeo en mi canal de YouTube: 🤖 Crea agentes de IA con solo un YAML ⚡ cagent explicado a fondo 🐙

Configuración de ejemplo para cagent

Para que puedas verlo con un ejemplo sencillo, esta es la configuración que he utilizado para probar cagent con GitHub Models:

#!/usr/bin/env cagent run
version: "2"
agents:
  root:
    model: my_github_model
    description: Asistente para generar títulos de Youtube
    instruction: |
      Eres un asistente especializado en crear títulos optimizados para YouTube 🎬.
      Tu tarea es generar 5 opciones de títulos atractivos, creativos y relevantes a partir de la descripción que se te proporcione.
      ➡️ Cada título debe:
      - Ser claro y fácil de entender.
      - Estar orientado a captar la atención (gancho).
      - Reflejar fielmente el contenido del vídeo.
      - Usar un máximo de 70 caracteres.
      - Incluir siempre al menos un emoji para hacerlo más llamativo.
      Si recibes una solicitud que no esté relacionada con la generación de títulos de YouTube, responde:
      "Lo siento, solo puedo ayudarte a generar títulos de videos de YouTube."
models:
  my_github_model:
    provider: openai
    model: openai/gpt-4.1
    base_url: https://models.github.ai/inference

Como puedes ver, en la sección de models lo que hago es utilizar la sección my_github_model y le indico como proveedor openai, ya que la API que se usa detrás del endpoint https://models.github.ai/inference, usando más abajo con la propiedad base_url, es compatible con la misma.

Por otro lado, en un archivo .env dejo el Personal Access Token, con el permiso para Models, para que luego pueda usarlo durante la ejecución con cagent.

OPENAI_API_KEY=GITHUB_PERSONAL_ACCESS_TOKEN_CON_PERMISO_MODELS

¿Cómo ejecuto esto?

Una vez que tienes la configuración, en mi caso la he almacenado en un archivo llamado github-models-demo.yml, y el personal access token en el .env, lo siguiente que necesitas es descargar la última release de cagent. En mi caso, que estoy en un iMac Intel, he utilizado este pequeño script para hacerlo:

URL_TO_DOWNLOAD=$(curl -fsSL https://api.github.com/repos/docker/cagent/releases/latest \
	| jq -r '.assets[] | select(.name | test("cagent-darwin-amd64")) | .browser_download_url')
echo "Descargando: $URL_TO_DOWNLOAD"
curl -fL "$URL_TO_DOWNLOAD" -o cagent
chmod +x cagent
./cagent --version

Una vez que lo tengas, lo único que tienes que hacer es lanzar lo siguiente:

./cagent run github-models-demo.yml --env-from-file .env

Y ya estás listx para empezar a jugar.

En este repo puedes encontrar el código explicado en este artículo.

Si quieres saber más sobre IA Generativa desde el punto de vista de un dev, te dejo la playlist mi serie de mi canal de YouTube:

¡Nos vemos 👋🏻!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.