Hermes v0.17.0 最值得升级的理由:一个进程,管所有 Profile

Hermes v0.17.0 最值得升级的理由:一个进程,管所有 Profile
青萍叙事前言
2026 年 6 月 19 日,Hermes Agent 发布了 v0.17.0 版本,代号 The Reach Release(触达版)。
这个版本从 v0.16.0 算起积累了约 1,475 次提交、800 个合并 PR 和 300 多个修复的 issue,245 位社区贡献者参与开发。
版本名”触达”的含义很直白:扩展 Agent 能到达的地方,包括新的消息渠道、更深的工具集成,以及面向团队部署的能力增强。
其中最值得关注的架构改进,是一个 Gateway 进程同时服务多个 Profile 的多路复用功能。
版本概览
v0.17.0 的更新覆盖面很广,挑几个主要方向:
- iMessage 支持,通过 Photon Spectrum 接入,不再需要一台 Mac 做中继
- 后台子代理,delegate_task 支持 background 模式,派发任务后继续做别的事
- 图片编辑,image_generate 工具支持图生图,传入原图加提示词即可修改
- Automation Blueprints,用问答方式设置定时任务,不用背 cron 语法
- Dashboard Profile Builder,浏览器里选模型、选技能、挂 MCP,直接构建完整 Profile
- memory 批量操作,原子化的 add/replace/remove 批处理,一次调用完成多步编辑
- WhatsApp Business Cloud API,官方适配器,不用再维护 Baileys 桥接进程
- Telegram 富文本,Bot API 10.1,回复消息原生渲染格式
这些功能每一个都值得单独聊,但这篇文章的重点在 Gateway 多路复用。
单 Gateway 多 Profile
之前的问题
Hermes 的 Profile 机制允许在同一台机器上运行多个独立的 Agent 实例。
每个 Profile 有自己的 config.yaml、.env、SOUL.md、记忆、会话、技能和定时任务。
但在 v0.17.0 之前,多 Profile 部署有一个绕不开的代价:每个 Profile 都要启动一个独立的 Gateway 进程。
你有 3 个 Profile,就要跑 3 个 Gateway,每个都有自己的 PID、锁文件、端口和系统服务单元。
N 个 Profile 就有 N 个 Gateway 要配置、监控和重启。
用 Docker 部署时,s6-overlay 会自动管理这些进程,但容器内进程数随 Profile 数量线性增长。
维护成本不低。
新的方案
v0.17.0 引入了 Gateway 多路复用(PR #48273),让一个 Gateway 进程同时服务所有 Profile。
这是一个 opt-in 功能,通过配置项 gateway.multiplex_profiles 开启,默认关闭。
关闭时行为与之前完全一致,不会影响任何现有部署。
1 | gateway: |
开启后,默认的 Gateway 进程会自动枚举所有 Profile,为每个 Profile 注册独立的适配器实例。
自己的 bot token、自己的会话存储、自己的凭证。
凭证隔离
多路复用面临的核心技术挑战是凭证隔离。
如果直接把所有 Profile 的密钥合并到进程级的 os.environ,Profile A 的 API Key 会在 Profile B 的请求中被读到。
更危险的是,所有子进程(MCP Server、Kanban Worker)都会继承这份全局环境变量,导致跨 Profile 泄露。
v0.17.0 的解决方案是 fail-closed 的 get_secret() 机制。
多路复用模式下,凭证读取由一个 context-local 的 secret scope 包裹。
当读取凭证时没有安装对应的 scope,get_secret() 会直接抛出 UnscopedSecretError 异常。
它不会回退到 os.environ。
这确保了即使代码中有遗漏的调用点,也会在运行时立即暴露,不会静默泄露。
真正全局的变量(HERMES_* 系列、PATH、Kanban 路径等)通过一个白名单继续从 os.environ 读取。
每轮对话开始时重新加载对应 Profile 的 .env 文件,不再修改全局的 os.environ。
怎么用
先升级到 v0.17.0:
1 | hermes update |
然后在默认 Profile 中开启多路复用:
1 | hermes config set gateway.multiplex_profiles true |
重启 Gateway 后,它会自动枚举所有 Profile 并为每个创建独立的适配器实例。
之后只需要维护一个 Gateway 服务,所有 Profile 的消息渠道都通过它收发。
每个 Profile 仍然在各自的 .env 中配置 bot token 和允许用户列表。
如果两个 Profile 不小心配了相同的 token,系统会直接报错并指出冲突。
注意一点:多路复用模式开启后,不能用 hermes -p <name> gateway run 单独为某个 Profile 启动 Gateway。
系统会检测到多路复用器正在运行并阻止这种操作,避免端口和 token 冲突。
其他团队部署改进
除了 Gateway 多路复用,v0.17.0 还有一批面向团队和规模化部署的更新:
- Managed Scope,管理员可以从 root 权限的 /etc/hermes 锁定不可变的配置和密钥,普通用户无法修改
- 可插拔 CronScheduler,支持 Chronos 等托管 cron 服务,实现 scale-to-zero 的定时任务调度
- Gateway-Gateway Relay,多级 Gateway 中继协议,适合跨网络、跨区域的 Agent 部署
- 安全加固,凭证审批默认 fail-closed、MCP stdio 配置安全扫描、REST cron 提示词校验
升级方式
一行命令:
1 | hermes update |
升级会自动同步新增的 bundled skills 到所有 Profile,用户自定义的 skills 不会被覆盖。
更新完成后用 hermes -V 确认版本号显示 v0.17.0 (2026.6.19) 即可。













