官方一口气扩到 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,连裸别名(如 fable → claude-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 / tts 和 wake.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 update、hermes sessions、hermes cron 和 hermes model 的命令参考;上一个正式版的完整解读见 v0.20.0 发布记录。