
目前还没有完美的智能体沙盒方案,但容器是一个实用的起点。
Agentbox 是一个基于 Docker 的编码智能体沙盒,最初受 Batrachian Toad 启发,现已泛化以支持更多工具。它提供了一个隔离环境,可与 webterm 配合良好,用于运行多个智能体会话。
默认容器提供:
lazygit、killalluv 和 Bunmake -C ~ ... 安装 toad、opencode、gemini 和 vibeENABLE_DOCKER、ENABLE_SSH 和 ENABLE_RDP 切换 Docker/SSH/RDPENABLE_SSH=true)和 mosh 支持/home/agent/workspace-skelAgentbox 通过环境变量控制容器启动时开启的服务:
ENABLE_DOCKER=true - 启动 Docker 守护进程(用于容器内 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,可用于安装其他工具。
可通过 make -C ~ … 安装的编码智能体/CLI:
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