
Docker-basierte Sandbox für Codierungs-Agenten mit isolierten Umgebungen, vorinstallierten Agenten-Tools, Dienststeuerung und Workspace-Bootstrap für sichere Multi-Session-Entwicklung.

Es gibt (noch) keine perfekte Möglichkeit, Agenten zu sandboxen, aber Container sind ein praktischer Anfang.
Agentbox ist eine Docker-basierte Sandbox für Coding-Agenten, ursprünglich inspiriert von Batrachian Toad, und jetzt für weitere Tools verallgemeinert.
Es bietet eine isolierte Umgebung, die gut mit webterm für die Ausführung mehrerer Agentensitzungen funktioniert.
Der Standardcontainer bietet:
lazygit, killalluv und Buntoad, opencode, gemini und vibe über make -C ~ ...ENABLE_DOCKER, ENABLE_SSH und ENABLE_RDPENABLE_SSH=true) und mosh-Unterstützung/home/agent/workspace-skelAgentbox verwendet Umgebungsvariablen, um zu steuern, welche Dienste beim Containerstart gestartet werden:
ENABLE_DOCKER=true - Startet Docker-Daemon (für Docker-in-Docker-Unterstützung)ENABLE_SSH=true - Startet SSH-Server (Port 22)ENABLE_RDP=true - Startet RDP-Server (Port 3389)AGENTBOX_ENVIRONMENT=cli|gui - Vom Image bereitgestellte Umgebungsmarkierung (cli für headless/CLI, gui für Desktop-Images)Standardverhalten: Alle Dienste sind deaktiviert, sofern nicht explizit aktiviert.
# 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
Im Container verfügt der Benutzer agent über ein ~/Makefile, das zusätzliche Werkzeuge installieren kann.
Coding-Agenten/CLIs, die Sie über make -C ~ … installieren können:
toad — installiert Batrachian Toad (über uv tool)opencode — installiert OpenCode (über Bun)gemini — installiert Gemini CLI (über Homebrew)vibe — installiert mistral-vibe (über uv tool)Praktische Ziele:
tools — installiert node, go, gemini, vibenode, go — installiert Sprach-Toolchains (Voraussetzungen für einige Agenten)Agentbox enthält ein eingebautes Projektgerüst unter /home/agent/workspace-skel.
Um es in Ihr aktuelles /workspace zu kopieren, ohne vorhandene Dateien zu überschreiben:
make init-workspace
Siehe docs/workspace-skeleton.md für Details.
Der GUI-Build wird als :gui-Tag veröffentlicht (auch <release>-gui) und enthält XFCE, XRDP und VS Code.
Empfohlener Arbeitsablauf:
make up
make enter-toad # or: make enter-copilot
make down
Wenn Sie Dienstüberschreibungen benötigen, erstellen Sie docker-compose.override.yml:
services:
toad:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
copilot:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
Dann führen Sie aus:
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
Sobald Sie mit dem Container verbunden sind:
make -C ~ toad
toad
toad /workspace
toad -a open-hands
Dieses Projekt basiert lose auf meinem alten rcarmo/docker-templates/desktop-chrome mit einer aktualisierten Benutzerumgebung.
MIT