本页内容
本页内容
网关
云工作者温馨画面
OpenClaw 将准备好的存储库保存为快照,以便以后的云会话可以重用其依赖项和工具。第一个会话准备自己的机器;稍后的会话分叉快照或采用已经运行的就绪工作线程。
温馨画面
当配置文件或会话选择计算机类别时,默认情况下会为 Linux 启用快照。设置机密不会禁用它们。如果没有班级,自动选择就会变得冷淡;显式 settings.warmImage: true 需要一个类。设置 false 以禁用捕获和重用。 macOS 和 Windows 总是冷启动。快照会产生提供商存储费用并保留存储库内容和计算机缓存,因此仅在相互信任的工作负载之间共享它们。
存储库的第一个会话
对于具有已提交内容的合格存储库,OpenClaw:
- 配置会话的计算机并运行可选的配置文件设置。
- 使用经过验证的 Node 工具链和当前的 OpenClaw 运行时,准备选定的提交及其 存储库环境配方 。
- 删除工作线程身份和会话状态,然后在节点注册之前修复快照捕获点。
- 登记节点,绑定会话工作空间,运行create/start后命令,并开始第一回合。
对于 Crabbox 0.79.0 或 AWS 上的更新版本,一旦 Crabbox 确认捕获点已修复,第一个会话就会继续注册。快照上传在后台完成;稍后的会话开始冷,直到可用。较旧的 Crabbox、刷新捕获、储备和其他后端仍在等待完成。 Daytona 可能会在捕获期间停止并恢复源计算机。
这适用于网关签出和仅存储库的 GitHub 会话。只有提交的存储库内容才进入准备阶段。会话编辑和注册凭据在捕获点修复后到达。私有存储库准备传输 Git 内容,无需将 GitHub 凭证放入工作文件或快照中;它需要临时网关磁盘空间,并且传出包仅限于 4 个 GiB。
安装程序生成的依赖项和构建输出会保留到会话中。会话更改将应用于准备好的内容,会话编辑优先。显式检查点恢复和接受的协调快照保留其确切内容,包括删除。
空的已提交工作区使用配置文件的共享运行时映像而不是存储库快照。如果没有准备好项目,捕获就会发生在合格的工人拆卸时。检测到失败的依赖项安装会跳过捕获并让会话冷启动;声明失败的配方会停止发送。显式跳过的设置具有单独的快照标识。
稍后的会话和刷新
匹配的就绪工作人员会跳过配置。否则,兼容的快照将启动一台新计算机,并且新会话将显示 从快照开始…。分叉将其签出更新为请求的提交,并在注册前需要时安装当前运行时。配置文件设置已被捕获; post-create/start 命令在会话绑定后运行。
快照兼容性涵盖存储库和源访问范围、后端、确切的机器类别、操作系统、桌面设置、配置文件设置命令、设置秘密名称和存储引用、存储库配方以及是否跳过设置。一个本地存储库的链接工作树共享快照;单独的克隆则不然。仅存储库源还绑定其存储库实例、代理和选定的 GitHub 身份。更改的配方、机器配置或源访问范围需要兼容的准备,通常是冷构建。秘密值和临时哨兵从不参与密钥。
OpenClaw 运行时与快照兼容性是分开的。网关更新、运行时存档、启用的插件、执行模式、配置文件名称、租用期限和保留限制不会使其他兼容快照失效。然而,就绪工作线程在使用前必须匹配当前的运行时、配置文件和提交。
前台分叉可以刷新更改的提交或补充其运行时,而无需仅捕获该更改的替换。后台保留和显式构建可以发布刷新的快照。初始捕获、中断捕获恢复、所需的设置修复和时限刷新仍使用捕获边界。取消固定的图像在 refreshAfter 后(默认 24 小时)即可刷新;仅运行时图像在符合条件的拆卸时刷新。禁用保留也会禁用自动后台刷新。
重试和网关重新启动将保留最初选择的冷分配或检查点。失败的分叉会报告错误,而不是默默地分配另一台机器。丢失、停用或不兼容的快照会导致新分配冷启动。
如果后端明确拒绝本机捕获,OpenClaw 会记录原因并继续在准备好的计算机上注册。现有的兼容快照仍然可用。 refreshAfter后重试捕获;成功捕获即可清除拒绝。不确定的捕获会暂停进一步捕获并阻止在其源上注册,直到 recovery。
捕获寿命
45 分钟的检查点等待是操作预算,而不是额外的租约寿命。在源相关捕获之前,OpenClaw 检查有效的剩余总生命周期,并在提供者需要源时保持现有源心跳处于活动状态。心跳仅保护空闲时间。如果源需要更长的总生命周期,OpenClaw 会在配置的持续时间和有效最大值内请求有界的 crabbox extend <lease-id> --ttl <desired-total> --json。扩展不会重置空闲时间。在支持的非阻塞 AWS 路径上,修复捕获点允许在继续上传的同时进行注册;生命周期检查不会将该上传变成阻塞等待。更新在源释放之前停止,并且分配保持不变,直到确认清理为止。
Crabbox 拥有推广权限、政策和预算。 lease_extension_denied和lease_extension_budget_exceeded不给予额外时间; lease_extension_not_advancing 表示目标或上限无法提前,且 lease_not_active 无法恢复租赁。创建固定的提供程序(包括 Daytona)返回 lease_extension_unsupported_provider,并且在创建时需要足够的 TTL。当无法保护源窗口时,OpenClaw 明显跳过可选捕获;由于这个原因,所需的项目捕获无法进行准备。它不会无限期地绕过政策、切换提供商或链式租赁。
直接延期可以承诺更长的提供商期限,但无法刷新来宾到期防护。在协调之前,这是一个失败的准备结果:客户端仍然可以在原来的截止日期前关闭。仅在同一 Crabbox 状态下重试相同的固定总数 TTL,以修复挂起的刷新;不要盲目地增加另一个持续时间。请参阅 Crabbox 扩展 。
保留政策
在plugins.entries.crabbox.config.warmImages下设置插件范围的策略,或在云环境下使用高级→快照保留。这些控制适用于所有存储库。保存会重新加载 Crabbox 插件,而无需重新启动网关。 Worker 租赁生命周期和 128 个配置文件容量限制保持不变。未使用、未固定的图像在 retainUnused 后过期;分配持有的图像等待这些工作人员停止。除非保留为上一代或固定,否则替换的快照将在分配释放后停用。失败的删除将保持待处理状态,并在维护期间重试。
| 键 | 默认值 | 接受的值 |
|---|---|---|
refreshAfter |
24h |
整分钟、整小时或整天(m、h、d),至少为 1h。 |
retainUnused |
14d |
整分钟、整小时或整天(m、h、d),至少为 1d。 |
keepPrevious |
0 |
0 废弃替换图像; 1保留了上一代产品。 |
持续时间值接受一到八位数字后跟一个单位,例如 90m 或 14d;复合持续时间和分数持续时间无效。
固定检查点不受年龄刷新、未使用到期、容量驱逐和替换报废的影响。对于准备好的项目映像,引脚可以在运行时更新期间保持检查点可用;工作人员在分叉后补充运行时。在兼容的捕获发布之前,配方更改仍然会让工作人员感到冷淡。其他分配兼容性规则也保持不变。对同一配置文件记录的更新捕获会将固定的当前检查点移动到 Previous,即使使用 keepPrevious: 0 也是如此;回滚可以恢复它。取消固定会在下一个维护通道或捕获边界处恢复普通策略。前几代在未使用时可能会过期,并且将 keepPrevious 降低到 0 允许它们退役,除非固定或仍由分配持有。
准备工人
成功激活会话后,OpenClaw 可以在后台为下一个匹配会话准备未分配的工作人员。默认情况下,每个存储库和配置文件有一名工作人员,网关范围内的上限为四名。准备好的工作人员会被消耗一次,然后重新填充。如果没有准备好,会话将正常配置,并使用可用的兼容快照。配对设备不使用此池。
授权的 Control UI 浏览器还会使配置的默认存储库的保留目标保持准备状态。只读浏览器不分配工作线程。最后一个符合条件的浏览器断开连接后,状态驱动的补充将停止,未使用的储备将在 15 分钟后退出。在重用之前再次检查存储库访问权限和身份;可见性的改变或访问权限的丢失会阻碍对早期容量的重用。
空工作区为每个提供程序和配置文件共享一个单独的仅运行时保留,不包含会话文件或凭据。第一个空会话正常设置;激活可以补充其储备。仅浏览器的存在并不能温暖空的工作空间。
将 cloudWorkers.profiles.<id>.readyWorkers 设置为每个项目目标,将 cloudWorkers.preparedPool.maxTotal 设置为共享上限。零会耗尽未使用的储备并禁用相应的重新填充,从而保留活动会话和快照重用。准备工作和未经确认的清理工作都计入这两个限制。储备需要符合条件的专用 Linux 配置文件,具有温暖的图像和已知的机器类别。
在确认删除之前,就绪工作人员会产生运行机器费用。需求使用提供者的空闲超时到期;重新填充和网关重启不会延长它。过期、不适应、残疾和富余人员退休。临时提供者或工件观察故障会推迟维护,保留现有容量及其到期时间。如果激活后没有出现储备,请检查池限制和网关的补充诊断。
按需构建: environments.prepare 接受 { profileId, projectPath } 和 operator.admin,准备本地 Git 签出的已提交 HEAD,并授权其设置配方。它返回 { environmentId, preparationKey, reused },重用已经正在进行的匹配工作。它需要合格的个人资料和池上限下的房间。构建可以以 readyWorkers: 0 完成,然后普通储备政策可能会将其作为盈余退休。 environments.destroy 取消未使用的构建或保留,并等待提供程序工作和清理完成。
已承认的捕获可以在其安全源生命周期和提供商预算内的储备需求到期后完成,而其工作人员仍被计算在内。储备需求到期不会授予更长的提供者生命周期或允许以后注册、准备或消费;确定捕获监管后进行清理工作。
检查 Control UI 中的快照
打开 设置 → 连接 → 云环境。每个存储库都有一行显示 Ready、Building、仅冷 或 需要注意。选择它来检查其快照、记录的设置源、步骤计时和故障。 Machine → Change 设置存储库的默认配置文件。在构建、捕获或就绪工作人员存在时以及在延迟插件激活之后,库存会刷新。
Rebuild 无需会话即可准备记录的本地项目的已提交 HEAD。它需要管理员访问权限、本地项目根目录、合格的配置文件和池容量。仅存储库源无法使用此操作。重建遵循正常的刷新策略,并且可以重用匹配的构建或保留;它不强制快照替换。活动构建提供 Cancel;失败的构建提供 Dismiss,它隐藏该行直到重新加载,同时保留终端记录。仍等待清理的孤立构建不能被驳回。
快照溢出操作提供 Pin、Unpin、Delete,并且当上一代存在时,提供 回滚。固定可防止图像自动失效。删除需要确认,并且对于固定、保留或捕获图像不可用。在捕获或停用期间,引脚更改和回滚不可用。失败的删除仍处于待处理状态,并在维护期间重试。
回滚将先前的检查点恢复为当前检查点。固定或 keepPrevious: 1 时,保留降级的当前图像;否则它会在分配释放后退出。将 keepPrevious 降低到 0 后,保留的先前检查点仍然可以回滚。如果两代都已固定,请在发布另一代替代品之前取消固定其中一代。
折叠的Advanced部分包含Machines、Pool、快照保留和机器图片。机器管理配置文件;矿池显示储备数量和限制;快照保留适用于所有存储库。机器映像保存快照并在没有存储库元数据的情况下进行构建,包括不确定的捕获。保存机器设置即可刷新资格,而无需离开页面。
快照检查和操作需要 operator.admin 和启用的 Crabbox 提供程序。仅当其方法被公布时,操作才会出现。 API 客户端使用 crabbox.images.list 获取本地快照状态,使用 environments.list 或 environments.status 上的 includePreparedDetails: true 获取池详细信息。列出快照不会联系提供商或公开设置命令或秘密值。
Recover 仅在不确定的捕获时出现。其确认与 CLI 的 --acknowledge-provider-cleanup 的含义相同:首先执行以下清理步骤。恢复清除保留;它不会停止工作人员或删除提供程序工件。
恢复暂停的捕获
检查本地所有权而不联系云:
状态可识别捕获选择器、源租约、检查点引用和记录的设置诊断,而无需公开设置命令或环境值。医生报告待捕获和退役,但未使用 doctor --fix 清除它们。超过 20 分钟的捕获仍然有效;仅仅流逝的时间并不是恢复它的理由。只有明确不确定的结果才需要恢复。如果状态要求迁移,请先按照升级热映像状态。
暂停的捕获不会阻止源租约清理,但对其不确定源的注册仍会被阻止,直到恢复清除保留为止。
在恢复之前,请停止所属网关、任何原始捕获进程以及恢复的工作进程。使用源租约和捕获时间来协调 Crabbox 检查点目录中的不确定操作,并解决任何未跟踪的提供程序工件。仅在完成这些步骤后,才从状态复制准确的捕获选择器:
该确认证明原始捕获和工作人员已停止并且未跟踪的工件已解决;仅经过时间并不能证实这些事实。恢复仅清除捕获保留,保留已知的检查点引用和分配选择,并拒绝替换的选择器。它不会停止进程、运行提供程序命令、删除快照或分配工作线程。之后重新启动网关;下一个符合条件的工人可以再次捕获。失败的检查点退役在定期维护期间重试,或者在解决提供程序删除错误后稍后捕获该配置文件或启用热图像的工作人员拆卸;他们不使用捕获恢复。
升级暖图像状态
如果热图像状态请求迁移,请停止所属网关和原始捕获进程,然后运行:
Doctor 在独占维护锁下迁移状态,保留检查点、分配选择和清理义务。较旧的空捕获标记将成为其原始恢复选择器的不确定捕获。不支持的记录保持不变并带有警告;配置等待所需的迁移。
较旧的 warm-leases 行记录已注册的类别,但无法确定租约是最初冷启动还是从检查点开始。这些行会阻止新的热图像分配,直到解决为止。医生报告他们的计数和准确的恢复命令。通过其原始网关或提供者解决每个租约,停止其工作进程和拥有进程,并在使用报告的选择器之前协调提供者工件:
此恢复仅删除与该选择器匹配的未更改的旧行。它不会确定提供商缺席或为您清理机器。当清理不确定时保留该行。已被旧代码遗忘的检查点不会被重新发现;通过 Crabbox 手动协调这些内容。当分配、捕获或退出仍未解决时,不要针对相同状态运行旧的和新的编写器或降级。