
Песочница на основе Docker для агентов кодирования с изолированными средами, предустановленными инструментами агентов, контролем служб и загрузкой рабочего пространства для безопасной многосеансовой разработки.

Идеального способа изолировать агентов пока нет, но контейнеры — практичное начало.
Agentbox — это Docker-песочница для агентов кодирования, изначально вдохновлённая Batrachian Toad, а теперь обобщённая для большего количества инструментов. Она предоставляет изолированное окружение, которое хорошо работает с webterm для запуска нескольких сессий агентов.
В контейнере по умолчанию доступно:
lazygit, killalluv и Buntoad, opencode, gemini и vibe через make -C ~ ...ENABLE_DOCKER, ENABLE_SSH и ENABLE_RDPENABLE_SSH=true) и mosh/home/agent/workspace-skelAgentbox использует переменные окружения для управления тем, какие сервисы запускаются при старте контейнера:
ENABLE_DOCKER=true — запустить демон Docker (для поддержки Docker-in-Docker)ENABLE_SSH=true — запустить SSH-сервер (порт 22)ENABLE_RDP=true — запустить RDP-сервер (порт 3389)AGENTBOX_ENVIRONMENT=cli|gui — метка окружения, предоставляемая образом (cli для безголового/CLI, gui для десктопных образов)Поведение по умолчанию: Все сервисы отключены, если явно не включены.
# По умолчанию — все сервисы отключены
docker run -d agentbox
# Включить только демон Docker
docker run -d -e ENABLE_DOCKER=true agentbox
# Включить Docker и SSH для разработки
docker run -d -e ENABLE_DOCKER=true -e ENABLE_SSH=true -p 22:22 agentbox
# Полноценный десктопный опыт со всеми сервисами (GUI образ)
docker run -d -e ENABLE_DOCKER=true -e ENABLE_SSH=true -e ENABLE_RDP=true -p 22:22 -p 3389:3389 agentbox:gui
Внутри контейнера пользователь agent имеет ~/Makefile, с помощью которого можно установить дополнительные инструменты.
Агенты кодирования/CLI, которые можно установить через make -C ~ …:
toad — установит Batrachian Toad (через uv tool)opencode — установит OpenCode (через Bun)gemini — установит Gemini CLI (через Homebrew)vibe — установит mistral-vibe (через uv tool)Цели для удобства:
tools — установит node, go, gemini, vibenode, go — установит цепочки инструментов для языков (предварительные требования для некоторых агентов)Agentbox поставляется со встроенным скелетом проекта в /home/agent/workspace-skel.
Чтобы скопировать его в вашу текущую директорию /workspace без перезаписи существующих файлов:
make init-workspace
Подробности в docs/workspace-skeleton.md.
Сборка GUI публикуется с тегом :gui (также <release>-gui) и включает XFCE, XRDP и VS Code.
Рекомендуемый рабочий процесс:
make up
make enter-toad # или: make enter-copilot
make down
Если вам нужны переопределения сервисов, создайте docker-compose.override.yml:
services:
toad:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
copilot:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
Затем выполните:
docker compose up -d
# Сборка безголового образа
docker build -t agentbox .
# Сборка GUI-образа
docker build -t agentbox:gui --target gui .
# Запуск контейнера с выбранными сервисами (GUI образ)
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
После подключения к контейнеру:
make -C ~ toad
toad
toad /workspace
toad -a open-hands
Этот проект основан на моём старом rcarmo/docker-templates/desktop-chrome с обновлённым пользовательским пространством.
MIT