
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 maneira perfeita de isolar agentes (ainda), mas contêineres são um começo prático.
Agentbox é um sandbox para agentes de codificação baseado em Docker, originalmente inspirado por Batrachian Toad, e agora generalizado para mais ferramentas.
Ele fornece um ambiente isolado que funciona bem com webterm para executar múltiplas sessões de agentes.
O contêiner padrão fornece:
lazygit, killalluv e Buntoad, opencode, gemini e vibe via make -C ~ ...ENABLE_DOCKER, ENABLE_SSH e ENABLE_RDPENABLE_SSH=true) e suporte a mosh/home/agent/workspace-skelO Agentbox usa variáveis de ambiente para controlar quais serviços iniciam na inicialização do contêiner:
ENABLE_DOCKER=true - Inicia o daemon do Docker (para suporte a Docker dentro de 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 desktop)Comportamento padrão: Todos os serviços estão desabilitados a menos que 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 contêiner, o usuário agent vem com um ~/Makefile que pode instalar ferramentas adicionais.
Agentes de codificação/CLIs que você pode instalar via make -C ~ …:
toad — instala Batrachian Toad (via uv tool)opencode — instala OpenCode (via Bun)gemini — instala Gemini CLI (via Homebrew)vibe — instala mistral-vibe (via uv tool)Alvos de conveniência:
tools — instala node, go, gemini, vibenode, go — instala toolchains de linguagem (pré-requisitos para alguns agentes)O Agentbox inclui um esqueleto de projeto integrado em /home/agent/workspace-skel.
Para copiá-lo para seu /workspace atual sem sobrescrever arquivos existentes:
make init-workspace
Consulte docs/workspace-skeleton.md para detalhes.
A compilação GUI é publicada como 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 você precisar de substituições de serviço, crie docker-compose.override.yml:
services:
toad:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
copilot:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
Então 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
Uma vez conectado ao contêiner:
make -C ~ toad
toad
toad /workspace
toad -a open-hands
Este projeto é vagamente baseado no meu antigo rcarmo/docker-templates/desktop-chrome com um espaço de usuário atualizado.
MIT