Ponle nota al harness que ya usas y ejecuta cualquier agente en una caja que nace, trabaja y se destruye, sin internet (por defecto) y sin tus archivos de contraseñas. Con o sin pantalla.

La caixa-do-agente (caja del agente) es un kit gratuito para quien ya usa agentes de IA en la computadora, como Claude Code, Codex o DeepSeek Harness. El harness es el software alrededor del modelo: ejecuta los comandos, controla los permisos y guarda el historial. El kit le pone nota de 0 a 10 al harness que usas y ejecuta cualquier agente o comando en una caja Docker desechable, sin internet y sin tus archivos de contraseñas (.env). Necesitas Docker y Python 3.
El video que dio origen a este kit (en portugués): el cuerpo, la academia y el gerente de DeepSeek, y por qué el harness pesa tanto como el modelo.
Cuando dejas que Claude Code, Codex o tu Jarvis use la computadora por su cuenta, puede acceder a todo. Casi siempre no hace nada malo, pero basta con un error o un prompt malicioso escondido en un sitio o en un archivo.
Lee los archivos .env, las claves de API y las claves SSH.
Puede enviar tus datos afuera o descargar algo dañino.
Puede borrar o dañar el proyecto real.
./caixa.sh ~/meu-projeto -- npm test
Hace una copia del proyecto en una carpeta temporal y deja fuera las contraseñas y las claves.
El agente trabaja en la copia, en un contenedor Docker sin internet, con límite de memoria, de procesador y de tiempo.
Muestra lo que cambió en un archivo .patch, borra el contenedor y borra la copia.
Tu proyecto original no cambia. Lees el .patch y solo lo aplicas si te gusta (patch -p1, en el paso 6). Es como dejar que el albañil trabaje en una maqueta de tu casa, sin la llave de la caja fuerte: al final revisas lo que hizo y decides si lo haces igual en la casa de verdad.
python3 auditar.py ~/meu-projeto
Solo lee, no cambia nada, y da una nota de 0 a 10 para la protección que ya tienes, revisando 6 preguntas:
¿El agente se ejecuta aislado?
¿Alguien confirma antes de las acciones peligrosas?
¿Hay bloqueos que no dependen del prompt?
¿Existe una prueba que demuestre que el trabajo quedó bien?
¿El agente tiene instrucciones y memoria del proyecto?
¿Las contraseñas están fuera de su alcance?
En cada capa faltante, el auditor indica el kit INEMA que lo resuelve.
En una frase: tu agente es el empleado; caixa-do-agente es la sala segura donde trabaja cualquier empleado, más una nota que indica cuánto está protegida tu sala.
Mira la explicación en video (en portugués):
DeepSeek publicó que el mismo modelo (V4.1 Flash) acierta el 65,6% de las tareas de DeepSWE (una prueba de tareas reales de programación) dentro de Codex y el 74,2% en un harness mínimo (mini-SWE): casi 9 puntos solo con cambiar el harness (tarjeta del modelo). Este kit lleva esa idea a tu máquina.
Lee la configuración de Claude Code, Codex y DeepSeek Harness y da una nota de 0 a 10 en 6 capas: caja, aprobación, bloqueos, verificación, contexto y secretos. Solo lee, no cambia nada.
Copia el proyecto sin los secretos, ejecuta el comando en un contenedor sin red y con tope de memoria, CPU y tiempo, muestra qué cambió y borra todo. El original solo cambia con --aplicar.
Cada capa que falte apunta a un kit INEMA que la resuelve: bloqueos contra inyección de prompt, lección que se vuelve bloqueo, memoria del proyecto, DeepSeek Harness local.
Es el mismo ciclo que DeepSeek usa para entrenar a sus agentes (más de 380 mil cajas al mismo tiempo, según su artículo), a escala de una persona.
Linux con Docker funcionando sin sudo (tu usuario en el grupo docker). En macOS, instala antes brew install coreutils (trae gtimeout). El auditor funciona incluso sin Docker.
Para la caja. Verifica que responda:
# comando
docker --versionPara el auditor (sin bibliotecas extra).
# comando
python3 --versionPara copiar el proyecto sin los secretos.
# comando
rsync --version | head -1Los comandos usan solo lo que está en el repositorio. Los pasos 1 a 4, 6 y 7 y el primer comando del paso 5 se ejecutaron en esta máquina el 10/11/2026; los ejemplos con Claude Code dependen de tu clave o login.
Los flags y la salida de los scripts están en portugués: --aplicar = aplicar, --rede = red, --montar = montar, --interativo = interactivo, --memoria = memoria, --tempo = tiempo, --imagem = imagen.
Clona el repositorio y entra en la carpeta.
git clone https://github.com/inematds/caixa-do-agente && cd caixa-do-agente
18 verificaciones (la 1.ª vez descarga la imagen node:22-slim, ~250 MB; la verificación de --interativo usa el comando script): .env y claves quedan fuera, red cerrada, original intacto, contenedor borrado, --aplicar funciona, --env pasa solo la variable pedida, --interativo abre una terminal, la caché y node_modules no vuelven al original, --help funciona, y el auditor detecta secretos, sandbox desactivado y máquina sin harness.
bash testes/teste.sh # termina con: TUDO OK (18/18)
Apunta a un proyecto tuyo. El auditor lee la configuración de Claude Code, Codex y DeepSeek Harness (el agente de código abierto de DeepSeek, comando dsh): ~/.claude/settings.json, ~/.codex/config.toml y ~/.dsh/settings.yaml (si existen), y el propio proyecto. Caja, Aprobación y Bloqueos salen de la configuración global sumada a la del proyecto, así que los proyectos de la misma máquina comparten esas tres.
Cada capa vale 2 puntos (OK), 1 (MEIO) o 0 (FALTA); la nota es la suma dividida entre 12, por 10. Caja: sandbox activado en algún harness. Aprobación: ningún harness en modo "saltar todo". Bloqueos: reglas deny (lo que el agente nunca puede hacer) y ganchos PreToolUse (script que frena la acción antes). Verificación: pruebas en el proyecto y ganchos Stop/PostToolUse (script que comprueba después). Contexto: AGENTS.md o CLAUDE.md. Secretos: ningún .env ni clave dentro del proyecto.
python3 auditar.py ~/meu-projeto # nota de 0 a 10 + el siguiente paso de cada capa python3 auditar.py ~/meu-projeto --json # lo mismo, para usar en un script python3 auditar.py --help # el criterio de cada capa
Todo lo que va después de -- se ejecuta dentro del contenedor, en una copia del proyecto. Quedan fuera de la copia: .env, claves y credenciales, node_modules y .venv. Sin red por defecto; si el comando necesita instalar dependencias, usa --rede.
./caixa.sh ~/meu-projeto --imagem python:3.12-slim -- python3 -m unittest # sin dependencias, sin red ./caixa.sh ~/meu-projeto --rede -- sh -c 'npm install && npm test' # Node: instala y prueba dentro de la caja
Los agentes necesitan hablar con el modelo, así que usa --rede. Hay dos formas de entrar:
Con clave de API: --env NOME pasa solo esa variable de tu terminal a la caja. En el modo sin pantalla (-p), Claude Code necesita permiso para ejecutar comandos y editar; dentro de la caja desechable se puede liberar todo, porque el peor caso queda encerrado en ella.
Con tu suscripción (login): abre el agente con --interativo e inicia sesión dentro de la caja. El login desaparece cuando la caja se destruye.
Para dar acceso a una carpeta tuya, usa --montar origem:destino:ro (:ro = solo lectura). Los archivos de contraseñas del proyecto siguen fuera.
./caixa.sh ~/meu-projeto --rede -- npx -y @deepseek-ai/dsh@latest --help # probado: 1.ª vez ~5 min (descarga el paquete) ./caixa.sh ~/meu-projeto --rede --env ANTHROPIC_API_KEY -- npx -y @anthropic-ai/claude-code -p "rode os testes e corrija o que falhar" --dangerously-skip-permissions ./caixa.sh ~/meu-projeto --rede --interativo -- npx -y @anthropic-ai/claude-code # haz el /login dentro
Cada ejecución que cambia archivos guarda un caixa-AAAAMMDD-HHMMSS.patch: un archivo de texto con la diferencia (el diff) de todo lo que cambió. Queda en la carpeta desde donde ejecutaste el comando (o en la que indiques con --patch PASTA) y sirve para que lo revises; no hace falta aplicarlo con git apply. Para llevar al original exactamente lo que leíste, aplica el propio patch con patch -p1 dentro del proyecto. --aplicar hace una ejecución nueva y pregunta antes de copiar: lee el patch de esa ejecución antes de responder s (con un agente, cada ejecución puede salir distinta). Los archivos nuevos y modificados vuelven; node_modules, .venv y las cachés no vuelven; un archivo borrado en la caja no se borra en el original.
less caixa-AAAAMMDD-HHMMSS.patch # léelo cd ~/meu-projeto && patch -p1 < ~/caixa-AAAAMMDD-HHMMSS.patch # aplica exactamente lo que leíste # o: ejecución nueva que pregunta antes de copiar (lee el patch nuevo antes de la s) ./caixa.sh ~/meu-projeto --rede --aplicar -- sh -c 'npm install && npm run format'
Por defecto: imagen node:22-slim, 4 GB de memoria, 2 CPU, 30 minutos. Usa --imagem cuando el comando necesite otro lenguaje o herramienta (la imagen de Node no trae make, por ejemplo).
./caixa.sh ~/meu-projeto --rede --memoria 8g --cpus 4 --tempo 7200 -- sh -c 'npm install && npm run build' ./caixa.sh ~/meu-projeto --imagem python:3.12 -- make build # imagen completa, con make
Ejecutados en esta máquina el 10/11/2026.


Las mismas 6 capas del auditor. Cuando falta una, la flecha del auditor apunta a la fila de aquí.
.env y claves fuera; el otro kit muestra credenciales fuera del chat y de git en un uso de seguridad defensiva.Docker aísla archivos, red y recursos, pero comparte el núcleo del sistema. Para código en el que no confías en absoluto, usa una VM.
Con --rede, el agente puede enviar hacia afuera lo que esté en la copia. Los secretos ya quedaron fuera, el resto no.
Lee las configuraciones más comunes. Una nota alta no reemplaza revisar lo que el agente puede hacer.