想知道你那个 AI 助手到底是不是回事,最快的检验方法是——让它给你妈发条消息。
我不是开玩笑。2025 年大半年到 2026 年第一季度,我试过的所有"AI agent"都倒在同一道题上,倒法一模一样:它够不到一个普通人,在那个普通人实际在用的平台上。Telegram,能聊;Discord,没问题;iMessage?没动静。iMessage 是我家里所有人都在用的东西——也就是说,v0.9.0 之前,Hermes Agent 没办法给我妈发条短信。
2026 年 4 月 13 日,距 v0.8.0 给自己脑子打补丁过去整整五天,v0.9.0 把这事儿修了。同时还修了另外两件同样形状的事,跨整个网关跑了一轮安全审计,然后在五天里塞进了 269 个合并的 PR。release notes 把这一版的聊天平台总数标作十六个。两个月前这个数字还是七。
一个周六里着陆的三个平台
v0.9.0 一次发出三个新网关,每一个都是冲着已有名单里堵不上的一个洞去的。
第一个是 BlueBubbles(iMessage)。BlueBubbles 是这些年把 iMessage 接到外部世界用的那座开源桥;v0.9.0 直接对着它的 webhook 协议出了一份完整 adapter,连自动注册都做好,URL 都不用你手改。家里有台 Mac 在跑 BlueBubbles,你就有了一个能发 iMessage 的 Hermes Agent。
第二个是微信(WeChat),走原生 iLink Bot API。不是抓屏,不是 web 端模拟器——是真正的 bot API,支持流式输出和媒体上传。对在国内跑 Hermes 的人来说,这是"老外搞着玩的项目"和"我真能拿去部署的东西"之间的差别。
第三个是企业微信回调模式——企微"自建应用"那一侧的接入,配的是原子化的状态持久化,让企业部署在网关重启之后不会把用户晾在对话中间。"原子化状态持久化"这句话在 v0.9.0 的 release notes 里出现了三次。看得出来写 notes 的那位,被脏状态的 bug 折磨够了。
三个平台,三种完全不同的部署形态,一个版本。
给那些一看终端就烦的人开个网页 Dashboard
v0.9.0 真正改变"谁能用 Hermes"的另一项改动,是新的本地 Web Dashboard——一个跟 Hermes 安装一起跑的浏览器界面,把以前藏在 hermes setup 和 hermes model 后面的配置摆上桌面。在本地跑,不打电话回家。这是头一次,"我朋友不用终端"这个问题的答案,不再是"那让他学终端"。
也是悄悄间,从这一版起,"Hermes Agent 有图形界面"这句话不需要加脚注了。v0.11.0 会往 dashboard 上继续堆 i18n、主题切换、移动端适配——但地基是这一版铺的。
/fast、/debug,以及那一拨小到不起眼但缺了就难受的命令
v0.9.0 里有一批 slash 命令上线,最有分量的是 /fast。它把当前模型切到优先处理通道——前提是服务商有这种通道,发布时只有 OpenAI 和 Anthropic 走得通。这事儿讲起来不大,但第一次看着 Hermes 卡在一个工具调用上转圈的时候你就懂了:你打一个 /fast,停一拍,继续往前。
围着它一起来的:/debug 在任何网关里都能一发拉出诊断信息;hermes debug share 把 debug 包扔到 pastebin 上,让你贴一条链接而不是一整面墙的文字;hermes dump 给你一份能直接复制粘贴进 issue 或聊天框的安装摘要;/compress <focus> 让你压缩对话的时候顺手告诉 agent 哪条线索不能丢。
这些没一个是头条功能。但每一个都是"被砍掉之后你才会发现自己一直在用"的那种东西。
backup、import,以及那句"现在咋整?"的终结
两个新命令悄悄收掉了自托管 agent 里最难受的一类体验:hermes backup 和 hermes import 把整条配置迁移路径覆盖了。skills、sessions、memories、cron 任务、.env 值——全部能整体序列化出去,再整体读回来。
这种功能平时一点存在感都没有,直到你 VPS 起火那天,它给你省下一整晚。它也让三月份那篇"5 美元 VPS"的故事真的能搬家了。v0.9.0 之前,"换台机器跑 Hermes"意味着"从零搭一台新 Hermes,再祈祷自己没漏配什么"。v0.9.0 之后,就是一个 tarball。
Termux、代理,以及一拨不张扬的 provider
原生 Android/Termux 在 v0.9.0 里拿到了正经的安装流程和 TUI 优化。Termux 这条路不再是实验性分叉——它跑的是和 Linux、macOS 同一条经过完整测试的安装流。想在兜里那台手机上跑 agent?README 和 hermes 现在终于在"怎么装"这件事上口径一致了。
同一波里,统一代理支持也终于到位:SOCKS、Discord 专用代理、系统代理自动探测,所有平台上一致。蹲在企业防火墙后面跑自托管的人,从此不用再一个平台一个平台单独跟代理掰扯。
provider 这边,这一版还把 xAI(Grok)接成了一等公民 provider,原生 小米 MiMo 进来了,带 portal 请求支持的 Qwen OAuth 进来了,Voxtral TTS(Mistral 的音频模型)进来了。还有一个能通过 hermes plugins 切换的可插拔 context engine ——也就是说,组装上下文窗口这件事,不再是一个"你想换就得 fork 项目"的黑盒子了。
一个被一行话葬掉的破坏性变更
v0.9.0 的 breaking changes 章节很短,但值得读。/prompt slash 命令被砍了——release notes 里把它形容成"a prefix expansion footgun",前缀展开的自伤枪管。这大概是一个被弃用的功能能拿到的最诚实的一句墓志铭。LLM_MODEL 被标弃用,会自动迁移到新变量。
安全:是一轮加固扫尾,不是单点补丁
v0.9.0 跑了一轮 release notes 里直接叫全面安全加固的工作。清单读起来像一份审计 checklist 从头扫到尾:Twilio webhook 签名校验(堵掉一条短信侧 RCE 路径)、沙箱操作里的 shell 注入中和、git 参数注入防护、图像上传里的 SSRF 重定向守护、checkpoint manager 的路径穿越防护,以及 API server 的鉴权强制。
这种工作单独拎出来写不出博客。它在这一版变得重要,是因为 v0.9.0 也是 Hermes 第一次伸手进真正的消费级聊天平台——iMessage 和微信。一个能跑 shell 命令的 chatbot,从你把它指向一个手机号那一天起,威胁模型就变了。
看数字
269 个合并的 PR,24 位 contributor,跨 487 个 commit——五天。
这种节奏不是 v0.9.0 一个版本的事。v0.7.0 → v0.8.0 是五天。v0.9.0 → v0.10.0 会是三天。接下来一个月的形状,从这一版起就看得出来了:一摞按周节奏的发布,每一版都围着一个大得能配自己名字的主题打转。v0.9.0 的主题是平台。八天后,v0.11.0 会把人机界面整个掀掉重做。五周后,v0.14.0 会把"怎么装"这件事改写一遍。
---
我反复想起 BlueBubbles 那一段。v0.9.0 里写代码最多的一定是没人会注意到的那次传输层重构。代码最少的那一项里,iMessage adapter 算一个。但偏偏是后者,是我打电话告诉我妈的那个改动——因为它是让我服务器上的那个 agent,终于能够到我每天真的在跟她聊天的那个人的改动。
发"更多平台"这种 release 听起来从来都不激动人心,听起来就是一行行的 bullet。但"更多平台"仔细看其实是同一个形状的另一件事——更多能用上这个东西的人。v0.9.0 在一个周六下午里,加了三个进来。