Simposio Internacional de IA · EMI · 2026

Agentes de IA
que operan
producción

Milton Hilara Mamani · DevOps & Data Platform Engineer

El problema
60+ microservicios 6 motores de datos 2 personas
Los tres pilares
RAG Encontrar el procedimiento correcto en segundos en vez de buscarlo en la cabeza de alguien Memoria Que el próximo incidente no empiece de cero lo aprendido queda escrito, no en la cabeza de nadie Automatización Que el cambio entre por el pipeline, nunca a mano el trabajo manual es la causa, no el síntoma 600 mil M de dólares al año pierden en caídas las 2000 empresas más grandes +50% en 2 años la causa número uno son fallas de software, no la red sin procedimiento definido, el error se vuelve catástrofe LA TRAMPA Más IA sin guardarraíles empeora la estabilidad. medido por DORA en 2026
La diferencia
ASISTENTE Persona Modelo Texto A mano AGENTE Persona Agente Producción
Arquitectura en AWS
Agente solo lectura CI/CD OIDC, sin llaves Terraform todo por IaC Qdrant runbooks us-east-2 VPC · subredes privadas, sin IP pública Load Balancer única entrada desde internet ECS Fargate · 60+ microservicios Auto Scaling por CPU y por profundidad de cola despliegue azul-verde, sin downtime motores de datos Aurora MongoDB Valkey Elasticsearch MSK réplicas multi-AZ · respaldo automático CloudWatch métricas, logs y trazas Alarmas disparan el escalado y avisan IAM el guardarraíl real. No es el prompt. rol de lectura · el del agente rol operador · tras autorización rol de CI · solo desde main permission boundary en los tres deny explícito a producción y a IAM Secrets Manager la credencial se saca al usarla nunca entra al prompt ni al repo SSM Session Manager acceso sin SSH, sin puertos abiertos, con registro de cada sesión lectura
Antes de entrar en RAG
Mucha confianza. Cero contexto.
así responde un modelo sin RAG
si no carga: youtube.com/watch?v=f4Z4cy3Rc9U
Qué es RAG
Retrieval-Augmented Generation · el modelo responde con información recuperada, no solo con lo que memorizó
RAG Pregunta del operador Embeddings 384 dimensiones Base vectorial busca por significado Contexto el fragmento que aplica Modelo responde Agentic RAG Pregunta del operador Agente decide si busca Herramientas vector · base · API Contexto lo que hizo falta Modelo responde y verifica Memoria Pregunta del operador Agente busca y escribe Memoria lee y guarda lo nuevo Contexto lo de hoy y lo de antes Modelo responde y aprende siempre busca decide si busca busca, guarda y recuerda
Qué es memoria
memoria del agente — tres capas
CAPA ARCHIVO CUÁNDO ACTÚA VIDA ────────────────────────────────────────────────────────────────────────────────────── 1 instrucciones CLAUDE.md se carga entera cada sesión 2 operativa memory/*.md se escribe al aprender permanente 3 vectorial Qdrant se recupera, no se lee bajo demanda ────────────────────────────────────────────────────────────────────────────────────── $ qdrant_search.py "el servicio se reinicia todo el tiempo" 0.503 Servicio ECS en crash loop runbook/ecs ← ninguna palabra coincidía 0.439 Recap - semana del 15 de septiembre recap/general ✗ un chat recuerda mientras dura la conversación ✓ esto persiste entre sesiones, entre días y entre personas
Casos reales
Kafka · brokers en servicio 2 de 3 antesALARM 3 de 3 despuésOK la retención estaba configurada y no se aplicaba nunca MongoDB · disco ocupado 95% antesALARM 55% despuésOK 52 millones de documentos sin política de retención
El agente
agent/ — lo que convierte un modelo en un operador
agent/ ├── CLAUDE.md las reglas duras ├── MEMORY.md índice de lo aprendido ├── memory/ un archivo por tema │ ├── incidente-kafka-retencion.md │ ├── leccion-drift-fuera-de-iac.md │ └── caso-sso-multicapa.md ├── recaps/ resúmenes de sesión ├── skills/ un runbook por situación │ ├── ecs-crash-loop/ │ ├── mongo-disco-lleno/ │ └── kafka-retencion/ ├── commands/ el día a día └── .mcp.json herramientas
── CLAUDE.md ───────────────────────────── ## Prohibido · Ejecutar escrituras en producción sin autorización para esa acción puntual. "Dale" no autoriza todo. · drop de colecciones, DELETE sin WHERE, borrar infraestructura. Eso necesita dos personas. · Imprimir o guardar el valor de un secreto. Solo referencias. · Cambiar a mano lo que gestiona IaC. El fix de un drift es reponer el estado declarado. · Inventar un número. Si no lo mediste, decilo.
Demo en vivo
Desplegar Diagnosticar Aprender github.com/mhilara/ai-agents-in-production
La demo, comando por comando
guion de la demo — 3 actos
── ACTO 1 · AUTOMATIZACIÓN ───────────────────────────────────────────────────── $ curl http://dataplat-prod-alb-256338754.us-east-2.elb.amazonaws.com/ v1.4.0 | ok agente › "desplegá la versión 1.5.0 de ingest-api" edita demo/terraform/terraform.tfvars · git push origin main $ gh run watch OIDC → terraform apply → ✓ $ curl http://dataplat-prod-alb-256338754.us-east-2.elb.amazonaws.com/ v1.5.0 | ok ── ACTO 2 · RAG Y DIAGNÓSTICO ────────────────────────────────────────────────── $ ./demo/break.sh deploy manual fuera de IaC $ qdrant_search.py "el servicio se reinicia…" 0.503 → ECS crash loop $ aws ecs describe-services --query '…events[0:5]' $ aws ecs describe-tasks --query '…exitCode' exit 1 $ aws logs tail /dataplat/prod/ingest-api FATAL: APP_MESSAGE no definida $ aws ecs update-service --desired-count 2 AccessDenied · explicit deny ── ACTO 3 · FIX Y MEMORIA ────────────────────────────────────────────────────── $ git commit -m "restore to declared state" && git push $ qdrant_index.py reindexa con la lección nueva $ qdrant_search.py "qué pasó hoy con ingest-api" lo recupera
Girá el teléfono para verla en grande
Usá → para avanzar · F pantalla completa · N notas del orador