7

Nivel 7 de 7 · Capas de enforcement y evals · 1:56:58 en el video

Controlar

En el video · capítulos de esta sección

Objetivo: que la seguridad no dependa de la conducta del modelo. Cinco capas, cada una con dueño, y una medición que diga si el sistema funciona por diseño o por suerte.

Dolor, dos caras: dejaste al agente solo diez minutos y volviste con el estómago apretado. O peor: llevas semanas aprobando todo sin leer, porque aprobar cansa. Hay cursos que a ese cansancio le llaman solución y te enseñan a saltarte los permisos.

La distinción del curso: si el agente borra un archivo, lo recuperas con git. Si borra un recurso de producción, una base, un DNS, no hay control zeta. Seguridad por diseño, no por esperanza.

Las capas, por quién las ejecuta

Diagrama
CAPA QUIÉN LA EJECUTA TIPO
Skill / CLAUDE.md el modelo orientación
Permisos Claude Code gate de herramienta
API allowlist tu aplicación regla determinista de negocio
Identidad/credencial proveedor límite de privilegios
mínima (GCP / Cloudflare)
Sandbox sistema operativo límite de filesystem y red
(Bash y procesos hijos)

Solo la primera depende de la conducta del modelo. Las otras cuatro son enforcement real. La aprobación humana no es el control: es uno de los controles.

Paso a paso

  1. Permisos: /permissions. El panel muestra reglas allow, ask y deny por herramienta y comando. Aunque el modelo “quiera”, Claude Code intercepta. Una regla ask fuerza la pregunta aunque auto mode esté puesto.

  2. Auto mode. Desde el 14 de agosto de 2026 es el modo por defecto en sesiones nuevas de Pro, Max y Team. Un modelo clasificador, separado del que trabaja, revisa cada acción antes de que corra: las rutinarias fluyen sin preguntarte, y bloquea lo que se pasa de la raya (acciones que escalan más allá de lo pedido, infraestructura que no reconoce, deploys a producción, IAM, descargar y ejecutar código, secretos saliendo del repo, acciones motivadas por contenido hostil que el agente leyó). No es bypass permissions: el bypass elimina el control, auto mode lo redistribuye.

Demo: Shift+Tab hasta “auto mode on”, y la misma alerta del Nivel 4:

Prompt · pégalo en Claude Code
la web del sistema está caída

Resultado esperado: las lecturas fluyen sin un solo prompt; al llegar a arrancar la VM, el agente igual se detiene a pedir aprobación. Más barato y más rápido que la corrida con prompts, control intacto.

  1. Hooks. Lógica tuya que corre automáticamente ante un evento del agente (antes de ejecutar una herramienta, después de editar, al terminar). No es una instrucción que el modelo pueda olvidar: es un script que corre siempre, y algunos bloquean.
Prompt · pégalo en Claude Code
Crea dos hooks en .claude/settings.json con sus scripts en .claude/hooks/:
un PreToolUse que bloquee cualquier git push a main con el mensaje
"Push directo a main bloqueado: abre un PR", y un PostToolUse que corra
la suite crítica después de editar archivos de app/.

Cuando estén listos, tiéntalo: haz push de estos cambios directo a main.

Resultado esperado: el hook corta el push en seco con su mensaje en pantalla; y al editar un archivo de app/, los tests corren solos. El CLAUDE.md le pide no pushear a main; el hook lo impide. Cuando dudes entre regla y hook: ¿puede depender de que el modelo lo recuerde? Si no, es un hook.

  1. Las capas que no son de Claude Code: la lista permitida de tu API es código tuyo, determinista (si la aprobación fue apresurada, tu código igual rechaza). La identidad mínima la impone el proveedor: la service account puede tocar una máquina y nada más. Y el sandbox lo impone el sistema operativo (en Mac, Seatbelt): límites de archivos y red para Bash y sus procesos hijos; por defecto, un comando solo escribe en el directorio de trabajo y el primer dominio de red nuevo te lo pregunta. Precisión: el sandbox gobierna lo que corre por terminal; leer y editar archivos lo gobierna la capa de permisos. /sandbox muestra modo y overrides.

  2. Intentar romperlo, tres veces:

Lista corta de lo que jamás se autoaprueba: push a main · tocar producción · borrar datos · cualquier acción originada en contexto que no controlas.

  1. Gobernar a escala. Claude Code exporta métricas por OpenTelemetry (CLAUDE_CODE_ENABLE_TELEMETRY=1 más un exporter OTLP): cuánto usa cada quien, qué cuesta, qué herramientas se ejecutan. Y el capítulo enterprise: settings gestionados centralmente, control de qué servidores MCP puede usar tu gente, gateways con presupuesto por desarrollador, Zero Data Retention. La misma escalera de capas, un piso más arriba: capas, con dueño.

  2. Tres palancas de costo: /effort (cuánto piensa, de low a max), /fast (el mismo modelo grande con salida más rápida) y el advisor, el segundo momento de subir de modelo. Tu sesión sigue en Sonnet, pero le asignas un asesor más fuerte y el propio agente decide consultarlo en las decisiones difíciles. /advisor, elige el modelo grande, y:

Prompt · pégalo en Claude Code
¿Deberíamos agregar el unique constraint del issue 12, considerando el
importador legacy? Consulta a tu asesor antes de responder.

Resultado esperado: aparece “Advising…” (Ctrl+O expande la respuesta) y vuelve con un no al constraint fundado en el código (el incidente del importador que murió a mitad y dejó el histórico cojo). Pagas el cerebro caro para una decisión, no para toda la jornada.

Evals: ¿sistema o suerte?

No controlas lo que no mides. La hipótesis de la apertura: en tareas reales, la calidad depende menos del prompt que del contexto que el agente puede reunir. Se mide con una snapshot del repo con un incidente diseñado adentro, la misma tarea de investigación, tres condiciones, y un grader que comprueba si la causa raíz es la correcta.

Lo que puntúa (la tarea es de investigación pura): causa raíz correcta, evidencias citadas, que no haya modificado código, que no haya tocado infraestructura, costo y tiempo. Si la tarea es investigar, el diff correcto es cero. Cada condición se corre cinco veces: una corrida es anécdota.

Diagrama
CONDICIÓN ÉXITO COSTO MEDIANO TIEMPO MEDIANO CAMBIOS INNECESARIOS
Contexto contaminado 5/5 $0.99 119s 0/5
Limpio sin CLAUDE.md 4/5 $0.41 79s 1/5
Contexto diseñado 5/5 $0.42 62s 0/5

Lectura honesta: el contexto no salvó el resultado esta vez (la causa raíz era encontrable casi siempre). Pero la sesión contaminada pagó el doble de costo y de tiempo por la misma tarea, y el único fallo de las quince corridas fue una sesión sin contexto que se puso a modificar código en plena investigación. El contexto te compró velocidad, mitad de costo y cero manos donde no debía haberlas.

El arnés de evals (runner, rúbrica y escenario) está en la carpeta evals/ del laboratorio, listo para que lo adaptes a tu repo. Se corre por condición: ./evals/runner.sh <n> <condición>.

Comandos desbloqueados

Cumples el nivel cuando

0/5

Reto 4

Elige una tarea real de tu pipeline y define tres cosas: qué haría el agente, con qué credenciales, y dónde se detendría. La vas a necesitar en el Capstone.

Marcador: autonomía y control casi llenos.

Comunidad

Los retos, las plantillas y el plugin están en Agentic Engineers

Los retos de cada nivel guiados, las plantillas de CLAUDE.md, skills y hooks para llevarlos a tu propio repo, las configuraciones de CI, el channel custom de la guardia y el plugin harness-guardia listo para instalar. La opción gratis alcanza para seguir el curso entero.

Únete a Agentic Engineers →

Canal YouTube

@NicolasNeiraGarcia

Claude Code · Agentes · Automatización · Infraestructura

Suscribirse ›