发布渠道
OpenClaw 提供四个更新通道:
- stable:npm dist-tag
latest。推荐大多数用户使用。 - extended-stable:npm dist-tag
extended-stable。一个全新的、按支持月份滞后提供的包通道。它仅支持包,且安装仅在前台进行。当启用update.checkOnStart时,它会接收只读更新提示,包括直接安装最终 extended-stable 包,但绝不会自动应用。 - beta:按语义化版本顺序,来自 npm
beta和latestdist-tags 的最新版本。较旧的 beta 标签绝不会替换较新的 stable 发布。 - dev:
main(git)的移动头指针,包括从包安装切换时。main用于实验和活跃开发;它可能包含不完整的功能或破坏性变更。请勿在生产网关中运行它。
稳定构建通常先发布到 beta,在那里经过验证,然后在不提升版本号的情况下晋升到 latest。维护者也可以直接发布到 latest。dist-tags 是 npm 安装的权威来源。
切换通道¶
openclaw update --channel stable
openclaw update --channel extended-stable
openclaw update --channel beta
openclaw update --channel dev
--channel 控制更新,并在核心更新成功后将选择持久化到配置中的 update.channel。被拒绝或失败的核心更新会保留之前的通道。所选通道同时驱动两种安装路径:
| 通道 | npm/包安装 | git 安装 |
|---|---|---|
stable |
dist-tag latest |
切换到 latest 处的 npm 包 |
extended-stable |
解析公开的 npm extended-stable 选择器,验证所选的确切包,并安装该确切版本。失败时关闭,不会回退到 latest、beta 或 dev。 |
不支持:OpenClaw 保持检出不变,并要求你使用包安装 |
beta |
dist-tag beta,当 beta 缺失或较旧时回退到 latest |
切换到 beta 处的 npm 包,当 beta 缺失或较旧时回退到 latest |
dev |
切换到 Git 检出,构建它,并重新安装全局 CLI | 获取,将检出变基到上游 main 分支,构建,并重新安装全局 CLI |
显式的 --channel stable 或 --channel beta 会将 Git 安装切换为包安装。在具有先前存储的 stable 或 beta 通道的 Git 检出中,仅运行 openclaw update 则会选择对应的 Git 标签。对于这些 Git 标签更新,OpenClaw 会刷新分支,但不会向其配置的 refspec 添加 force,然后仅从发布远程强制刷新标签。保留的 branch.main.remote 设置优先,其次是 origin 或唯一配置的远程。如果存在多个远程且两者都未选择,请在重试前将 branch.main.remote 设置为发布 releases 的远程。重新创建的发布标签会替换其旧副本;仅本地标签会被保留。即使启用了 Git 的 fetch.pruneTags 设置,标签修剪也会被禁用。这些保证假设使用标准的分支获取映射;显式包含标签的自定义 remote.*.fetch 映射仍遵循 Git 的配置行为。常规 CLI 在允许更新之前会在私有仓库中检查这些 refs,因此被拒绝的更新不会更改已安装检出的 refs。
对于托管 Gateways,成功切换会在检查就绪状态之前将服务刷新到已验证的安装。被拒绝的切换或已验证的回滚会恢复之前的服务;未验证的恢复会使其保持停止以供检查。
对于 dev git 安装,默认检出为 ~/openclaw(当设置 OPENCLAW_HOME 时为 $OPENCLAW_HOME/openclaw);可用 OPENCLAW_GIT_DIR 覆盖。自动更新活动会固定其宣布的上游提交,因此即使 main 在倒计时期间前进,显示列表也会预览来自确切安装目标的至多五个提交。手动 openclaw update --channel dev 仍指向当前上游 main。
Tip
要并行保留 stable 和 dev,请使用两个单独的检出,并让每个网关指向其各自的检出。
一次性版本或标签指定¶
使用 --tag 为单次更新指定特定的 dist-tag、版本或包规范,而不会更改持久化的通道:
# Install a specific version
openclaw update --tag 2026.4.1-beta.1
# Install from the beta dist-tag (one-off, does not persist)
openclaw update --tag beta
# Switch to the moving GitHub main checkout (persistent)
openclaw update --channel dev
# Install a specific npm package spec
openclaw update --tag openclaw@2026.4.1-beta.1
说明:
--tag仅适用于包(npm)安装;git 安装会忽略它。- 标签不会被持久化;下一次
openclaw update会使用已配置的通道。 - 存储了
update.channel: "dev"的包安装仍会遵循一次性--tag,而不会切换到 Git。显式的--channel dev优先于--tag,并选择 Git 检出流程。 --tag main简写对于包安装会被拒绝,因为工作区检出不是一个自包含的包产物。请使用openclaw update --channel dev(包安装会切换到 git 检出)或使用安装程序的 git 方法重新安装:curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --version main。- 降级保护:如果目标版本早于当前版本,OpenClaw 会提示确认(可用
--yes跳过)。 - Extended-stable 始终使用其已验证的确切包目标。它不是一次性
--tag extended-stable的别名,并且--tag不能与有效的 extended-stable 通道组合使用。 --channel beta与--tag beta不同:通道流程在 beta 缺失或较旧时可以回退到 stable/latest,而--tag beta在那一次运行中始终指向原始的betadist-tag。
试运行¶
预览 openclaw update 将执行的操作,而不进行任何更改:
openclaw update --dry-run
openclaw update --channel beta --dry-run
openclaw update --tag 2026.4.1-beta.1 --dry-run
openclaw update --dry-run --json
试运行会报告有效渠道、目标版本、计划执行的操作, 以及是否需要降级确认。
插件和渠道¶
使用 openclaw update 切换渠道时,也会同步插件来源:
dev会将已安装且存在捆绑对应版本的插件切换回 其捆绑(git checkout)来源。stable和beta会恢复通过 npm 安装或 ClawHub 安装的插件 包。extended-stable会将符合条件的官方 npm 插件,如果其意图为 bare/default 或latest,解析到精确的已安装核心版本。它不会在运行时查询 插件的@extended-stable标签。版本绑定的运行时插件在修正版本中使用 基础发布群组(例如,YYYY.M.P-2使用插件YYYY.M.P)。- 通过 npm 安装的插件会在核心更新完成后更新。
beta对受管理的 npm 插件使用相同的beta/latest中最新者规则, 包括@openclaw/codex等官方插件。精确版本和范围 固定值会保留其选择器。启动修复会保留已经是最新版本的插件, 而不是重新安装它并要求再次重启。
检查当前状态¶
显示当前渠道(以及决定该渠道的来源:配置、git 标签、
git 分支、已安装版本或默认值)、安装类型(git 或包)、
当前版本和更新可用性。
它还显示最后一次记录的更新运行,包括失败的获取。普通的
openclaw status 使用缓存的 Git 引用,而不执行获取。如果当前状态目录中最新记录的
更新获取失败,它会显示
update check stale: last update fetch failed,并附上失败时长和简短
原因,而不是 up to date。领先/落后计数会标记为 cached。
后续一次带有已完成获取的更新运行会清除该警告,即使更新的其余部分
被跳过、失败或回滚。手动 git fetch 不会
清除已记录的警告。使用 openclaw update status 进行新的可用性
检查,或再次运行 openclaw update。openclaw status --deep 也会为该检查执行获取,
而不会更改记录。
标签最佳实践¶
- 为希望 git checkout 落地的发布打标签:常规稳定版使用
vYYYY.M.PATCH,补丁号 为1到32, beta 版使用vYYYY.M.PATCH-beta.N。诸如-alpha.N、-rc.N和-next.N等命名预发布后缀 不是稳定版或 beta 目标。 - 旧版数字稳定标签,例如
vYYYY.M.PATCH-1和v1.0.1-1,出于兼容性 仍被识别为稳定 git 标签,但每月补丁33及以上除外。这些补丁保留给 extended-stable;最终标签和 数字修正变体永远不会是常规稳定目标或 beta 的稳定 回退。Extended-stable 仍然是仅包的更新渠道。 vYYYY.M.PATCH.beta.N(点分隔)也出于兼容性被识别; 优先使用-beta.N。- 保持标签不可变:永远不要移动或重用标签。
- npm dist-tags 仍然是 npm 安装的权威来源:
latest-> 稳定版extended-stable-> 最近受支持月份的包发布beta-> 候选构建或 beta 优先的稳定构建dev-> main 快照(可选)
macOS 应用可用性¶
Beta 和 dev 构建可能不包含 macOS 应用发布。这没关系:
- git 标签和 npm dist-tag 仍可单独发布。
- 在发布说明或变更日志中注明“此 beta 没有 macOS 构建”。
相关¶
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw