Alejandría

Busca en Alejandría

Técnicas

Sandboxed execution for coding agents

Ejecuta agentes en entornos aislados con límites de archivos, red y recursos.

01

En pocas palabras

Ejecuta agentes en entornos aislados con límites de archivos, red y recursos.

Qué problema resuelve

Comandos autónomos que pueden dañar el entorno o exponer credenciales y datos.

Cuándo utilizarlo

Agentes capaces de ejecutar código. Ejemplo: permitir builds en un repositorio sin acceso al directorio personal.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

En el Radar compartido: Trial (valoración de la edición aportada).

Cómo funciona

Se definen rutas legibles y escribibles, destinos de red y presupuestos de CPU, memoria y tiempo. Contenedores, namespaces y microVMs ofrecen distintos niveles de separación.

Ejemplo de uso

Crear un entorno con la toolchain instalada, montar solo la copia de trabajo y proporcionar tokens temporales limitados. Publicar únicamente el puerto necesario para revisar la aplicación.

Niveles de aislamiento

Nivel Ejemplos Aislamiento Coste
Sandbox del sistema operativo bubblewrap (Linux), Seatbelt (macOS); sandbox nativo de algunos agentes Archivos y red del proceso Muy bajo
Contenedor Docker, Podman, Dev Containers Procesos y sistema de archivos; comparte kernel Bajo
Kernel en espacio de usuario gVisor Intercepta llamadas al sistema Medio
MicroVM Firecracker, Kata Containers Kernel propio, aislamiento de hardware Medio
Entorno remoto desechable Codespaces, servicios de sandbox (E2B, Daytona, Modal…), agentes en la nube Fuera de la máquina del desarrollador Variable

Contenedor endurecido para un agente

docker run --rm -it \
  --user 1000:1000 \
  --cap-drop ALL --security-opt no-new-privileges \
  --read-only --tmpfs /tmp:rw,size=512m \
  --memory 4g --cpus 2 --pids-limit 512 \
  --network agente-egress \                 # red con salida solo a un proxy con lista blanca
  -v "$PWD":/workspace:rw -w /workspace \
  imagen-agente:1.4

Lo que no debe montarse: el socket de Docker, el directorio personal completo, ~/.ssh, ~/.aws o ~/.config/gcloud, ni archivos .env con secretos de producción.

Control de red

Política Uso
Sin red Refactorizaciones y pruebas con dependencias ya instaladas
Lista blanca vía proxy Registros de paquetes (npm, Maven Central, PyPI) y la API del modelo
Red completa Solo en entornos desechables sin credenciales

La exfiltración es el riesgo principal cuando el agente procesa contenido no confiable (issues, páginas web, dependencias): con red libre, una instrucción inyectada puede enviar el código fuera.

Credenciales

  • Tokens de corta duración y alcance mínimo (por ejemplo, solo lectura del repositorio y escritura en una rama).
  • Sin acceso a producción; si el agente necesita datos, una copia anonimizada.
  • Las acciones con efectos externos (push, abrir PR, desplegar) pasan por un componente fuera del sandbox con sus propias reglas.

Comprobar el aislamiento

Pide al propio agente, dentro del sandbox, que intente leer ~/.ssh, alcanzar un dominio no permitido o escribir fuera del workspace, y verifica que falla. Repite la prueba tras cambiar la configuración o la imagen. Es el complemento operativo de los feedback sensors: los sensores mejoran la calidad, el sandbox limita el daño.

Criterios de implementación

Evitar montajes amplios y sockets administrativos. Diseñar recuperación de sesión, limpieza y autenticación; comprobar qué puede alcanzar realmente el agente desde el sandbox.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.