Hermes Agent v0.20.6 升级指南:6 个补丁全是 update 流程硬化,普通人只看这 4 件事

发布于 2026-08-29 03:48

Hermes Agent v0.20.6 升级指南:6 个补丁全是 update 流程硬化,普通人只看这 4 件事

版本:Hermes Agent v0.20.6 (2026.8.27)
基准版本:v0.20.0 (2026.8.3)
实测环境:Termux / Android 15,Python 3.13.13


先给结论

v0.20.0 → v0.20.6 一共发了 6 个 patch 版本(0.20.1 / 0.20.2 / 0.20.3 / 0.20.4 / 0.20.5 / 0.20.6),这 6 个版本几乎没有新功能,全部在改 hermes update 自身的可靠性

跟 0.19 → 0.20 那波"Profile 共享 / 多标签 / 凭据池"不一样,这次是基础设施硬化。普通人只需要知道 4 件事,其他都是给运维和开发者看的。


一、版本脉络(6 个 patch 全在修升级)

版本 发布日期 性质 一句话总结
v0.20.0 2026-08-03 minor Profile 导出导入、Desktop 多标签、ctx.os 插件门面、凭据池硬化、Cron 修复
v0.20.1 patch 内部小修
v0.20.2 2026-08-16 patch 显式提示升级中偷偷改的 config
v0.20.3 2026-08-16.2 patch 修复 session 句柄泄漏
v0.20.4 2026-08-18 patch Desktop release 版本 nanostores 1.4.2 修复
v0.20.5 2026-08-19 patch hermes version 子命令合并到 --version、升级收据、Fleet 版本对账、sibling profile 一起迁移、--plan 预览、ZIP 保留 release 目录
v0.20.6 2026-08-27 当前 nanoid 安全告警 bump、Windows resume token 不再误判 fleet runtime、被中断的 update 续跑

看着是 6 个版本,核心变化其实集中在 0.20.5 那一波(0.20.5 一个版本顶 5 个提交)。0.20.6 主要是安全补丁和续跑修复。


二、6 个 patch 里普通人最该关注的 6 件事

按"升级时会碰到 / 升级后会受益"排序,不是按时间。

1. hermes version 子命令被砍了,只剩 hermes --version

  • 来源:0.20.5 (commit e69b8e561d)
  • 改:输入 hermes version 会报"未知子命令",必须用 hermes --versionhermes -V
  • 影响:旧脚本、CI、文档里写 hermes version 的全部会直接挂
  • 修复:全局替换 hermes versionhermes --version

2. hermes update 现在会"交作业"——结构化收据 + Fleet 版本对账

  • 来源:0.20.5 (commit 1d74833d8d) 引入 update_receipt.py
  • 改:升级完落一份 JSON 收据到 ~/.hermes/logs/update_receipts/latest.json,记录每一步成败、哪些 gateway 没重启起来
  • 升级后屏幕会打"Fleet version matrix"——所有 profile 下的 gateway 实际跑的是哪个版本,跟刚升级的代码对一遍,有没升上去的 gateway 会高亮,直接 exit 1
  • 影响:之前"升级后某个 gateway 默默挂掉"现在会显式报出来。别再忽略最后那段红字,真出问题红字会告诉你哪个 gateway 没起来

3. 多 Profile 终于一起升级,不再"部分漂移"

  • 来源:0.20.5 (commit 706f33d424) 修 _migrate_sibling_profile_configs_
  • 改之前:你装了多个 profile,hermes update 只迁移当前 profile 的 config.yaml,其他 profile 留着旧 _config_version 不动,新代码读到旧 schema 直接崩
  • 改之后:所有 profile 一起跑非交互式迁移;prompt-requiring 的设置(比如需要你确认的项)留给该 profile 下次交互式启动再问
  • 影响:如果你只有一个默认 profile,这条与你无关;多 profile 用户(用 hermes --profile xxx 切过的、用过 /export /import 的)升级后第一次启动会看到其他 profile 也在自动迁移,别中断

4. 桌面 ZIP 升级不再清空已编译好的 desktop app

  • 来源:0.20.5 (commit 01c14ad7f3) 修了 #70337 / #87331
  • 改之前:Windows ZIP 模式升级会把 apps/desktop/release 整个擦掉再装,等于每次升级桌面端都要重编
  • 改之后:打包前先把 release/ 目录 graft 进去,跟随同一个原子回滚机制
  • 影响:只对 Windows ZIP 用户有意义。Mac / Linux 用 curl|sh / pip install 的完全不受影响

5. 升级中"静默修改的 config"会显式提示

  • 来源:0.20.2 (commit bd0586e062)
  • 改之前:纯版本号 bump(代码没变、只 bump 版本号)的 update 会偷偷改 config,不告诉你
  • 改之后:会把"改了什么"打到屏幕上
  • 影响:升级时多看几眼输出,有 Mutated config: 之类的字样就心里有数

6. hermes update --plan 只看不动的预览模式

  • 来源:0.20.5 (commit 0aecadc17c)
  • 改:跑一次 --plan,会列出"全场 gateway inventory + 升级计划",不改任何东西、不重启任何东西
  • 影响:生产环境升级前先 --plan 看一眼,确认要重启哪些 gateway 心里有数再真升

三、普通人升级只看这 4 件事

第一件:升级前先看一眼版本号

hermes --version
# 预期看到:Hermes Agent v0.20.0 (2026.8.3) Up to date
# 或者:Hermes Agent v0.20.6 (2026.8.27)

第二件:旧脚本里的 hermes version 全局替换成 hermes --version

不替换的话,0.20.5+ 直接报"未知子命令"。这条不致命但会卡 CI 和定时任务。

第三件:升级时别 Ctrl-C

这次 0.20.5~0.20.6 修了一堆"中断后恢复"的逻辑(hermes update 被中断能续跑、Windows gateway 重启加固、resume token 不再被误判),但仍没修到 100% 安全。生产环境跑升级前,先 hermes update --plan 看一眼,确认要重启的 gateway 清单,再 hermes update 真升。

第四件:升级后多看一眼最后那段输出

0.20.5 之后 update 收尾会打"Fleet version matrix"。有红字就别关终端,它告诉你哪个 gateway 没升上去,比"升级完看着没事,一周后某个 bot 突然不响应"强一万倍。如果你不确定红字在说啥,把 ~/.hermes/logs/update_receipts/latest.json 拿出来对照。


四、分平台升级命令

Linux / macOS / WSL2

# 1. 升级前预览
hermes update --plan

# 2. 升级
hermes update

# 3. 验证
hermes --version    # 应到 v0.20.6

# 4. 跑一次健康检查
hermes doctor

Windows(原生 PowerShell)

# 优先用 hermes update,别手动覆盖文件
hermes update --plan
hermes update
hermes --version

如果用 ZIP 包,0.20.5+ 升级不会再清空 apps/desktop/release(0.20.5 之前会)。

Termux / Android

# 不要用 curl|sh —— 这次 0.20.6 还是会从源码编译,卡死风险照旧
# 直接走 pip,干净利落

# 1. 升级前先关掉后台 hermes 进程
pkill -f "hermes" || true

# 2. 升级
pip install --upgrade hermes-agent==0.20.6

# 3. 第一次跑 hermes --version 会触发"finish install",等它跑完别打断
hermes --version
# 预期:Hermes Agent v0.20.6 (2026.8.27) Up to date

# 4. 如果终端里没卡顿、命令能正常补全,再起 TUI
hermes --tui

注意:Termux 上的 hermes update 走的是 git 拉取路径,在 Android 上 90% 会卡在编译那步。Termux 用户就用 pip,别犹豫

Docker 镜像用户

镜像里是 baked .hermes_build_sha,0.20.5 之后 hermes --version 会同时显示 pyproject 版本号 + bake SHA。核 SHA 比对一致就说明用的是最新镜像。


五、回滚方案

万一升级出问题:

# Termux
pip install hermes-agent==0.20.5   # 上一稳定 patch
# 或者回到 0.20.4
pip install hermes-agent==0.20.4

# 其他平台
hermes update --version v0.20.5
# 或 v0.20.4

# 验证
hermes --version

# 如果 config 也坏了,回滚代码后单独再迁一次
hermes config migrate

回滚后如果还看到行为异常,清掉 ~/.hermes/logs/update_receipts/latest.json,下次 update 会重新生成收据,有助于判断到底是哪步没走完。


六、可以跳过的"基建"修复

  • 0.20.6 nanoid 依赖 bump,过 GHSA-2v37-7h3g-55p8 安全告警
  • Windows gateway 重启流程加固、resume token 不再被误判成 fleet runtime
  • hermes update 在被中断后能恢复 fleet 重启
  • 大量 desktop / TUI 滚动 / 异步 lint 的性能与抖动修复
  • execute_code 增加了远程 kernel 主机(Modal / SSH / Docker 后端)的会话持久化,以及 stdout 截断后的 spillover 落盘

普通人不需要关心这些,知道"修了一堆小坑,这次升级比之前稳"就行。


如果你觉得本文有用,请点赞,收藏,转发

你有什么问题,请留言,我来帮你解答。


← 返回博客列表