Sandbox CLI
管理基于 Docker 的沙箱容器,用于隔离代理执行。
概览
Moltbot 可在隔离的 Docker 容器中运行代理以提高安全。sandbox 命令用于管理这些容器,尤其在更新或配置变更之后。
命令
moltbot sandbox explain
查看生效的沙箱模式/作用域/工作区访问、沙箱工具策略及提升门控(含可修复的配置键路径)。
moltbot sandbox explain
moltbot sandbox explain --session agent:main:main
moltbot sandbox explain --agent work
moltbot sandbox explain --jsonmoltbot sandbox list
列出所有沙箱容器及其状态与配置。
moltbot sandbox list
moltbot sandbox list --browser # 仅列出浏览器容器
moltbot sandbox list --json # JSON 输出输出包含: 容器名与状态(运行/停止)、Docker 镜像及是否与配置一致、创建时长、空闲时长、关联会话/代理。
moltbot sandbox recreate
删除沙箱容器以强制用更新后的镜像/配置重建。
moltbot sandbox recreate --all # 重建所有容器
moltbot sandbox recreate --session main # 指定会话
moltbot sandbox recreate --agent mybot # 指定代理
moltbot sandbox recreate --browser # 仅浏览器容器
moltbot sandbox recreate --all --force # 跳过确认选项: --all、--session <key>、--agent <id>、--browser、--force。重要:下次使用代理时会自动重建容器。
使用场景
更新 Docker 镜像后
# 拉取新镜像
docker pull moltbot-sandbox:latest
docker tag moltbot-sandbox:latest moltbot-sandbox:bookworm-slim
# 在配置中改为使用新镜像
# 编辑:agents.defaults.sandbox.docker.image(或 agents.list[].sandbox.docker.image)
# 重建容器
moltbot sandbox recreate --all修改沙箱配置后
编辑 agents.defaults.sandbox.*(或 agents.list[].sandbox.*),然后执行 moltbot sandbox recreate --all。
修改 setupCommand 后
moltbot sandbox recreate --all,或仅一个代理:moltbot sandbox recreate --agent family。
为何需要?
问题: 更新沙箱 Docker 镜像或配置时,已有容器仍按旧设置运行,且仅在 24 小时无活动后才被清理,常用代理会长期使用旧容器。
解决: 使用 moltbot sandbox recreate 强制移除旧容器。下次需要时会按当前设置自动重建。提示:优先使用 moltbot sandbox recreate 而非手动 docker rm,它会遵循网关的容器命名,避免作用域/会话键变更时不一致。
配置
沙箱设置在 ~/.clawdbot/moltbot.json 的 agents.defaults.sandbox 下(每代理覆盖在 agents.list[].sandbox):
{
"agents": {
"defaults": {
"sandbox": {
"mode": "all", // off, non-main, all
"scope": "agent", // session, agent, shared
"docker": {
"image": "moltbot-sandbox:bookworm-slim",
"containerPrefix": "moltbot-sbx-"
},
"prune": {
"idleHours": 24,
"maxAgeDays": 7
}
}
}
}
}