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 --version或hermes -V - 影响:旧脚本、CI、文档里写
hermes version的全部会直接挂 - 修复:全局替换
hermes version→hermes --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 落盘
普通人不需要关心这些,知道"修了一堆小坑,这次升级比之前稳"就行。
如果你觉得本文有用,请点赞,收藏,转发
你有什么问题,请留言,我来帮你解答。
← 返回博客列表