Los 7 agentes ADK: roles, tools y comunicación A2A
Cada agente tiene una única responsabilidad. Ninguno recibe datos directamente de otro — todos buscan y leen los artefactos que dejaron los agentes anteriores en el sistema de archivos.
1. Platform Architect
Sección titulada «1. Platform Architect»Rol: Diseñador del IDP — toma todas las decisiones de stack.
{ "task": "Build IDP for Python FastAPI apps", "deploy_mode": "local"}Responsabilidades
Sección titulada «Responsabilidades»- Analizar los requerimientos de la tarea
- Seleccionar el stack tecnológico completo
- Justificar cada decisión con contexto
- Generar la especificación de arquitectura como primer artefacto
Matriz de decisiones
Sección titulada «Matriz de decisiones»| Requerimiento | Stack local | Stack cloud |
|---|---|---|
| Deployment | Docker Compose | Terraform + Cloud Run |
| Base de datos | PostgreSQL container | Cloud SQL |
| Monitoreo | Grafana + Prometheus | Grafana Cloud |
| Secrets | archivo .env | Secret Manager |
| CI/CD | Scripts Bash + Jenkins | GitHub Actions / GitLab CI |
# platform-config.yamlversion: "1.0"deployment: mode: local orchestration: docker-composedatabase: type: postgresql version: "15"monitoring: metrics: prometheus visualization: grafanasecurity: scanner: trivycicd: build: docker test: pytest deploy: docker-compose2. Infrastructure Agent
Sección titulada «2. Infrastructure Agent»Rol: Provisionador de recursos — convierte decisiones en código de infraestructura.
platform-config.yaml generado por el Arquitecto.
Responsabilidades
Sección titulada «Responsabilidades»- Leer la configuración del Arquitecto
- Generar Docker Compose con todos los servicios, healthchecks, networks y volúmenes
- Asegurar que los servicios dependientes tienen
depends_oncorrectos - Validar las configuraciones generadas antes de escribirlas
# docker-compose/app-stack.ymlversion: '3.8'
services: app: build: ./demo-app ports: ["8000:8000"] environment: DATABASE_URL: postgresql://user:pass@postgres:5432/db depends_on: postgres: condition: service_healthy
postgres: image: postgres:15 environment: POSTGRES_USER: user POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: db volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U user"]
redis: image: redis:alpine
prometheus: image: prom/prometheus:latest
grafana: image: grafana/grafana:latest3. Security Agent
Sección titulada «3. Security Agent»Rol: Guardián — puede bloquear el pipeline si detecta issues críticos.
docker-compose/app-stack.yml + Dockerfiles generados por Infrastructure.
Responsabilidades
Sección titulada «Responsabilidades»- Escanear imágenes Docker con Trivy
- Detectar secrets hardcodeados en configuraciones
- Verificar que los puertos expuestos son los correctos
- Aplicar políticas de seguridad según severidad
Tabla de severidades
Sección titulada «Tabla de severidades»| Severidad | Acción |
|---|---|
| CRITICAL | Bloquea el deploy — el pipeline no continúa |
| HIGH | Bloquea el deploy (configurable) |
| MEDIUM | Warning — logueado en el reporte |
| LOW | Info — logueado en el reporte |
{ "status": "passed", "scan_results": { "dockerfile": { "issues": [], "score": 95 }, "image_scan": { "critical": 0, "high": 0, "medium": 2, "low": 15 }, "secrets_detected": false }, "recommendations": [ "Considerar actualizar postgres a 15.2" ], "blocked": false}4. CI/CD Agent
Sección titulada «4. CI/CD Agent»Rol: Automatización de deployment — genera los scripts adaptados al stack.
platform-config.yaml + validación aprobada de Security Agent.
Responsabilidades
Sección titulada «Responsabilidades»- Generar scripts de build, test y deploy adaptados al stack detectado
- Crear el Jenkinsfile para el pipeline completo
- Integrar el escaneo de seguridad dentro del pipeline
- Configurar procedimientos de rollback
#!/bin/bash# cicd/deploy.shset -e
echo "Building Docker image..."docker build -t app:latest ./demo-app
echo "Running tests..."docker run --rm app:latest pytest tests/ -v
echo "Security scan..."trivy image --severity CRITICAL,HIGH app:latest
echo "Deploying..."docker-compose -f docker-compose/app-stack.yml up -d
echo "✓ App: http://localhost:8000"echo "✓ Grafana: http://localhost:3000"5. Observability Agent
Sección titulada «5. Observability Agent»Rol: Configuración de monitoreo completo con Prometheus y Grafana.
platform-config.yaml
Responsabilidades
Sección titulada «Responsabilidades»- Configurar Prometheus con scrape configs para la app generada
- Crear dashboard de métricas de aplicación
- Crear dashboard de métricas del sistema
- Configurar reglas de alertas básicas
Dashboards generados
Sección titulada «Dashboards generados»| Dashboard | Métricas |
|---|---|
app-metrics.json | API Latency (p50/p95/p99), Error Rate por endpoint, Request Throughput |
system-metrics.json | CPU usage, Memory usage, Disk I/O, Network in/out |
# prometheus.ymlglobal: scrape_interval: 15s evaluation_interval: 15s
scrape_configs: - job_name: 'fastapi-app' static_configs: - targets: ['app:8000'] metrics_path: '/metrics'6. DevEx Agent
Sección titulada «6. DevEx Agent»Rol: Herramientas para desarrolladores — CLI tool ejecutable adaptada al proyecto.
Todos los outputs de los agentes anteriores — lee el stack completo para generar comandos coherentes.
Responsabilidades
Sección titulada «Responsabilidades»- Generar CLI tool ejecutable con comandos específicos del proyecto
- Los comandos se adaptan al stack detectado — no son genéricos
#!/bin/bash# cli-tool/idp
case "$1" in init) echo "Inicializando nuevo proyecto..." ;; build) docker build -t app:latest . ;; test) docker run --rm app:latest pytest ;; deploy) docker-compose -f docker-compose/app-stack.yml up -d ;; status) docker-compose ps ;; logs) docker-compose logs -f ;; *) echo "Usage: idp {init|build|test|deploy|status|logs}" ;;esac7. Web Portal Agent
Sección titulada «7. Web Portal Agent»Rol: Portal web self-service — el artefacto más complejo del sistema (~45s).
Toda la configuración del IDP generada por los 6 agentes anteriores.
Responsabilidades
Sección titulada «Responsabilidades»- Generar portal web completo con FastAPI backend
- Dashboard con servicios running conectado a Docker API en tiempo real
- Catálogo de templates para crear nuevos servicios
- Formulario para crear servicios con 1 click
- Integración de Grafana embebido para visualización de métricas
portal/├── main.py — FastAPI app├── routes/│ ├── dashboard.py — Estado de servicios (Docker API)│ ├── catalog.py — Catálogo de templates│ └── services.py — CRUD de servicios├── templates/│ ├── base.html — Layout con TailwindCSS│ ├── dashboard.html — Dashboard principal│ ├── catalog.html — Templates disponibles│ └── create_service.html — Formulario crear servicio├── services/│ ├── docker_manager.py — Cliente Docker API│ └── template_manager.py — Generador de proyectos├── static/│ └── js/htmx.min.js├── requirements.txt└── DockerfileStack del portal generado
Sección titulada «Stack del portal generado»| Layer | Tecnología | Razón |
|---|---|---|
| Backend | FastAPI | API REST + documentación automática |
| Templates | Jinja2 | HTML server-side, sin build step |
| Interactividad | HTMX | Actualizaciones parciales sin JS complejo |
| Estilos | TailwindCSS | UI profesional generada directamente |
| Datos en tiempo real | Docker SDK | Estado real de los servicios, no mock |