Skip to main content
管理用于隔离代理执行的沙箱运行时:Docker/Podman 容器、SSH 目标或 OpenShell 后端。 openclaw agent exec 不使用这些已配置的运行时。其隔离的隐式策略配置会关闭代理沙箱,允许对 Gateway 主机的完整执行,并将文件系统工具限制为 --cwd

命令

openclaw sandbox list

列出沙盒运行时及其状态、后端、配置匹配、年龄、空闲时间,以及关联的会话/代理。

openclaw sandbox recreate

移除沙盒运行时,以强制使用当前配置重新创建。运行时会在下次使用代理时自动重新创建。
选项:
  • --all:重新创建所有沙盒容器
  • --session <key>:重新创建具有此精确作用域键的运行时(如 sandbox list 所示);不进行简称展开
  • --agent <id>:为一个代理重新创建运行时(匹配 agent:<id>agent:<id>:*
  • --browser:仅影响浏览器容器
  • --force:跳过确认提示
只能传入 --all--session--agent 中的一个。 对于 ssh 和 OpenShell remoterecreate 比 Docker 更重要:远程工作区在初始种子之后是权威来源,recreate 会删除所选作用域下那个权威的远程工作区,下一次运行会从当前本地工作区重新播种它。

openclaw sandbox explain

检查生效的沙盒模式/作用域/工作区访问、沙盒工具策略,以及提升工具门控(附带修复配置键路径)。 该报告会将 workspaceRoot 保持为已配置的沙盒根目录,并分别显示生效的主机工作区、后端运行时工作目录,以及 Docker 挂载表。对于 workspaceAccess: "rw",生效的主机工作区是代理工作区,而不是 workspaceRoot 下的目录。
不同于 recreate --session,此命令接受短会话名称(例如 main),并会针对解析后的代理进行展开。

为什么需要 recreate

更新 sandbox 配置不会影响正在运行的容器:现有运行时会保留旧设置,而空闲运行时只有在 prune.idleHours(默认 24 小时)之后才会被清理。经常使用的代理可能会让过时的运行时一直存活。openclaw sandbox recreate 会移除旧的运行时,使下次使用时根据当前配置重新构建它。
优先使用 openclaw sandbox recreate,而不是手动进行特定后端的清理。它会使用 Gateway 的运行时注册表,并在范围或会话键变化时避免不匹配。

常见触发条件

当代理下次被使用时,运行时会自动重新创建。

注册表迁移

Sandbox 运行时元数据存储在共享的 SQLite 状态数据库中。较旧的安装版本可能仍保留不会被常规读取重新写入的旧版注册表文件:
  • ~/.openclaw/sandbox/containers.json
  • ~/.openclaw/sandbox/browsers.json
  • ~/.openclaw/sandbox/containers/~/.openclaw/sandbox/browsers/ 下每个 container/browser 对应的一个 JSON 分片
运行 openclaw doctor --fix 可将有效的旧版条目迁移到 SQLite 中。无效的旧版文件会被隔离,因此损坏的旧注册表不会隐藏当前的运行时条目。

配置

沙箱设置位于 ~/.openclaw/openclaw.jsonagents.defaults.sandbox 下(每个代理的覆盖配置放在 agents.entries.*.sandbox 中):

相关内容