
Sandbox basado en Docker para agentes de codificación con entornos aislados, herramientas de agente preinstaladas, control de servicios e inicio del espacio de trabajo para desarrollo seguro en múltiples sesiones.

No hay una forma perfecta de aislar agentes (todavía), pero los contenedores son un inicio práctico.
Agentbox es un sandbox para agentes de codificación basado en Docker, originalmente inspirado por Batrachian Toad, y ahora generalizado para más herramientas.
Proporciona un entorno aislado que funciona bien con webterm para ejecutar múltiples sesiones de agentes.
El contenedor predeterminado proporciona:
lazygit, killalluv y Buntoad, opencode, gemini y vibe mediante make -C ~ ...ENABLE_DOCKER, ENABLE_SSH y ENABLE_RDPENABLE_SSH=true) y soporte para mosh/home/agent/workspace-skelAgentbox utiliza variables de entorno para controlar qué servicios se inician al lanzar el contenedor:
ENABLE_DOCKER=true - Iniciar el daemon de Docker (para soporte Docker-in-Docker)ENABLE_SSH=true - Iniciar el servidor SSH (puerto 22)ENABLE_RDP=true - Iniciar el servidor RDP (puerto 3389)AGENTBOX_ENVIRONMENT=cli|gui - Marcador de entorno proporcionado por la imagen (cli para headless/CLI, gui para imágenes de escritorio)Comportamiento predeterminado: Todos los servicios están desactivados a menos que se activen explícitamente.
# Default - all services disabled
docker run -d agentbox
# Enable only Docker daemon
docker run -d -e ENABLE_DOCKER=true agentbox
# Enable Docker and SSH for development
docker run -d -e ENABLE_DOCKER=true -e ENABLE_SSH=true -p 22:22 agentbox
# Full desktop experience with all services (GUI image)
docker run -d -e ENABLE_DOCKER=true -e ENABLE_SSH=true -e ENABLE_RDP=true -p 22:22 -p 3389:3389 agentbox:gui
Dentro del contenedor, el usuario agent viene con un ~/Makefile que puede instalar herramientas adicionales.
Agentes de codificación/CLIs que puedes instalar mediante make -C ~ …:
toad — instala Batrachian Toad (mediante uv tool)opencode — instala OpenCode (mediante Bun)gemini — instala Gemini CLI (mediante Homebrew)vibe — instala mistral-vibe (mediante uv tool)Objetivos de conveniencia:
tools — instala node, go, gemini, vibenode, go — instala cadenas de herramientas de lenguaje (requisitos previos para algunos agentes)Agentbox incluye un esqueleto de proyecto incorporado en /home/agent/workspace-skel.
Para copiarlo a tu /workspace actual sin sobrescribir archivos existentes:
make init-workspace
Consulta docs/workspace-skeleton.md para más detalles.
La compilación GUI se publica como la etiqueta :gui (también <release>-gui) e incluye XFCE, XRDP y VS Code.
Flujo de trabajo recomendado:
make up
make enter-toad # or: make enter-copilot
make down
Si necesitas anulaciones de servicios, crea docker-compose.override.yml:
services:
toad:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
copilot:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
Luego ejecuta:
docker compose up -d
# Build the headless image
docker build -t agentbox .
# Build the GUI image
docker build -t agentbox:gui --target gui .
# Run the container with selected services (GUI image)
docker run -d \
--name agentbox \
--privileged \
-e ENABLE_DOCKER=true \
-e ENABLE_SSH=true \
-e ENABLE_RDP=true \
-p 22:22 \
-p 3389:3389 \
-v $(pwd):/workspace \
agentbox:gui
Una vez conectado al contenedor:
make -C ~ toad
toad
toad /workspace
toad -a open-hands
Este proyecto está basado libremente en mi antiguo rcarmo/docker-templates/desktop-chrome con un userland actualizado.
MIT