
Sandbox baseado em Docker para agentes de codificação com ambientes isolados, ferramentas de agente pré-instaladas, controle de serviço e inicialização de espaço de trabalho para desenvolvimento seguro em múltiplas sessões.

Não existe uma forma perfeita de isolar agentes (ainda), mas contentores são um começo prático.
O Agentbox é um sandbox para agentes de programação baseado em Docker, originalmente inspirado no Batrachian Toad, e agora generalizado para mais ferramentas.
Fornece um ambiente isolado que funciona bem com o webterm para executar múltiplas sessões de agentes.
O contentor predefinido fornece:
lazygit, killalluv e Bun; as compilações do contentor instalam os pacotes mais recentes disponíveis sem fixar versões exatastoad, opencode, gemini e vibe via make -C ~ ...ENABLE_DOCKER, ENABLE_SSH e ENABLE_RDPENABLE_SSH=true) e mosh/home/agent/workspace-skelO Agentbox usa variáveis de ambiente para controlar quais serviços são iniciados no arranque do contentor:
ENABLE_DOCKER=true - Inicia o daemon do Docker (para suporte a Docker-in-Docker)ENABLE_SSH=true - Inicia o servidor SSH (porta 22)ENABLE_RDP=true - Inicia o servidor RDP (porta 3389)AGENTBOX_ENVIRONMENT=cli|gui - Marcador de ambiente fornecido pela imagem (cli para headless/CLI, gui para imagens de ambiente de trabalho)Comportamento predefinido: Todos os serviços estão desativados a menos que sejam explicitamente ativados.
# 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 do contentor, o utilizador agent inclui um ~/Makefile que pode instalar ferramentas adicionais.
Agentes/CLIs de programação que pode instalar via make -C ~ …:
toad — instala o Batrachian Toad (via uv tool)opencode — instala o OpenCode (via Bun)gemini — instala o Gemini CLI (via Homebrew)vibe — instala o mistral-vibe (via uv tool)Alvos de conveniência:
tools — instala node, go, gemini, vibenode, go — instala toolchains de linguagens (pré-requisitos para alguns agentes)O Agentbox inclui um esqueleto de projeto integrado em /home/agent/workspace-skel.
Para o copiar para o seu /workspace atual sem sobrescrever ficheiros existentes:
make init-workspace
Consulte docs/workspace-skeleton.md para mais detalhes.
A compilação GUI é publicada com a tag :gui (também <release>-gui) e inclui XFCE, XRDP e VS Code.
Fluxo de trabalho recomendado:
make up
make enter-toad # or: make enter-copilot
make down
Se precisar de substituições de serviços, crie docker-compose.override.yml:
services:
toad:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
copilot:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
Depois execute:
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
Depois de se ligar ao contentor:
make -C ~ toad
toad
toad /workspace
toad -a open-hands
Este projeto é vagamente baseado no meu antigo rcarmo/docker-templates/desktop-chrome com um userland atualizado.
MIT