v0.22.7 到手:174 个 PR 的补丁版,哪些变化你今天就会碰到


周四下午,你准备把团队几台开发机统一升到最新版。点开 release 说明,看到的是一段话加一句“完整策划稿随 v0.23.0 一起发”。这时候你要回答的不是“这次发布了什么”,而是三个更具体的问题:这次升完,同事的日常操作会不会变?哪些东西其实还没进这个版本?现在升还是等下一个?

这篇就按这三个问题来拆 v0.22.7。它于 2026 年 11 月 3 日发布,是一个纯补丁版,把 v0.22.6 之后的合并队列打成一个能安装、能回滚、能写进部署清单的版本号。

先看窗口有多大

官方给的数字测于提交 b200f5bc60e:

  • 174 个合并 PR
  • 581 个非合并提交,跨 554 个改动文件,+24,012 / −3,144 行
  • 29 个关闭 issue

和上一个版本比,这个窗口小了一数量级:v0.22.6 打包了 776 个 PR、3,448 个提交。所以 v0.22.7 的定位很明确——不是又一个功能大版本,而是把两周内修好的东西固化成一个稳定点,官方也直说了:从 v0.22.0 开始的完整策划说明会随 v0.23.0 补上,这个窗口不会被跳过。

数字之外,真正影响你的是下面这些已经进 tag 的改动。

已经在这个版本里的变化

1. Web Access 的 Start 按钮会说自己在干什么

桌面版的 Web Access 里点 Start,Hermes 要在一次请求里做三件事:构建 Webapp(第一次要好几分钟)、注册 Nous 登录、重启 gateway。以前整个过程只显示一个 “Starting”,转圈几分钟不动,看起来像卡死了;关掉设置面板再打开,还会再给你一个 Start 按钮,让你以为上一次没生效。

现在面板会写明当前在哪一步(building / setting up sign-in / restarting),并显示 Start 已经跑了多久。进度是后端按 gateway 记的,字段挂在 /api/webapp-access/status 的 start_progress 上,所以重开面板、开第二个窗口都能看到同一份进度;面板只在 Start 请求还没返回、且窗口在前台时每秒读一次状态。老版本后端没有这个字段时不会被反复轮询,只会给一句通用提示。

如果你团队里有人抱怨“Web Access 第一次点 Start 像死机”,这次升级能直接消掉这个疑惑。

2. 定时任务可以往群聊里发消息了

Bot Mode 的群聊现在是一个正式的投递目标。定时任务的 deliver 字段可以写:

deliver: room:<room_id>@<profile>

任务跑完,输出会作为一条消息发进这个房间,带任务名和 Scheduled 标签。关键细节是唤醒规则:只有被 @ 提到的机器人会真的开一轮对话。没有 @ 任何人的定时消息就只是留在房间里,不触发任何模型调用;@all 才是全员。任务失败的通知也会发进房间,但不会开一轮。

房间还多了两个成员都能看到的字段,在 Room settings 里编辑:

  • Purpose:这个房间是干什么的,最多 500 字符
  • Shared notes:共享笔记,最多 4 KB

两者都会渲染在每个成员每一轮提示词的开头。也就是说,你不需要在每条消息里重复“这是运维房间,出问题先看值班表”,写一次就够。

同一批还进了 lead 路由(默认关闭,按房间开启):房间里没人被 @ 时,可以指定一个 lead 机器人先判断该由谁接,然后房间里会出现一行很轻的提示,比如 ada gave this to linus,你能看见它把活派给了谁,也能纠正。默认行为没变——不留 lead 的房间,所有人依旧轮流各答一轮。对于“一个房间放五六个机器人,谁都能接话导致刷屏”的团队,这个开关值得试。

群聊的界面也统一了:房间现在是原生聊天那种单列布局,每个成员的状态实时显示在列表里,不用再靠猜谁在线。

3. Hermes Cloud 的 Telegram 卡片指向能用的一条路

如果你在 Team Gateway 上开 Telegram,以前卡片会把你带到一个只适用于单机场景的设置流程,最后卡在权限上。现在卡片指向 Portal 账号关联,这条路在 Team Gateway 下是通的。这条改动不大,但对“团队共享一个 bot”的部署方式来说是硬伤修复。

只在 main 上、下个版本才有的变化

这部分是升级时最容易踩的坑:你在 GitHub 上看到某个 PR 已经合并,就以为升级后就有——不一定。v0.22.7 的 tag 之后,main 上又落了一批改动,它们要等下一个版本:

  • 依赖安全告警清理:undici、zod、fast-uri、qs、pypdf、pyasn1 等一批满足发布年龄门槛的安全告警被清掉。
  • MCP OAuth 的 issuer 尾部斜杠:像 Otter.ai 这种 issuer 只差一个结尾斜杠的服务,登录现在能走完。
  • 远程桌面新会话不可用:用公开 ticket 连远程桌面时,新建会话会报 Session unavailable / invalid_params。原因是客户端只在带私有 native_dial 标记时才选新的 session-authority 协议,而 gateway 其实已经在 gateway.ready 里声明了 session_authority: true。修复后公开连接也按声明协商。
  • 技能库瘦身:7 个内置可选技能下线,Notion / Airtable / Shopify 改为直接信任厂商自己的技能仓库。
  • 桌面端最小化后的开销:最小化窗口不再做多余的流式渲染,空闲预览也会节流,语音检测在最小化时仍然工作。

判断一个 PR 在不在你装的版本里,最省事的办法是对着 tag 看祖先关系,而不是看合并时间:

git fetch --tags origin
git merge-base --is-ancestor <merge_commit_sha> v0.22.7 && echo "in tag" || echo "main only"

升级怎么走

按你的安装方式选一条:

# 命令行 / 安装脚本
hermes update

# Docker / Hermes Cloud
docker pull nousresearch/hermes-agent:stable

# Microsoft Store 版本
# 走商店更新,不跟随这个 tag

从安装包(.exe / .dmg)装的桌面版在这个版本里没有打包变化,会跟随下一个捆绑版本一起更新。

升级前建议留一份快照,尤其是 Windows 机器——理由不是“补丁版不安全”,而是升级流程本身会碰 state.db,有快照心里踏实:

hermes backup --quick

现在升,还是再等一周

三句话判断:

  • 你在用 Web Access 或 Bot Mode 群聊,升——这两块的体验差异是每天都能感觉到的。
  • 你只在命令行里跑单机 agent,没有依赖群聊和远程桌面,可以等下一个版本,把 main 上那批修复一起收进来。
  • 你在 TLS 拦截代理后面跑模型请求,先别急,看我们另一篇关于 SSL_CERT_FILE 的分析,那里有一个会影响所有模型调用的已知问题。

版本号只是打包方式。真正决定你要不要现在动手的,是这个窗口里有没有你每天都会碰到的那几个按钮。

相关阅读:v0.22.6 的窗口整理、Bot Mode 群聊指南、完整发版列表、安装与升级。