Hermes 0.17 版本更新实测:15 天 1383 个 commit,这几个新功能最值得升

Hermes 0.17 15 天更新 1383 个非合并提交,207 个新功能集中在桌面端体验、Gateway Multiplex(多 Profile 路由)、Photon(iMessage 通道完整化)和 Cron 平台化。fix 是 feat 的 4 倍,说明项目进入打磨稳定期。

从 v0.16 到 v0.17,从 2026.6.5 到 2026.6.19,15 天,1383 个非合并提交,207 个新功能,812 个修复。

1. 为什么要升级:一个"拖延症患者"的自白

我承认,我是一个不擅长升级的人。

Hermes(我用的开源 AI Agent)每隔几天就会推一个新版本,我的处理方式永远是"能用就先不动"。直到前两天,我让 Agent 帮我检查版本,它甩回来一行字:

1
2
3
落后提交数:1480 commits
最新版本:v0.17.0 (2026.6.19)
本地版本:v0.16.0 (2026.6.5)

整整落后了 15 天、近 1500 个提交。我打开 git log 想看看这半个月上游到底做了什么,结果滚了半小时都没滚完。

这下不能"再等等"了。我决定把这 1383 个非合并提交(去掉 merge commit 后的数字)啃下来,看看一个开源 AI Agent 这 15 天到底在忙什么——以及,它有没有偷偷长出我不知道的新能力。

2. 先看全景:1383 个提交都在改什么

我写了个脚本把提交按类型分类,结果挺出乎意料:

类型数量占比说明
fix80758.4%修复,最大头
feat20715.0%新功能
test936.7%测试补全
chore836.0%杂务
refactor604.3%重构
docs423.0%文档
perf/style/ci211.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":

1
2
3
4
5
multiplex phase 0 — config flag, profile enumeration
multiplex phase 1 — HTTP-inbound /p/<profile>/ routing (webhook)
multiplex phase 2 — fail-closed profile credential isolation
multiplex phase 3 — secondary-profile adapter registry + conflict detection
multiplex phase 4 — lifecycle guard + per-profile observability

翻译成人话:以前一台机器只能跑一个 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)这半年的方向就一个词:统一

1
2
3
4
5
6
7
unify multi-profile management — one machine dashboard, global profile switcher
profile-scoped skills & toolsets management
full-featured profile builder (model + skills + MCPs)
clone profiles from any source
SKILL.md editor on Skills page + attach-skill selector in cron modals
reasoning-effort picker to the chat sidebar
session switcher panel on the Chat tab

翻译:

  • 一个浏览器窗口管所有 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 一键升级。整个过程:

1
2
3
4
5
6
1. git stash --include-untracked   # 保存本地改动(含 mempalace 插件)
2. git reset --hard origin/main    # 强制同步上游
3. git stash apply                 # 恢复本地改动
4. pip install -e ".[all]"         # 更新依赖
5. skill sync                      # 同步技能
6. gateway restart                 # 重启网关

踩的坑

  1. 退出码 130 不是失败。Gateway 重启时会 SIGHUP 父进程,导致 hermes update 退出码是 130(“被中断”)。第一次看到我吓一跳,以为升级失败,其实正常——用 hermes versiongit rev-list HEAD..origin/main --count 验证就行,count 应该是 0。
  2. 所有 profile gateway 都要重启。主 gateway 重启不够,每个 profile 的 gateway(比如我的 yuan profile)都要单独重启,否则会报 AttributeError: 'ToolRegistry' object has no attribute '_generation' 这种"代码已经更新但进程还跑老代码"的错。
  3. 本地魔改要重新应用。我在 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 条——这感觉还挺不错的。