从 v0.16 到 v0.17,从 2026.6.5 到 2026.6.19,15 天,1383 个非合并提交,207 个新功能,812 个修复。
1. 为什么要升级:一个"拖延症患者"的自白
我承认,我是一个不擅长升级的人。
Hermes(我用的开源 AI Agent)每隔几天就会推一个新版本,我的处理方式永远是"能用就先不动"。直到前两天,我让 Agent 帮我检查版本,它甩回来一行字:
| |
整整落后了 15 天、近 1500 个提交。我打开 git log 想看看这半个月上游到底做了什么,结果滚了半小时都没滚完。
这下不能"再等等"了。我决定把这 1383 个非合并提交(去掉 merge commit 后的数字)啃下来,看看一个开源 AI Agent 这 15 天到底在忙什么——以及,它有没有偷偷长出我不知道的新能力。
2. 先看全景:1383 个提交都在改什么
我写了个脚本把提交按类型分类,结果挺出乎意料:
| 类型 | 数量 | 占比 | 说明 |
|---|---|---|---|
| fix | 807 | 58.4% | 修复,最大头 |
| feat | 207 | 15.0% | 新功能 |
| test | 93 | 6.7% | 测试补全 |
| chore | 83 | 6.0% | 杂务 |
| refactor | 60 | 4.3% | 重构 |
| docs | 42 | 3.0% | 文档 |
| perf/style/ci | 21 | 1.5% | 性能/风格/CI |
第一个判断:fix 是 feat 的 4 倍。这不是一个在"加功能"的项目,而是一个在"还技术债"的项目。说明 Hermes 经历过快速功能扩张期(0.13-0.16),现在进入打磨稳定期。对老用户是好事——意味着你升级后翻车的概率比之前低。
第二个判断:新功能分布非常有指向性。207 个 feat 里,桌面端(desktop)独占 57 个,加上 dashboard 13 个,光"客户端体验"就吃掉了三分之一。剩下的核心新能力集中在三个方向:多 profile 路由、Photon(iMessage 通道)、Cron 进化。
我把这三个方向和桌面端,单独拆开讲。
3. 桌面端大改版:57 个新功能的体感
desktop 这一块的 feat 数量是第二名 gateway 的 4 倍,是这半个月改动最猛的地方。我挑几个升级后体感最强的:
模型选择器搬到输入框了。以前选模型要去状态栏点,现在直接在输入框(composer)里切换,配合 effort/fast 预设,一键在"快速回答"和"深度思考"之间切。这个改动小但顺滑——聊到一半想换个更强的模型,不用跳出去。
Cmd+K 可以直接重启 Gateway。状态栏还会转圈反馈。听起来是个小功能,但对重度用户是救命的——以前重启 Gateway 要开终端敲命令,现在一个快捷键搞定。
子代理活动实时流到 watch 窗口。这个是我最喜欢的。Agent 在跑 delegate_task(派子代理干活)时,子代理的实时活动会流到独立的窗口里,你能一边看主代理,一边盯子代理在干嘛。调试多 Agent 工作流时,这等于把"黑盒"变成了"玻璃盒子"。
原生 OS 通知 + 完成提示音。每个类型的通知可以单独开关,Agent 跑完一段会响一声。长时间任务(比如让它写篇文章、跑个测试)终于不用一直盯着屏幕了。
窗口透明度滑块。Appearance 设置里新增,纯美观但很戳人——半透明悬浮窗配上深色壁纸,颜值党狂喜。
GPU 加速自动检测。远程显示时(比如 SSH 转发)自动关掉 GPU 加速,避免花屏。
4. Gateway Multiplex:一台机器跑多 Profile(最重磅)
这是这半个月最重磅的新能力,但藏得深,光看 commit message 你可能意识不到它有多重要。
5 个 phase 连环提交,名字都带"multiplex":
| |
翻译成人话:以前一台机器只能跑一个 profile(一套配置/身份),现在可以一台机器跑多个 profile,通过 /p/<profile>/ 路由分别接收 webhook。
这意味着什么?比如你同时有"工作号"和"私人号"两个微信、两个 Telegram、两套 API Key,以前要么开两台机器,要么开两个 Docker 容器。现在一个 Hermes 实例就能搞定,profile 之间凭证严格隔离(fail-closed),互不串台。
对个人用户可能用不上,但对多身份运营者(比如做私域的、做客服的、跨账号管理的)这是个质变。配合下面的 Dashboard 多 profile 管理,整个多账号体系终于不用搭积木了。
5. Photon:iMessage 通道终于完整了
Photon 是 Hermes 连接 iMessage 的适配器,这半个月拿了 11 个 feat,等于把这条通道从"能用"打磨到"完整对齐其他平台":
| 新能力 | 意义 |
|---|---|
| gRPC 原生 iMessage 通道(无 webhook) | 告别 webhook 中转,延迟更低、更稳 |
| 语音消息支持 | 终于能收发语音 |
| emoji 反应支持 | Agent 能识别和回应你的 emoji |
| 入站附件下载并内联 | 收到的图片/文件直接处理 |
| 用户手机号持久化展示 | 状态栏能看到是谁 |
| 群聊 @mention 门控 | 群里只有 @ 到才回应,不打扰 |
| 自动配置 allowlist 和 cron 通道 | 开箱即用 |
一句话:如果你是苹果生态用户,iMessage 现在是一个和 Telegram/Discord 同等公民的接入通道了。
6. Cron 进化:从"定时任务"到"自动化平台"
Cron(定时任务)这半个月拿了 9 个 feat,方向非常清晰——从"跑脚本"升级成"自动化平台"。三个亮点:
Chronos:NAS 中介的 scale-to-zero cron。这是企业级玩法——通过 NAS(网络存储)做中介,多个 cron 实例之间用 CAS(Compare-And-Swap)保证"最多触发一次",闲置时可以缩到零实例。对个人用户意义不大,但说明 Hermes 在认真做"多机部署"。
Cron Recipes:参数化自动化模板。官方预设了一批 cron 模板(比如"每天检查仓库更新"“每周总结对话”),你填几个参数就能用,不用从零写。
Suggested Cron Jobs:一个入口推荐自动化。系统会主动建议你"这件事可以做成定时任务"——这对新手友好,很多人根本不知道 Agent 能自动跑什么。
配合 dashboard 里新加的 SKILL.md 编辑器 + cron 任务选择技能的 UI,整个 cron 的配置体验从"改配置文件"变成了"图形界面点点点"。
7. Dashboard 13 个新功能:多 Profile 统一管理
Dashboard(Web UI)这半年的方向就一个词:统一。
| |
翻译:
- 一个浏览器窗口管所有 profile,全局切换器一键跳
- 每个 profile 单独配技能、工具集、MCP 服务器
- 图形化 profile 构建器(选模型 → 选技能 → 选 MCP → 完成)
- profile 可以从任意来源克隆(比如从另一台机器迁过来)
- Skills 页面直接编辑 SKILL.md,不用开终端
- cron 任务创建时可以直接选挂载哪个技能
对单 profile 用户:聊天侧栏多了 reasoning-effort 选择器(调节 Agent 思考深度)和 session 切换面板,操作更顺手。
对多 profile 用户:这是体验质变。以前管三个 profile 要开三个终端、记三套配置,现在一个 dashboard 搞定。
8. Skills 和 Memory:新技能 + 记忆批处理
新增技能:
simplify-code:3 个子代理并行做代码审查和清理payments系列(Stripe Link / MPP / Projects):支付相关- CLI 版 shop 技能(替代旧的 shop-app)
还能 diff 出你改过的官方技能——这个对老用户很实用:你魔改了某个技能后,官方更新了,系统能帮你找出你改了哪些地方,方便合并。
Memory 新增:
batch operations for single-turn memory updates:单轮对话里可以批量更新记忆,不用一条条加- 可配置的"后台记忆更新通知":Agent 后台整理记忆时会通知你
- OpenViking(一种记忆后端)的 setup UX 改进 + 手动配置路径
9. 升级实录:踩坑与判断
我按官方推荐用 hermes update -y 一键升级。整个过程:
| |
踩的坑:
- 退出码 130 不是失败。Gateway 重启时会 SIGHUP 父进程,导致
hermes update退出码是 130(“被中断”)。第一次看到我吓一跳,以为升级失败,其实正常——用hermes version和git rev-list HEAD..origin/main --count验证就行,count 应该是 0。 - 所有 profile gateway 都要重启。主 gateway 重启不够,每个 profile 的 gateway(比如我的 yuan profile)都要单独重启,否则会报
AttributeError: 'ToolRegistry' object has no attribute '_generation'这种"代码已经更新但进程还跑老代码"的错。 - 本地魔改要重新应用。我在
run_agent.py里改过 model_override(context length 配置),shell_hooks.py也改过。如果 stash apply 冲突,这些改动要手动重新打。
我的判断:
这 15 天的更新,本质上是 Hermes 从"功能扩张期"转入"打磨期"的标志。fix 是 feat 的 4 倍,说明团队在认真还债;新功能集中在三个清晰的方向——多 profile 统一管理、桌面端体验、cron 平台化——而不是东一榔头西一棒子。
如果你是个人单机用户,桌面端的体感提升最大(模型选择器、子代理窗口、原生通知)。
如果你是多账号运营者或小团队,Gateway Multiplex + Dashboard 多 profile 管理这一套组合拳值得专门升一次级——它能把你从"多容器/多机器"的运维泥潭里捞出来。
如果你正在评估"AI Agent 该不该上 cron 自动化",新加的 Cron Recipes 和 Suggested Cron Jobs 把入门门槛压到了历史最低。
升级有风险,但这次的风险比我预期的小。1480 个 commit 听起来吓人,但八成是 fix,真正的 breaking 改动很少。备份好本地魔改,跑一遍 hermes update -y,重启所有 gateway,基本就稳了。
技术债不会自己消失,但有人替你还了 807 条——这感觉还挺不错的。