81 个 PR 打成一个 tag,说明里那句"这里故意不写"才是重点


你看到更新角标,点进去,页面上只有一段话:这是个补丁版本,把 v0.22.4 以来合入的约 81 个 PR 打成了一个稳定版,整理好的完整说明会随 v0.23.0 一起发。没有改动列表,没有亮点,也没提你等了两周的那个修复到底进没进。于是升级前唯一要紧的问题就悬在那儿没人回答:今天升,还是再等等?

先给结论:这个 tag 是个存档点,不是一次功能发布——而发布说明自己也写了,其中一部分“这里故意不细写”。恰恰是这几行被省掉的内容最有信息量。下面就写它们,再补上数字和四种装法各自的升级路径。

补丁版不是功能版,它是个存档点

Hermes 的版本大致分两类。功能版会有名字、分章节、配截图。补丁版则是把上一个 tag 之后合入的所有东西收在一起,切出一个新的稳定点,让四个分发渠道——CLI 和安装脚本用的 GitHub release、Microsoft Store 应用、Docker、Hermes Cloud——跑的是同一份代码。补丁版里没有哪个改动是“为这个版本设计的”,它就是几天的活被打包、盖章。

这一包有多大,在 commit bf0203a794a 处的统计是:

  • 231 个非合并提交,动了 804 个文件(+35,212 / −17,885)
  • 81 个已合并 PR,关掉 30 个 issue

对比两天前的 v0.22.4:14 个非合并提交、82 个文件、13 个 PR,10 月 21 日发布。同一个团队、同一条渠道,量级差六倍。这个差距就是本文的由来——22 日到 23 日凌晨合入的那些东西没有单独的说明,它们被打包了。

还有个时间细节,不然对照资料会以为哪边写错了:发布说明里写的 Release Date 是 2026 年 10 月 22 日,而 GitHub 打这个 tag 的时间是 10 月 23 日 05:28 UTC。两个都对,那一刻是加州时间的 22 日傍晚。

三万五千行的 diff、却没有功能列表,说明它主要由重构、功能搬去插件、依赖更新和一堆小修组成。这正是后面几节要讲的。

这四件事,我们站上已经写过

这个窗口里有四件事各自成篇,这里不复述,一条一句,附上链接备查:

下面这些,是剩下那部分。

说明里“故意不写”的部分

发布说明原话的意思是,这一窗里有东西“故意不在这里细写”。读那份清单会发现,这不是谦虚,而是承认这些改动写成句子才讲得清。它们大致分三组。

它开始替你按住一个自己不肯装的版本

第一组是更新行为,对纯 CLI 用户来说这是整篇里最实用的部分。

  • 一个 Hermes 拒绝接受的 stable release,现在会被按住不提供,而不是摆在你面前让你点。以前的情况是:检查说有新版,你点了,更新又拒绝装——这个循环不只浪费一次点击,更糟的是它教你别信那个角标。现在干脆不出现。
  • Windows 上,Python 重新 pin 之后 hermes update 不会再卡在旧 launcher 上。 重新 pin 会改变 launcher 该调哪个解释器,卡住的正是那个旧 launcher,安装就停在半新半旧的状态。
  • .git 损坏之后,hermes update 能恢复被暂停的 gateway。 这是整个版本里最不体面的一条,可能也是最省下午的一条:仓库坏掉之后 gateway 会被搁在那儿,现在的修复路径会顺手把它拉起来,而不是先让你自己去修 git。

三件事有个共同点:都不加任何参数,只减少“卡在一个说不清的状态里”的可能。

core 继续变薄:又是四个东西搬去插件

第二组是内置功能继续往插件搬。

hermes import-agent、OpenClaw 迁移、hermes mcp serve、Singularity 后端,全部从 core 移到插件。setup 现在会发现你已经装了别的 agent,并主动把导入器摆出来,而不是等你自己去找。

如果你升级后发现上周还在用的命令不见了,先去插件目录看一眼,别急着下“被删了”的结论。这个建议本身不新——v0.22.4 搬的就是同一批命令——但到 v0.22.5,这件事已经不像一次性清理,而像架构了。

同一组里还有:插件的斜杠命令现在可以先让你挑一个选项再继续。 以前一条斜杠命令就是固定行为,现在它可以中途停下来给你选项。界面上是个小改动,对“插件能做成什么”却是大改动:一条命令可以有分支,而不只是个宏。

再有一条老老实实挂着实验标签的:webhook 模式的 MCP 事件客户端。别现在就拿它搭工作流。

桌面端:能拖拽固定、有等级徽章、群聊说清谁在干活

第三组是桌面端,改动都不大,但每天都碰得到。

  • 侧栏可以拖拽固定。 条目能拖到你想要的位置,而不是由应用决定它待在哪。
  • 一键装插件,带等级徽章。 在应用里装插件是一个动作就完了,点之前徽章会告诉你拿到的是哪一档。
  • Electron 44、Pillow 13,以及一批依赖安全更新。 没什么要配的,升它的理由就是不想继续跑旧版本。
  • 群聊又能显示哪个 bot 正在干活了。 这是个回归修复。一个房间里几个 bot 同时在,那个指示器是唯一能判断谁在回答的东西;它一没,群聊给人的感觉不是慢,而是坏了。
  • 对话的工作目录消失时,现在会给清楚的提示。 这种情况下的模糊报错,会让人先去查模型、查网络、改 prompt,最后才想到看看那个文件夹还在不在。
  • 长的 Claude DirectSDK 回答不再被 stall 计时器截断。 如果你在慢一点的 provider 上遇到过回答说到一半没了,这条就是给你修的。

升级:四种装法,四条路径

你怎么跑 Hermes v0.22.5 怎么到你手上
CLI 安装 hermes update,或者重跑安装的一行命令
Microsoft Store 应用 走 Store 更新
用安装包装的桌面端(.exe / .dmg) 这个版本没有变化,等下一个打包版本
Docker / Hermes Cloud 用 nousresearch/hermes-agent:stable(或 :latest)

第三行最容易被误读:一个同时发到 CLI、Store、Docker 和 Cloud 的补丁版,不一定重新打 .exe 和 .dmg 安装包,那两个跟着打包版本的节奏走。所以桌面用户可能跑完更新、看着 CLI 变成 v0.22.5,桌面端还停在上一个 build——这是正常行为,不是升级失败。

什么时候该等 v0.23.0

如果你要的是“故事”,等。这一整个窗口的整理版说明——覆盖 v0.22.0 以来的一切,含亮点、按功能分区、完整贡献者名单——会随 v0.23.0 一起发。一个 rollup tag 只能告诉你什么动了,永远不会告诉你为什么有人要做它。

如果你要的是“别再被恶心到”,现在就升。命中下面任意一条就值得动:更新检查给你一个点了又拒绝的版本、Windows 安装卡在旧 launcher、.git 坏掉后 gateway 被搁着、Claude DirectSDK 的长回答被截断、群聊看不出哪个 bot 在干活、会话因为工作目录没了而失败。这不是功能清单,但是一个今天动手的合理理由。

还有句实话:两天 81 个 PR、没有配套说明,不是危险信号,而是一个这种节奏的项目让五条分发渠道保持同一份代码的方式。说明是有的,只是排在下一个功能版。读一个这样的 tag,就是那份说明到来之前的替代品。