官方一口气扩到 18 家平台!Hermes v0.20.1 里 13 个藏得最深的提效点


昨天你跑了 hermes update,终端里弹出一行 “Updated to v0.20.1”,然后就没了下文。这很正常——v0.20.1 是个安静的补丁版:官方 release notes 只有几行,说完整文档“随 v0.21.0 发布”。

但它背后是 656 个合并的 PR、1,444 个提交、481 个 issue 关闭。这一大批改动里,藏着 13 个官方没宣传、但天天在帮你省时间省钱的提效点。今天把它们全部翻出来。

先看最大的变化:官方扩到 18 家平台

v0.20.x 期间,官方 messaging 文档的平台清单扩到了 18 家——全部由同一个 gateway 进程统一接入:

Telegram、Discord、Slack、WhatsApp(个人版 + Cloud API)、Signal、Email、Matrix、IRC、QQ、元宝(Yuanbao)、飞书(Feishu)、微信(Weixin)、iMessage(BlueBubbles)、LINE、钉钉(DingTalk)、Google Chat、SMS。

不管你在哪家平台,hermes gateway 一个进程全部搞定,对话无缝衔接。

13 个藏得最深的提效点

A. 装得更快、更稳(2 个)

1. Windows 安装终于不再“卡死”了(#85529 / #85539 / #81390)

之前 Windows 安装器在 “Installing Node.js dependencies” 阶段可能无限期挂起——npm install 和 Chromium 下载都没有时间上限,有用户挂了一整夜(计时器显示 744:38)。现在:

  • 每个步骤都有墙钟超时,失败就明确报错,不再假装成功;
  • 更新时显示 “Already up to date” 也不再跳过修复损坏的依赖;
  • 安装器崩溃后能自动恢复。

2. 模型目录刷新不再阻塞任何热路径(#85555)

models.dev 目录刷新改用 ETag 条件请求:只有内容真的变了才重新下载;没网时走缓存热路径,启动和模型切换都不会再傻等网络。

B. 省 token、省钱(2 个)

3. Anthropic prompt 缓存悄悄“复活”(#85554)

如果你用自定义 Anthropic 兼容端点(api_mode: anthropic_messages),v0.20.0 期间 prompt 缓存可能静默失效——现在每个模型可声明 prompt_caching: true|false,连裸别名(如 fableclaude-fable-5)都能重新拿到 cache_control 断点。长对话的 token 成本立省。

4. context_length 缓存不再“投毒”(#85507 / #85509 / #85506)

一个损坏的缓存(context_length: 0)会污染整条解析链,让压缩器和所有显示永远拿到 0。现在:非正值一律拒绝写入、缓存原子写入、过期的 32K 元数据(MiniMax/Kimi 那类)直接丢弃重查。你的上下文窗口数字从此可信。

C. 会话恢复(1 个)

5. 恢复会话时还原“当时用的模型”(#85261 / #85558)

以前 hermes --resume/resume 恢复会话,模型会悄悄回退到配置默认值——你可能根本不知道昨晚用的是 Grok,今天恢复却在用别的模型。现在恢复时还原会话实际使用的模型、provider 和端点;/model 切换也会把完整路由写进会话记录。

D. CLI / 桌面输入体验(3 个)

6. CLI 输入冻结,现在自己会好(#85630)

终端状态漂移回 cooked 模式时,CLI 会“停止接收输入”——以前只能外部 stty 抢救。现在 CLI 检测到漂移自动自愈,不用再折腾。

7. 建议条(suggestion pills)三连修(#85661 / #85698 / #85091)

  • 建议条等你说完一个词再触发,不再出现“你提到仓库名,它就弹 use skill 建议”的误触发;
  • MCP 连接目录翻倍以上(之前只覆盖 8 家厂商);
  • 修掉了“点过一次就变成死按钮”的幽灵问题。

8. 阻塞提示时打字不再丢失(#85045 / #84971)

桌面端在弹确认框时输入的消息,会在下一回合自动执行;排队的提示也会并入当前回合——不会再出现“我明明输了,它却没反应”。

E. 网关 / 平台(3 个)

9. cron 告警开始“说真话”(#85536 / #85508)

以前脚本任务的失败可能被报成“provider 错误”(还误匹配过 429 数字)。现在 no_agent 和脚本失败、超时、回退链、漂移都如实上报;漂移告警每个任务只响一次,不再每 tick 轰炸你。

10. 语音/唤醒不再卡住整个网关(#85438)

voice.toggle / record / ttswake.start / status 改走池化路由——STT 懒安装(faster-whisper,约 50MB、超时 300 秒)不会再阻塞 WebSocket 发送,语音指令和大模型回复互不抢道。

11. Slack 原生直播卡片(#85476)

Slack 上的回复现在用原生 live-typing 流式展示,可选开启 plan/task 进度卡片——你在 Slack 里也能看到“它在想什么、做到哪一步”。

F. 工具与数据安全(2 个)

12. 图片生成不再绕过你的 provider(#85520)

image.generate 的 WebSocket 处理器此前直接调用内置 FAL 实现,绕过你配置的第三方图片 provider 和 Krea 路由——有插件用户因此拿到错误的结果。现在统一走 provider 分发器,你配置谁就是谁。

13. state.db 自愈:数据库文件被换掉也能活(#84885 / #84886 / #84881)

  • 底层数据库文件被替换时,自动一次性重连自愈,不再永久卡死等重启;
  • 瞬态 EIO 错误重试 4 次;
  • hermes sessions recover --allow-partial 现在能捞回以前会静默丢掉的尾部行,还有 lost_and_found 兜底通道;
  • WAL checkpoint 全面改用 PASSIVE 模式,不再 TRUNCATE。

(这条和之前 798 条消息“失忆”事故 的修复一脉相承——数据库层又加固了一圈。)

怎么升级

hermes update

升级后建议顺手跑一次 hermes doctor 确认一切正常,再 hermes gateway 重启网关让平台改动生效。

写在最后

v0.20.1 最大的特点就是“闷声干活”:没有新功能发布会的排场,但 656 个 PR 里全是这类“你迟早会用到”的修复。平台扩到 18 家,加上这 13 个提效点,这就是一个值得所有长期用户更新的版本。

想深入了解相关命令?看看 hermes updatehermes sessionshermes cronhermes model 的命令参考;上一个正式版的完整解读见 v0.20.0 发布记录