Skip to content

0GiS0/jueves-de-quack-cagent-demos

Repository files navigation

Jueves de Quack 🦆 con 🤖cagent🤖

YouTube Channel Subscribers GitHub followers LinkedIn Follow X Follow


¡Hola developer 👋🏻! Este repositorio contiene las demos que mostré durante el evento Jueves de Quack 🦆 con 🤖cagent🤖.

Construyendo chats con IA 🤖 OpenAI SDK vs LangChain explicado fácil 🎯 | Cap. 11

¿Pero qué es cagent?

cagent es una herramienta desarrollada por Docker que permite, usando un YAML, crear agentes conversacionales que pueden usar múltiples modelos de lenguaje, herramientas y flujos de trabajo para automatizar tareas complejas.

Lo chulo es que esta herramienta a día de hoy ya permite usar diferentes modelos de diferentes proveedores, integración con MCP Servers e incluso la posibilidad de crear multiples agentes que colaboran entre sí para resolver tareas complejas.

En este vídeo de mi canal de YouTube te explico de forma resumida también todo ello.

Construyendo chats con IA 🤖 OpenAI SDK vs LangChain explicado fácil 🎯 | Cap. 11

🚀 Configuración Inicial

1. Descargar cagent

Para descargar la última versión de cagent, puedes usar el siguiente script. Asegúrate de tener jq instalado para procesar JSON.

# Cambia a darwin-arm64 "linux-amd64" o "windows-amd64", etc. según tu SO
PLATFORM="darwin-amd64"
# PLATFORM="darwin-arm64"

# Recuperar la última versión de cagent
URL_TO_DOWNLOAD=$(curl -fsSL https://api.github.com/repos/docker/cagent/releases/latest \
  | jq -r ".assets[] | select(.name | test(\"cagent-$PLATFORM\")) | .browser_download_url")

# Descargar
curl -fL "$URL_TO_DOWNLOAD" -o cagent

# Hacer el archivo ejecutable
chmod +x cagent

# Verificar instalación
./cagent version

2. Configurar Variables de Entorno

cp .env-sample .env

Para GitHub Models, necesitas crear un Personal Access Token en: https://github.com/settings/tokens

Permisos requeridos: models:read en los tokens clásicos o Models si crear un fined-grained token.

Guarda el mismo en la variable OPENAI_API_KEY en el archivo .env:

OPENAI_API_KEY=ghp_tu_token_aqui

Para otros proveedores te he dejado como parte del .env-sample las variables que podrías necesitar.

👩🏼‍💻 Demos

Para este evento, utilicé un escenario sencillo donde lo único que necesitaba era generar títulos para vídeos de YouTube, basados en una descripción que le pasara al agente. Para probar, puedes usar esta descripción de ejemplo:

Esta es la descripción de mi vídeo: En este vídeo te voy a mostrar cómo usar cagent, una herramienta desarrollada por Docker, que te permite usando un único YAML crear agentes conversacionales que pueden usar múltiples modelos de lenguaje, herramientas y flujos de trabajo para automatizar tareas complejas. Veremos cómo instalar cagent, cómo crear un agente básico, utilizarlo con GitHub Models, Ollama y MCP Servers, y finalmente cómo crear un sistema multi-agente colaborativo.

📁 0) Agente desde cero con new

Puedes crear un nuevo agente usando el comando new de cagent:

./cagent new --model openai/gpt-4.1 --max-tokens=32768

En el archivo generador_titulos_youtube.yaml encontrarás el ejemplo que cree en directo 👩🏼‍💻.

Note

Si por defecto no especificas el proveedor intentará usar Docker Model Runner.

Lo único que necesitas en este caso es decirle al asistente qué quieres que haga tu asistente y él creará un YAML básico para ti.

Para demos un poquito más elaboradas, sigue leyendo 👇🏻

📁 1) 00-basic.yml – Agente Básico

Qué hace: Un único agente que genera 5 títulos de YouTube con emojis (≤70 caracteres) usando OpenAI. Ideal para: Primer contacto con la sintaxis de cagent.

Para ejecutarlo:

./cagent run 00-basic.yml --env-from-file .env --debug --log-file basic.log

📁 2) 01-free-demo.yml – Agente con Modelo Local (Ollama/DMR/GitHub Models)

Qué hace: Igual que el básico pero usando un modelo local vía Ollama, Docker Model Runner o GitHub Models si no tienes un ordenador potente. Ideal para: Desarrollo gratuito sin depender de la nube o si no tienes hardware potente.

Para ejecutarlo:

./cagent run 01-free-demo.yml --env-from-file .env --debug --log-file free.log

📁 3) 02-mcp-demo.yml – Integración con MCP Servers

Qué hace: Un agente que puede usar servidores MCP (GitHub, Notion, Fetch, Time) + herramientas locales (filesystem, shell). Demuestra cómo orquestar capacidades externas. Requisitos: Tener Docker y, si usas gateway MCP, que esté disponible. Configura variables como YOUTUBE_API_KEY si usas el server de YouTube. Ideal para: Integrar APIs/servicios y probar toolsets.

Para ejecutarlo, puedes probar diferentes prompts. Primero, ejecuta el agente sin prompt para que inicie y puedas interactuar con él:

./cagent run 02-mcp-demo.yml --env-from-file .env --debug --log-file mcp.log

Y con estos puedes lanzar el prompt directamente, antes de entrar al modo interactivo:

./cagent run 02-mcp-demo.yml --env-from-file .env --log-file mcp.log "Quiero buscar los últimos vídeos de Jueves de Quack del canal de GitHub con un resumen de qué trata cada vídeo" 
./cagent run 02-mcp-demo.yml --env-from-file .env --debug --log-file mcp.log "¿puedes contarme algo de mi repo 0gis0/cagent-demos?"

Usar el MCP Server de GitHub para poder buscar en tu repo (en este caso todavía estaba privado):

./cagent run 02-mcp-demo.yml --env-from-file .env --log-file --tui false mcp.log "¿puedes contarme algo de mi repo 0gis0/cagent-demos?"

Para usar la tool filesystem y shell (asegúrate de tener archivos en el directorio actual):

./cagent run 02-mcp-demo.yml --env-from-file .env --debug --log-file mcp.log "¿Qué puedes ver en mi directorio actual?"

Para usar la tool fetch (asegúrate de tener conexión a internet):

./cagent run 02-mcp-demo.yml --env-from-file .env --debug --log-file mcp.log "¿Puedes buscar echar un vistazo a esta URL: https://www.returngis.net/2025/09/como-usar-los-modelos-de-ollama-con-cagent/ y darme un resumen?"

Para usar la tool shell y eliminar archivos .log generados:

./cagent run 02-mcp-demo.yml --env-from-file .env --debug --log-file mcp.log "Puedes eliminar los .log que tengo generados en el directorio actual?"

📁 4) 03-multi-agent-youtube.yml – Sistema Multi‑Agente (Generador de Títulos YouTube)

Qué hace: 3 agentes (coordinador → researcher → title_generator) colaboran para producir un título recomendado basado en términos clave + investigación de YouTube (vía MCP youtube-mcp-server). Ideal para: Ver paso a paso delegación y transferencia entre agentes.

Note

Necesitas YOUTUBE_API_KEY en el entorno si usas el server de YouTube.

Para ejecutarlo (flujo completo):

./cagent run 03-multi-agent-youtube.yml --env-from-file .env --debug --log-file multi-agent.log --yolo

Ejecutar solo un agente (depuración del investigador):

./cagent run 03-multi-agent-youtube.yml --env-from-file .env --debug --log-file researcher.log --agent researcher

🎯 ¿Te ha resultado útil este contenido?

¡La mejor forma de agradecerlo es con una suscripción!

Cada nuevo suscriptor me motiva a seguir creando contenido de calidad y mantener estos repositorios actualizados.

Suscríbete Ahora

¡Nos vemos 👋🏻!

About

Demos que mostré durante el evento Jueves de Quack 🦆 con 🤖`cagent`🤖.

Topics

Resources

Stars

Watchers

Forks