
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 existe una forma perfecta de aislar agentes (todavía), pero los contenedores son un comienzo práctico.
Agentbox es un sandbox para agentes de programación basado en Docker, inspirado originalmente en 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 Bun; las compilaciones del contenedor instalan los paquetes más recientes disponibles sin fijar versiones exactastoad, opencode, gemini y vibe mediante make -C ~ ...ENABLE_DOCKER, ENABLE_SSH y ENABLE_RDPENABLE_SSH=true) y mosh/home/agent/workspace-skelAgentbox utiliza variables de entorno para controlar qué servicios se inician al lanzar el contenedor:
ENABLE_DOCKER=true - Inicia el daemon de Docker (para soporte de Docker-in-Docker)ENABLE_SSH=true - Inicia el servidor SSH (puerto 22)ENABLE_RDP=true - Inicia 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 deshabilitados a menos que se habiliten 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 incluye un ~/Makefile que puede instalar herramientas adicionales.
Agentes/CLIs de programación 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 lenguajes (requisitos previos para algunos agentes)Agentbox incluye un esqueleto de proyecto integrado en /home/agent/workspace-skel.
Para copiarlo en 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 con 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 sobrescribir 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