Agent Harness seguro para Claude Code y Codex: permisos, verificacion y rollback
Disena una base segura para agentes de Claude Code y Codex con politicas, plan de ejecucion, verificaciones y recuperacion.
Los agentes potentes necesitan una base segura
Cuando empiezas con Claude Code o Codex, parece que todo depende del prompt. Para pequenos cambios, funciona. Pero cuando el agente empieza a tocar despliegues, APIs de SaaS, archivos locales, publicaciones o emails, el problema deja de ser el prompt y pasa a ser la estructura de ejecucion.
En este articulo llamo Agent Harness a esa estructura externa: reglas de permisos, plan de trabajo, verificaciones, logs y mecanismo de recuperacion. El agente puede razonar y proponer cambios, pero no debe ejecutar cualquier comando sin control.
Para entender primero el concepto, lee la guia de harness engineering. Para ver fallos concretos, consulta casos de fallo de seguridad con Claude Code.
User request
|
v
Agent
|
v
[1] Policy layer Que se permite, que pregunta, que se bloquea
[2] Plan layer Que pasos se ejecutan y en que orden
[3] Verification layer Como se demuestra que funciono
[4] Recovery layer Como se revierte un fallo
|
v
Files / shell / SaaS APIs / deploy
La documentacion oficial de Claude Code separa settings, permissions, hooks y MCP. Puedes empezar por Claude Code settings, Hooks reference y MCP.
Ejemplo: publicar un articulo
“Publica un articulo” no es una sola accion.
1. Leer analiticas de los ultimos 7 dias
2. Elegir un tema cercano a una pagina que ya crece
3. Revisar articulos existentes para evitar duplicados
4. Escribir el articulo base
5. Crear todas las versiones de idioma
6. Validar frontmatter, slug y enlaces internos
7. Ejecutar build
8. Comprobar la URL publicada
9. Hacer commit y push
Si esto vive solo en la memoria, el agente puede escribir el texto y olvidar la parte aburrida: traducciones, build, verificacion y despliegue. El Plan layer convierte esos pasos en una lista obligatoria.
SaaS: separar leer, generar y enviar
Supongamos que un agente busca empresas, genera una pagina de muestra y prepara emails comerciales.
| Operacion | Automatico | Motivo |
|---|---|---|
| Leer paginas publicas | Si | Bajo impacto |
| Guardar CSV local | Si | Revisable |
| Generar pagina de muestra | Si | Se puede revisar antes |
| Redactar email | Si | Aun no se envia |
| Enviar email | Requiere aprobacion | Afecta a una persona real |
El diseno del harness consiste en poner limites claros. Leer y redactar puede ser automatico. Publicar, enviar o modificar produccion debe pedir aprobacion.
Policy layer: allow, ask, deny
Un archivo de politica simple ya reduce mucho el riesgo.
{
"allowCommands": [
"npm run build",
"npm run test",
"node scripts/content-trend-report.mjs"
],
"askCommands": [
"git push",
"wrangler pages deploy",
"node scripts/outreach-send-mails.mjs --send"
],
"denyCommands": [
"rm -rf",
"git reset --hard",
"curl * | sh",
"npm publish"
],
"protectedPaths": [
".env",
".env.local",
"claudecode-lab-sheets-f54fc47c68f0.json"
]
}
En Claude Code, una configuracion de proyecto puede expresar una frontera similar.
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": [
"Bash(npm run build)",
"Bash(npm run test *)",
"Bash(node scripts/content-trend-report.mjs *)"
],
"ask": [
"Bash(git push *)",
"Bash(wrangler pages deploy *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(git reset --hard *)",
"Read(./.env)",
"Read(./.env.*)",
"Read(./claudecode-lab-sheets-f54fc47c68f0.json)"
]
}
}
La regla debe ser concreta. No basta con decir “ten cuidado con secretos”. Bloquea archivos, comandos destructivos y acciones externas.
Verification layer: comprobar con comandos
“Revisalo bien” no es una verificacion. Convierte el exito en comandos.
const url = process.argv[2];
const response = await fetch(url, { redirect: "follow" });
if (!response.ok) {
throw new Error(`Page returned ${response.status}: ${url}`);
}
const html = await response.text();
const checks = [
["title", /<title>.+<\/title>/i],
["description", /<meta name="description"/i],
["adsense", /ca-pub-2125588229998303/i],
["analytics", /G-3YR0LE68MJ/i]
];
for (const [name, pattern] of checks) {
if (!pattern.test(html)) throw new Error(`Missing ${name}`);
}
Para articulos con codigo, anade una prueba movil con Playwright para comprobar que pre, code y table no rompen el layout.
Recovery layer: saber que cambio
El fallo peligroso no es que el proceso falle. Lo peligroso es no saber que archivos modifico.
{
"runId": "2026-05-19-article-001",
"topic": "agent harness security",
"changedFiles": [
"site/src/content/blog/claude-code-codex-agent-harness-security.mdx"
],
"commands": [
"node scripts/content-trend-report.mjs --days 7",
"npm run build"
],
"status": "deployed"
}
Para Git, prefiere recuperacion dirigida.
git status --short
git diff -- site/src/content/blog/target-article.mdx
git revert <bad-commit>
Evita dar al agente acceso habitual a git reset --hard, especialmente en repositorios con cambios locales.
Resumen
La calidad de un agente no depende solo del prompt. En trabajo real, depende del harness.
- Policy: que se permite, que pregunta y que se bloquea
- Plan: que va a ocurrir antes de ejecutarlo
- Verification: como se prueba que funciono
- Recovery: como se recupera un fallo
Claude Code y Codex tienen interfaces distintas, pero necesitan la misma idea: no convertir al agente en un ejecutor ilimitado, sino darle un camino seguro para trabajar.
PDF gratuito: Hoja de trucos de Claude Code en 5 minutos
Solo deja tu correo y te enviaremos al instante la hoja de trucos en una página A4.
Cuidamos tus datos personales y nunca enviamos spam.
Sobre el autor
Masa
Ingeniero apasionado por Claude Code. Dirige claudecode-lab.com, un medio tecnológico en 10 idiomas con más de 2.000 páginas.
Artículos relacionados
10 patrones potentes de subagentes para Claude Code
Domina la función de subagentes de Claude Code con 10 patrones prácticos. Aprende a usar procesamiento paralelo, especialización y aislamiento de contexto.
Introducción al Claude Code Agent SDK — Construye agentes autónomos rápidamente
Aprende a construir agentes de IA autónomos con Claude Code Agent SDK. Cubre la configuración, definición de herramientas y ejecución multi-paso con código práctico.
Guía completa de técnicas de gestión del contexto en Claude Code
Aprende técnicas prácticas para maximizar la ventana de contexto de Claude Code. Optimización de tokens, división de conversaciones y uso de CLAUDE.md.