Crabbox 后端
在由 Crabbox 租用的机器上运行沙盒工具。OpenClaw 管理远程工作区和文件系统桥接;Crabbox 负责提供商访问、执行和租约清理。
Crabbox 后端¶
初始支持直接 Daytona 租约。安装具有固定租约恢复、仓库所属 exec 和 stop --current-repo 的 Crabbox 构建。在 Gateway 主机上为 Daytona 认证 Crabbox,然后从将拥有沙盒的工作区检查支持:
此离线检查必须同时报告 execution: true 和 currentRepoStop: true。OpenClaw 在提供商分配之前执行相同的能力检查,并在任一能力缺失时报告升级或不受支持的提供商错误。仅靠固定租约 ID 是不够的;当 Crabbox 同时公布这两种能力时,其他提供商才可用。
使用 backend: "crabbox" 在 Crabbox 为沙盒范围租用的一次性机器上运行 exec、文件工具和媒体读取。Gateway、代理循环、渠道和模型凭据保留在主机上。这是个人 Gateway 的选项:它应保持本地设置,但不得在主机上运行模型生成的命令,且不能或不应运行 Docker。若要改为将整个会话移出主机,请使用 cloud workers。
沙盒注册表在预配开始前为每个范围保留一个固定的 Crabbox 租约 ID。并发的首次使用共享该预留;预配失败或 Gateway 重启会重放同一 ID,而不会分配另一台机器。共享范围保留原始拥有工作区,即使后续调用者使用不同的本地工作区也是如此。原生停止或归档的机器会以其远程工作区完整恢复。共享远程 shell 后端将初始工作区以及任何单独的代理工作区上传到临时同级目录,然后原子地发布完整树。中断的上传会重试,而不会采用部分树,并且现有远程工作区保持权威状态。
所有远程命令、文件操作、上传和暂存 exec 清理都通过原始工作区中的 crabbox exec --id <lease-id> -- ... 运行。Crabbox 会检查并保留每次执行的当前仓库声明;OpenClaw 不会导出或缓存租约的 SSH 凭据。在声明转移之前准备好的命令在启动时仍必须通过 Crabbox 准入。远程 PTY 请求使用 --pty,而本地 Crabbox 进程保持管道输入。
openclaw sandbox recreate 使用 crabbox stop --current-repo --id <lease-id> 释放租约。Crabbox 拒绝释放其声明已转移到另一个仓库的租约。释放成功后,下一次使用会预留一个新的 ID 并预配一台新机器。失败的清理仍会记录以供重试,新的预配会等待移除完成。如果预配在 Crabbox 记录声明之前失败,则 recreate 会在释放之前从其原始工作区重放预留的 ID。这可能会短暂预配并立即释放一台未使用的机器;这避免了丢弃不确定的分配。
{
agents: {
defaults: {
sandbox: {
mode: "all",
backend: "crabbox",
scope: "session",
workspaceAccess: "rw",
},
},
},
plugins: {
entries: {
crabbox: {
enabled: true,
config: {
sandbox: {
provider: "daytona",
class: "small",
ttl: "2h",
idleTimeout: "30m",
},
},
},
},
},
}
sandbox 块注册后端。provider、class、ttl 和 idleTimeout 是可选的,并回退到主机上的 Crabbox 配置。设置 binary 以选择特定的 Crabbox 可执行文件;否则 OpenClaw 会发现同级构建或使用 PATH 中的 crabbox。agents.defaults.sandbox.ssh.workspaceRoot 仍会选择远程根目录。其他 SSH 设置(包括 target 和身份设置)不会配置 Crabbox 传输:Crabbox 拥有其私有提供商连接。
提供商凭据由本地 Crabbox 进程继承。它们不会自动复制到远程命令环境中。OpenClaw 通过同一命令所有者私下暂存所需的远程环境,保留原始文件字节和命令输出。
openclaw sandbox list/recreate/prune 将 Crabbox 运行时视为其他远程运行时;移除运行时将通过仓库范围的清理释放租约。每次工具调用都会跨越网络,因此预期延迟会高于 Docker。使用提供商的空闲和 TTL 设置以及显式清理来管理资源使用。现有租约的检查、访问和清理遵循 Crabbox 存储的提供商声明。要切换提供商,请在与新提供商开始工作之前重新创建现有沙盒。此后端不支持沙盒浏览器和 sandbox.docker.binds。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw