用途与实际影响
这项功能怎样使用
为什么需要它
自动追新可能在无人在场时改变插件、任务和网关。相反,只看版本安装成功又会漏掉配置、远程调用、模型和任务损坏。
举个实际例子
我可以说:“先只读告诉我稳定版目标,今天不要更新。”当前目标版本无法取得时只报告未知;以后明确更新时,才会先备份并在完成后重新核对配置、网关、模型和任务。
最后我会得到什么
只读时看到当前版、可取得的目标版、通道和健康;执行后逐项知道备份、安装、网关与模型检查通过了什么。版本变了但后验失败会写成部分完成。
正常时
版本无需安装时也完成健康与配置后验;确需更新时,备份、更新和所有关键后验均通过才报成功。
发现问题时
上次目标版本未能取得,不能把未知写成升级失败;若更新后某项检查没通过,就报告部分完成。
入口不可用或证据不足时
目标版本或通道不清、备份未通过时不开始更新。
从哪里开始
在已接通本机 OpenClaw 管理入口的 AI 对话中明确要求检查稳定版;确有落后且获准更新时用 managed update 入口。
需要准备什么
- 想检查或更新到哪个通道
- 是否明确执行更新
从开始到拿到结果
- 1
先看是否真的需要更新
比较当前版本、目标通道和健康;目标不明、版本相同或当前版更靠前时不安装。
- 2
需要更新时先留恢复点
先验证官方备份,再按已选通道执行更新。
- 3
更新后逐层读回
重新检查版本、配置、网关、模型和任务;缺一项就报告部分完成或失败,不因为安装命令结束就称成功。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
运行版本仍2026.8.1;更新目标关系沿用9月4日探针不可用的原观察,9月7日未重新查询目标或执行更新关键规则与设计选择
OpenClaw 支持 stable(稳定)、extended-stable(延长稳定支持)、beta(测试)和 dev(开发)四个官方通道。
Update(更新)计划任务 Disabled(停用)是 AI 编排、人在边界授权的正常设计;当前 relation=unknown(版本关系未知)来自 target(目标版)探针不可用,不等于网关已坏。
extended-stable 使用精确 --channel extended-stable,不与 --tag 混用;其余目标按明确版本标签更新。
ahead(当前版领先)不降级,但仍完整核对 health(健康)、配置、RPC(远程过程调用)、模型和任务;不是只看版本就成功。
更新器不自动降级;partial(部分完成)要按 installed generation(已安装代际)修复并重新后验。
本模块用到的名词
- release channel(发布通道)
- stable、extended-stable、beta、dev 四种官方更新节奏;选择通道不等于已经更新。
- relation(版本关系)
- 当前版相对目标版的 equal(相同)、ahead(领先)、behind(落后)、unknown(未知)或 channel_mismatch(通道不一致)。
- ahead verification(领先版本后验)
- 当前版比目标新时不降级,但仍完整验证健康、配置、RPC、模型与任务。
- rollback reference(回退参考)
- 更新前创建的官方归档路径;它是恢复起点,不等于已自动回滚。
专业定义
更新是一条由 AI 编排、人在影响边界授权且带恢复点的事务,不是后台自动追新。
解决什么
避免静默自动升级,也避免“命令返回成功”掩盖新版本无法正常运行。
当前怎样实现
- -Status 从 update.channel(更新通道)、openclaw --version(当前版本)、official update status(官方更新状态)和 health(健康)形成状态 v1,并接受 stable、extended-stable、beta、dev。
- relation 只允许 equal、ahead、behind、unknown(未验证)、channel_mismatch;behind 才改变版本,equal 与 ahead 都执行完整 Invoke-Verify。
- Invoke-Verify 核对目标/已安装版本、配置 schema(数据结构)、Gateway RPC、模型状态与官方目录、默认模型/认证、自动更新开关、Telegram 通配符、18789 监听和 Update 任务 Disabled。
- behind 事务依次执行 backup(备份)/preflight(前检)/update(更新)/wait(等待)/verify(后验验证)。
执行流程
- 1
只读取得 current(当前版)、target(目标版)、channel(通道)、relation(版本关系)与 health(健康)。
- 2
unknown(未知)/channel mismatch(通道不一致)停止;equal(相同)和 ahead(领先)不安装、不降级,但都跑健康、配置、RPC、模型与任务完整后验。
- 3
behind(落后)先创建并验证官方备份。
- 4
前检通过后停止网关,按通道执行官方更新;extended-stable 只用 --channel,其他目标用 --tag。
- 5
重新拉起并等待新监听稳定。
- 6
核对版本、config(配置)、RPC、模型目录/默认路线和任务,输出 succeeded(成功)/failed(失败)/partial(部分完成)。
边界
- 不启用自动更新任务。
- 不在只读 status 中停止或安装。
- 不把备份路径或归档内容发布。
失败与恢复
- backup(备份)或 preflight(前检)失败
- 不进入更新,返回 failed_checks(失败检查)。
- 官方 update(更新)失败但版本未改变
- 尝试重新拉起原 Gateway,返回 failed(失败)。
- 版本改变但 wait(等待)/verify(后验验证)失败
- 返回 partial(部分完成),不伪造成功、不自动降级。
真实入口
tools/managed-component.ps1状态与更新事务
tools/_update_lib.ps1版本比较、通道、超时与原子 JSON(结构化配置)
openclaw_update.ps1人在边界授权后由 AI 调用的更新入口
如何验证
- 01:55—01:56 三次状态回读一致:current(当前状态)=2026.8.1、target(目标版)为空、stable、relation=unknown(未验证)、health=healthy。
- 更新状态机 Pester(PowerShell 测试框架)30/30,覆盖 equal/behind/ahead/partial,四通道解析,extended-stable 精确 --channel,以及 ahead 完整后验。
- 本轮没有执行真实 update、stop/start 或插件更新后验。
与其他模块的关系
更新前依赖备份模块,过程中使用 Gateway 生命周期,完成后重新核对模型和任务。
