Multi-agente que detecta, diagnostica, repara y documenta incidentes de forma autónoma — con human-in-the-loop solo donde importa.
El proceso es siempre el mismo y siempre lento. Cada minuto que el incidente permanece abierto cuesta dinero, reputación y horas de sueño del equipo on-call.
Desde la alerta hasta el cierre del cambio: detección manual, coordinación on-call, kubectl, RFC, aprobaciones y deploy.
El mismo OOM se repite cada semana. El on-call lo sabe, lo reinicia, y el fix permanente nunca llega al backlog.
RFCs ad-hoc, runbooks desactualizados y postmortems que se quedan en pendiente. ITIL es teoría, la realidad es Slack.
Cada agente tiene un dominio claro, herramientas propias, memoria y guardrails. Se comunican vía un orquestador LangGraph con registro explícito de skills y tools.
El orquestador descompone una intención en subtareas, las agrupa, las ejecuta en lotes paralelos y supervisa la calidad antes de cerrar el ciclo.
Raphael vigila la salud del cluster. Camael traduce los hallazgos en cambios permanentes con trazabilidad GitOps + ITIL.
Loop autónomo cada 60 segundos. Observa el cluster, detecta anomalías, diagnostica con LLM + RAG, decide la acción y la ejecuta dentro de los guardrails.
Recibe el handoff de Raphael y traduce el incidente en un cambio permanente: PR en Bitbucket + RFC en ServiceNow. El humano aprueba, ArgoCD despliega.
Cada paso queda registrado: en Git (PR), en ServiceNow (RFC), en PostgreSQL (incidente) y en Grafana (métricas). 100 % auditable, 100 % reversible.
9 pasos · ~10 minutos · 1 punto humano
Raphael implementa un loop Observe → Detect → Diagnose → Decide → Act → Report que corre cada 60 segundos con APScheduler. Cada fase es determinista y está instrumentada con métricas Prometheus. El LLM entra solo en la fase de diagnóstico, con RAG sobre runbooks en Qdrant y fallback determinista si falla.
MicroK8s single-node con GPU NVIDIA RTX 5070 dedicada a Ollama. Cuatro namespaces segregan apps, observabilidad, secretos y GitOps. Todo on-prem, todo vía Git, todo auditable.
/ → frontend-next:3000
/api → agentic-backend:8000
/llm → llm-adapter:80
/poc → poc-presentation
grafana.* → grafana:80
argocd.* → argocd-server
Layout tipo drawio con los componentes reales del cluster, sus conexiones y los puertos internos. Útil para planear cambios o explicar el sistema en una pizarra.
amael-agentic-backend y detecta container_memory_usage_bytes > 85% del limit.HIGH_MEMORY y hace RAG sobre Qdrant usando Ollama para recuperar el runbook relevante.ROLLOUT_RESTART usando Role sre-agent-healer (restringido a ns amael-ia) y dispara handoff a Camael en daemon thread.memory × multiplier, abre PR y crea RFC en ServiceNow.rollout undo.predict_linear y deriv para tendenciassre-agent-policysre_runbooks + nomic-embed-textROLLOUT_RESTART solo si confianza ≥ umbralsre-agent-healer namespace-scopedsre_incidents con timeline completoamael_sre_* a Prometheus + dashboard Grafana #8LangGraph orquesta. El registry explícito permite auditar qué tools tiene cada agente. Redis coordina state compartido. PostgreSQL es la bitácora auditable.
@AgentRegistry.register. La carga se hace en
register_all_agents() al arrancar. Skills y tools están desacoplados —
cualquier agente puede pedir una skill por nombre.
Lease asegura que solo una instancia del SRE loop actúe,
incluso con múltiples réplicas del raphael-service. Evita double-actions en HA (P3-D).
ROLLOUT_RESTART exitoso, Raphael dispara un daemon thread que llama
a handoff_to_camael(). Camael analiza el YAML, decide el multiplier y abre
PR en Bitbucket + RFC en ServiceNow.
sre:incident:*), counters (sre:restarts:*),
handoff (sre:gitops:*), PR tracking (bb:pending_pr:*).
PostgreSQL — incidents, postmortems, SLOs.
metricsGenerator + prometheusRemoteWrite).
/sre <cmd> bidireccional. Estado de pods,
SLOs, incidentes, postmortems y aprobación de PRs desde el móvil —
sin abrir kubectl.
Agrupadas por fuente de observación. ✓ auto-heal significa que
Raphael ejecuta ROLLOUT_RESTART y dispara el handoff a Camael.
⚠ notify significa que requiere juicio humano y solo notifica.
predict_linear proyecta saturación de disco en ≤ N horas
notify
deriv positiva sostenida en heap — leak confirmado
auto-heal
deriv de errores creciente — escalada detectada antes del breach
notify
Autonomía sin guardrails es un riesgo. El diseño asume que el LLM puede equivocarse, que el cluster puede estar en mantenimiento, y que el fix puede fallar.
sre-agent-observer (ClusterRole, read-only) separado de
sre-agent-healer (Role, namespace amael-ia). Nunca puede actuar fuera del alcance autorizado.
Lease garantiza una sola instancia activa del loop.
HA sin double-actions.
/sre maintenance on.
rollout undo automático (P5-B).
¿Dónde empujar esto más? Más anomalías predictivas (saturación de sockets, cache miss rate), aprendizaje activo con feedback del postmortem para re-tunear thresholds, y ampliar el handoff a otros tipos de cambio (configmaps, HPA, PDBs) más allá de ajustes de recursos.
Todo lo que se muestra ya está desplegado, integrado y monitoreado. Cluster propio, GPU propia, modelos propios — sin dependencia de APIs externas.
El loop completo se observa en tiempo real desde 6 ventanas. Mientras un escenario corre, cada herramienta muestra su parte del flujo: detección, PR, RFC, deploy y cierre.
Cada uno simula un fallo real de producción y dispara el loop SRE → GitOps → ITIL completo.
Abre estas pestañas antes de iniciar el demo. Cada herramienta es la evidencia independiente de un paso del flujo.
bash poc-reset.sh — limpia Redis, PostgreSQL y declina PRs abiertosbash poc-demo.sh A — guía paso a paso del escenario OOM (recomendado)APROBAR