Modelo + harness = agente

Lo que hace rendir al agente es la caja alrededor del modelo

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.

Banner Caja del agente: el harness vale más que el modelo
En resumen

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.

🎬 Mira el video

China trajo un nuevo mensaje: el fin de los agentes

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.

Ver en YouTube (16:9) Versión vertical (9:16)

En palabras sencillas

Una sala cerrada donde el agente trabaja sin dañar nada tuyo

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.

🔑 Tus contraseñas

Lee los archivos .env, las claves de API y las claves SSH.

🌐 Internet

Puede enviar tus datos afuera o descargar algo dañino.

📁 Tus archivos

Puede borrar o dañar el proyecto real.

Lo que hace la caja, en 3 pasos

./caixa.sh ~/meu-projeto -- npm test

1. Crea

Hace una copia del proyecto en una carpeta temporal y deja fuera las contraseñas y las claves.

2. Ejecuta

El agente trabaja en la copia, en un contenedor Docker sin internet, con límite de memoria, de procesador y de tiempo.

3. Destruye

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.

La segunda herramienta: la nota

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:

📦 Caja

¿El agente se ejecuta aislado?

✋ Aprobación

¿Alguien confirma antes de las acciones peligrosas?

🔒 Bloqueos

¿Hay bloqueos que no dependen del prompt?

✅ Verificación

¿Existe una prueba que demuestre que el trabajo quedó bien?

🧠 Contexto

¿El agente tiene instrucciones y memoria del proyecto?

🔑 Secretos

¿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):

Ver en YouTube (16:9)

Qué es

Tres piezas, una idea: cuida el cuerpo del agente

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.

Las piezas del kit: auditar, caja, crear, ejecutar, destruir y mapa de kits

📊 auditar.py

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.

📦 caixa.sh

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.

🗺️ Mapa de kits

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.

Cómo funciona

El ciclo de la caja: crea, ejecuta, destruye

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.

Copia sin .env ni claves→ Contenedor sin red→ Tope de memoria, CPU y tiempo→ Patch con los cambios→ Contenedor y copia borrados
Requisitos previos

Lo que necesitas

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.

Docker

Para la caja. Verifica que responda:

# comando
docker --version

Python 3

Para el auditor (sin bibliotecas extra).

# comando
python3 --version

rsync

Para copiar el proyecto sin los secretos.

# comando
rsync --version | head -1
Guía de uso · paso a paso

De cero a la primera caja en 5 minutos

Los 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.

1

Descarga el kit

Clona el repositorio y entra en la carpeta.

git clone https://github.com/inematds/caixa-do-agente && cd caixa-do-agente
2

Comprueba que la caja funciona

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)
3

Ponle nota a tu harness

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
4

Ejecuta algo en la caja

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
5

Ejecuta un agente en 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
6

Revisa y aplica

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'
7

Ajusta los topes y la imagen

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
Ejemplos

Salida real de los dos comandos (resumida)

Ejecutados en esta máquina el 10/11/2026.

Salida de auditar.py con nota 6,7 de 10
El auditor en un proyecto de ejemplo: falta la caja (Codex corre sin sandbox), bloqueos y verificación a medias. Nota 6,7/10.
Salida de caixa.sh: crear, caja, destruir
La caja: 1 secreto quedó fuera, red apagada, 1 archivo cambió, patch guardado, contenedor y copia borrados.
Mapa de kits

Cada capa tiene un kit INEMA

Las mismas 6 capas del auditor. Cuando falta una, la flecha del auditor apunta a la fila de aquí.

Caja
caixa.sh (este kit) · rea-sem-travas · dsh-orchestratorLa caja desechable; el DeepSeek Harness en contenedor con modelo abierto; dsh, Codex y Claude Code en el mismo entorno aislado.
Aprobación
agente-blindadoAprobación antes de una acción destructiva y permisos mínimos, fuera del prompt.
Bloqueos
agente-blindado5 bloqueos contra inyección de prompt y 10 ataques inofensivos para medir tu agente.
Verificación
agente-que-aprendeCada error se vuelve una regla (gancho) que bloquea el mismo error la próxima vez.
Contexto
memoria-projetosMemoria del proyecto que el agente consulta antes de actuar.
Secretos
caixa.sh (este kit) · ia-sem-censura-defensivaLa caja deja .env y claves fuera; el otro kit muestra credenciales fuera del chat y de git en un uso de seguridad defensiva.
Para entender
ai-harness · agentes-harness · hardnessai · esforco-certoQué es un harness (video), curso rápido de terminal y harness, curso completo de ingeniería agéntica, y cuánto esfuerzo del modelo merece cada tarea.
Fuentes
DeepSeek Harness · DSec (arXiv)El harness abierto de DeepSeek (MIT) y el artículo de DSec, la plataforma donde DeepSeek crea las cajas para entrenar a los agentes: ~3 millones por día, más de 380 mil al mismo tiempo.
Límites

Lo que la caja no hace

No es una máquina virtual

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 red, hay salida

Con --rede, el agente puede enviar hacia afuera lo que esté en la copia. Los secretos ya quedaron fuera, el resto no.

El auditor señala, no garantiza

Lee las configuraciones más comunes. Una nota alta no reemplaza revisar lo que el agente puede hacer.