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

Идеального способа изолировать агентов (пока) не существует, но контейнеры — практичное начало.
Agentbox — это песочница для кодирующих агентов на базе Docker, изначально вдохновлённая Batrachian Toad, а теперь обобщённая для большего числа инструментов.
Она предоставляет изолированную среду, которая хорошо работает с webterm для запуска нескольких сессий агентов.
Контейнер по умолчанию предоставляет:
lazygit, killalluv и Bun; при сборке контейнера устанавливаются последние доступные пакеты без точного закрепления версийtoad, 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 для headless/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
# Собрать headless-образ
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 с обновлённым userland.
MIT