Hermes Agent v0.17.0 — The Reach Release(触达版本)
概览
v0.17.0 — The Reach Release(触达版本),2026 年 6 月 19 日发布。~1,475 次提交 · ~800 个合并 PR · 1,693 个文件变更 · 235,390 行新增 · 50,730 行删除 · 300+ 个 issue 关闭 · 245 位社区贡献者。
v0.16.0 把 Hermes 搬到了你的桌面上,v0.17.0 要展示的是这份触达能走多远——延伸到更多能和它对话的地方、更深入你已经在用的那些工具,以及覆盖那些为团队跑 Hermes 的人。两个全新的消息通道到位(iMessage 通过 Photon,Raft Agent 网络),桌面端大幅深化,子 Agent 现在可以在后台跑,图片生成学会了编辑,Cursor 的 Composer 模型通过你的 xAI Grok 订阅就能用。Dashboard 迎来了完整的 Profile 构建器和安全登录,Skills Hub 彻底重做,memory 工具新增了原子批量操作。Curator 不再在日常运行上烧辅助模型预算。再加上一轮安全加固,300+ issue 一次清光。
重磅功能
1. iMessage 通过 Photon Spectrum — 不需要 Mac 中继了
Hermes 现在通过 Photon 的托管号码池直接接入 iMessage。不需要找台 Mac 放角落里跑中继,也不用伺候 BlueBubbles 桥接器。
# 用设备码 OAuth 认证
hermes photon login
# Hermes 已经在 iMessage 上了 — gRPC 原生通道(无 webhook)
# 支持 Markdown 渲染、emoji 反应、通过 spectrum-ts 发送媒体
基于 gRPC 原生通道,不依赖 webhook,支持 Markdown 渲染、emoji 反应和媒体发送。定位是 BlueBubbles 的继任者:免费上手,什么都不用自己搭。如果你的朋友家人活在蓝色气泡里,Hermes 现在也在里面了。(#32348, #42582, #44713)
2. Raft — Hermes 加入 Agent 网络
新增了一个内置的 Raft 平台适配器,让 Hermes 通过 wake-channel 桥接作为外部 Agent 接入 Raft。设置 RAFT_PROFILE,跑起桥接,Raft 就能唤醒 Hermes 处理消息——采用隐私优先的合约设计,wake 负载只携带元数据(事件 ID、时间戳),绝不包含消息正文。(#48210)
export RAFT_PROFILE=my-hermes-agent
hermes raft bridge
3. 桌面端大幅进化,已经是正经的生产力工具了
v0.16.0 推出了桌面端,v0.17.0 用几十个 PR 把它真正深化了。现在可以当主力用了。
可自定义快捷键和原生系统通知,每种通知都能独立开关。
子 Agent 实时观察窗:
当你把任务委派出去,一个专用窗格会实时流式展示子 Agent
的活动——工具调用、输出、进度。你可以在不切换上下文的情况
下观察它在干什么。
Composer 模型选择器,支持每个模型独立预设——在 GUI 中列出 hermes model 看到的所有 provider/模型组合。自动 RTL/双向文本方向。可调节尺寸的 VS Code 风格终端面板。每个线程独立保留 Composer 草稿。
可以直接安装 VS Code Marketplace 上的任意主题到应用中——每个 Profile 单独指定。窗口透明度滑块。统一 Overlay 设计体系。
桌面端其他亮点:
- Mac 风格的会话切换器(^Tab / ^1-9)
- Composer 中方向键回放历史 + 队列编辑
- 从审批栏内嵌展开完整命令
- 流式输出自动跟随到底 + 一键跳底部按钮
- 侧边栏一级 cron 任务入口
- 按 worktree 分组侧边栏
- 悬停展开折叠侧边栏
- 侧边栏按消息来源分文件夹
- 桌面宠物 — 弹出浮窗 + 通知
- 日语 + 繁体中文语言切换
- 状态栏“重启 Gateway”操作按钮
远程 Gateway 改进:
- 远程媒体中继 — 首次支持通过网络附加图片/PDF 并展示 Agent 生成的图片
- 通过
file.attach远程附加文件 - 客户端 + 后端版本按钮,带远程更新流程
- 浏览远程后端文件
- 睡眠/唤醒后恢复聊天,自动验证过期远程后端
4. 后台/异步子 Agent — 任务甩出去,你继续干活
delegate_task(background=true) 把子 Agent 派到后台去跑,立刻返回一个句柄。它在那折腾的时候,你和模型继续工作,结果是作为新的一轮消息自动回到对话中的。
# 后台委派 — 非阻塞
/delegate_task "把整个竞品格局调研一遍" --background
# 你继续干活。子 Agent 搞完后,结果作为新一轮消息自动回来。
不用再傻等着漫长的调研或构建步骤跑完。甩出去接着干活。(#40946, #46968)
5. 图片编辑 — 不只是生成,还能改图
image_generate 现在可以对已有图片进行编辑和变换,不只是从零生成。传入一张已有图片加一段 prompt——它会路由到后端所有支持的图片 Provider 的 edit 端点。
# 编辑已有图片
image_generate --source logo.png --prompt "Make this logo blue and add a gradient background"
# "去掉背景"、"把这张草图转成渲染图" — 一个工具全搞定
跟 video_generate 同一套工具、同一种模式。(#48705)
6. 自动化蓝图 — 安排定时任务不用学 Cron 了
按名字选一个自动化模板,Hermes 会问你它需要什么——不用写 cron 表达式,不用敲 slot=value。一份蓝图定义在所有界面上都能原生渲染:Dashboard 里是表单,CLI/TUI/聊天里是 slash 命令,跟 Agent 聊天的过程,文档目录里的一条记录。
# 告别 cron
/hermes automation create "每天早上 8 点给我新闻简报"
# Hermes 会问:要哪些来源?什么格式?有没有过滤条件?
# 搞定。全程没出现过 "0 8 * * *"。
“每天早上 8 点新闻简报”变成一个通过回答问题就能搞定的事,而不是靠背 cron 语法。(#41309)
7. Cursor 的 Composer 模型 — 用你的 xAI Grok 订阅直接跑
grok-composer-2.5-fast 现在出现在 xAI OAuth 模型选择器里了,上下文窗口确认为完整 200k。Composer 是 Cursor 背后那套快速编码模型——如果你有 xAI Grok 订阅,现在可以直接通过 OAuth 让 Hermes 走它,不需要额外 API key。
/hermes model:xai/grok-composer-2.5-fast
你的 Grok 订阅,Hermes 的 Agent 循环,Composer 的编码速度。(#47908)
8. Dashboard 完整 Profile 构建器
在浏览器里就能搭完一个 Hermes Profile——选模型、挑 Skills、挂 MCP 服务器——不用手改 config.yaml。Dashboard 把多 Profile 管理统一成了机器级的全局视图,配全局 Profile 切换器。(#39084, #44007)
9. Skills Hub 浏览体验大换血
Dashboard 的 Skills Hub 从头重做了:已连接的 Hub、Featured 精选区、安装前完整预览 Skill、每个 Skill 都跑安全扫描。从受信源(OpenAI、Anthropic、HuggingFace、NVIDIA)浏览和安装 Skill 现在是真的“逛”的体验,不是平铺列表了。外加 Skills 页面的 SKILL.md 编辑器,cron 弹窗里的附加 Skill 选择器。(#40384, #43398)
10. Memory 工具 — 原子批量操作
memory 工具新增了 operations 数组,一次性把一批 add/replace/remove 操作原子地应用到最终字符预算内。模型可以腾出空间并添加新条目,一次调用搞定——即便单纯 add 会溢出预算也能处理。
{
"operations": [
{ "action": "remove", "key": "old-deprecated-fact" },
{ "action": "add", "key": "new-important-fact", "value": "..." },
{ "action": "replace", "key": "updated-fact", "value": "..." }
]
}
以前要小心翼翼多轮来回的操作,现在一行可靠调用全搞定了。(#48507)
11. WhatsApp Business Cloud API 官方支持
除了现有的 Baileys 桥接,Hermes 现在也能走 官方 WhatsApp Business Cloud API 了——Meta 第一方托管、零桥接进程方案。填入你的 Business API 凭据,Hermes 就通过官方渠道接入 WhatsApp,不用跑扫码桥接进程一直保活。(#44331, #43921)
12. Telegram 富文本消息 — Bot API 10.1
Telegram 回复现在通过 Bot API 10.1 渲染为真正的富文本消息:更好的格式、更清晰的长消息处理、原生标记语言而非拍平文本。默认开启,可选择关闭。另外还有可选的上线/离线 Bot 状态指示。(#44829, #45584)
13. Curator 成本优化 — 日常运行零 Token 消耗
Skill Curator 现在默认只清理过期 Skill,不再跑那个烧钱的大模型整合流程了,除非你主动打开(curator.consolidate: true 或 hermes curator run --consolidate)。确定性非活跃清理继续免费跑,那个耗辅助模型 token 的“建顶层 Skill”分支默认关闭了。日常后台管理的成本:零 token。(#47840)
God-File 重构 — 代码质量大扫除
这个版本完成了 Hermes 历史上规模最大的重构之一,把三个单体巨型文件拆成了聚焦的小模块:
| 文件 | 重构前 | 重构后 | 拆出了什么 |
|---|---|---|---|
cli.py main() |
3,297 行 | 954 行 | 28 个子命令解析器 → hermes_cli/subcommands/;32 个 slash 命令处理器 → CLICommandsMixin;18 个模型流程向导函数 → model_setup_flows;Agent 构建集群 → CLIAgentSetupMixin |
gateway/run.py |
19,157 行 | 15,870 行 | 42 个 slash 命令处理器 → GatewaySlashCommandsMixin;授权集群 → GatewayAuthorizationMixin;看板监视器循环 → GatewayKanbanWatchersMixin |
run_agent.py 轮次循环 |
— | — | Prologue 提取为 TurnContext;循环尾部拆为 finalize_turn;重试循环恢复标志统一为 TurnRetryState |
新增内置工具与命令
| 工具 / 命令 | 描述 | 用法 |
|---|---|---|
/version |
显示当前 Hermes 版本 | /version |
/billing |
交互式终端账单视图(TUI + CLI) | /billing |
image_generate(编辑) |
跨所有后端的图生图编辑 | image_generate --source img.png --prompt "make it blue" |
memory(批量操作) |
在字符预算内原子执行 add/replace/remove 数组 | 见重磅功能第 10 节的 JSON 示例 |
search_files(压缩返回) |
无损压缩 — 每个结果占更少 token,匹配结果不变 | search_files --pattern "*.py" |
read_file(文档提取) |
把 .ipynb/.docx/.xlsx 提取为文本 |
read_file notebook.ipynb |
file.attach |
远程 Gateway 文件附件 | file.attach ./report.pdf |
| 自动化蓝图 | 基于命名模板、告别 cron 语法的定时任务 | hermes automation create "每日简报" |
write_approval |
布尔开关,替代 memory/skill 写入的三态 write_mode |
Config: write_approval: true |
session:compress |
会话压缩时的插件生命周期事件 | 插件钩子 |
| Plugins Hub(TUI) | 交互式启用/禁用覆盖层 | TUI 覆盖层 |
Provider 与模型支持
- 新模型:
z-ai/glm-5.2(验证 1M 上下文),anthropic/claude-fable-5,laguna-m.1+nemotron-3-ultra,xAI Composer 2.5 进 OAuth 选择器 - 模型选择器:Refresh-Models 控件刷新过期缓存;Nous 推荐模型持久化到磁盘;更新时从 checkout 填充磁盘模型目录缓存;MiniMax-M3 报告真实 1M 上下文
- Anthropic 自适应模型:默认使用现代 thinking 契约;永远不发送
reasoning字段;将reasoning_effort路由到 verbosity;选择高成本选项时要求确认 - 认证改进:从池中自动检测 OpenRouter 凭据;保持 Codex OAuth 池账号相互独立;跨 Profile 解析 xAI OAuth;尊重
model.default_headers自定义 Provider - Bedrock:当 IAM 拒绝流式变体时回退到非流式
InvokeModel - Ollama:默认
max_tokens=65536;将模型拒答映射为content_filter
核心架构改进
Agent 循环 & 工具:
search_files无损压缩返回 — 每个结果更少 token,匹配结果不变- 移除 Agent 可直接调用的
send_message工具(整合) - CLI/TUI/桌面端/ACP 统一的编码上下文姿态
- 上下文文件处理:可配置截断上限 + 警告;根据模型窗口自动缩放
- 压缩:压缩摘要中支持时间锚定;对 Codex OAuth 上的 gpt-5.5 将触发阈值提高到 85%
- 自适应中间件(供 NeMo-Relay 观测遥测消费);支持对话中途方向调整
会话、状态 & 多 Agent:
- 可选最大会话数上限;CLI 退出时清空会话
- ACP 会话来源元数据,用于压缩轮换
- 委派:按端点身份解析自定义端点子 Agent 池;移除默认 wall-clock 超时
- Kanban:
kanban_create可配置自动订阅;嵌入式调度器机器级全局单例锁;固定分配 worker 的 Profile 工具集 - Memory:可配置 Hindsight 保留观察范围;OpenViking 设置体验;Honcho Gateway 级身份树;Supermemory 会话级 ingest
消息平台
新通道:
- iMessage 通过 Photon Spectrum — 设备码 OAuth、gRPC 原生、无 webhook
- WhatsApp Business Cloud API — 官方方案,零桥接进程
- SimpleX — 群组、原生附件、文本批处理、自动接受
- Raft — 内置平台插件,带活动钩子
Gateway 核心 & 渲染:
- 终端工具调用在 Markdown 平台上渲染为原生 bash 代码块
- 可选在 LLM 上下文中附带消息时间戳
- 可配置
tool_progress_grouping
各平台改进:
| 平台 | 改进 |
|---|---|
| Telegram | Bot API 10.1 富文本消息(始终开启);上线/离线状态指示;长流式回复不再被截断;进度编辑使用 MarkdownV2 |
| Discord | role_authorized 传播以支持 DISCORD_ALLOWED_ROLES;从运行时 Gateway 任务退出中恢复;回复后停止打字 |
| Slack | reply_in_thread=false 时限定顶层频道消息范围;线程内审批体验;视频附件可供 Agent 使用;register_slack_action_handler 插件 API |
| Signal/Email/Teams | 文档附件正确分类;包含已回复的媒体 |
| 重启过期桥接进程 | |
| Matrix | 房间上下文隔离 |
| QQbot | CPU 空转修复 |
| 微信 | 限流熔断器 |
CLI、TUI 与安装
/versionslash 命令;/billing交互式终端账单- 状态栏显示距离上次 Agent 最终回复的时间
- 已解决的 approved/clarify 提示持久化保留在滚动缓冲区
- 锁定 hermes worktree 防止并发进程冲突
- 从任意来源克隆 Profile
- 首次接触时可选的引导式 Profile 构建路径
- 可配置的按平台系统提示词
- 可配置的后台 memory/skill 通知
- TUI:交互式 Plugins Hub 启用/禁用覆盖层;终端标题栏显示会话名称;超长审批命令折行而非截断
- TTS:Gemini 角色提示词 + 音频标签;xAI 自动语音标签 + 速度/流式;Piper speaker_id;Telegram OGG 自动 TTS
工具系统、Skills 与 MCP
- 图生图编辑:
image_generate跨所有后端支持;自动缩放到 Provider 尺寸限制 - MCP:官方 Unreal Engine 5.8 MCP 服务器入库;询问处理器 — MCP 服务器可在工具调用中途弹出确认(支付/OAuth),在任何拥有会话的界面上显示;在轮次之间暴露延迟连接的 MCP 工具;为短 TTL HTTP 会话发送 keepalive ping;拦截疑似数据外泄/可疑的 stdio 配置;对
tools/list做能力门控 - Skills:
simplify-codeSkill(并行 3 Agent 代码审查与清理),支持按风险等级分层应用;查找并对比用户修改过的内置 Skill;可选支付类 Skill(Stripe Link、MPP、Projects);实时按源展示浏览进度 - Plugins:支持从仓库子目录安装;在
hermes plugins install中接受粘贴浏览器里的 GitHub URL;session:compress生命周期事件 + Agent 上下文中提供thread_id/chat_type - Memory/Skill 写入审批开关(默认关闭)— 布尔型
write_approval替代三态write_mode
Fleet、Relay 与自动化
- 托管作用域 — 管理员固定、用户不可变的配置与密钥,来自 root 拥有的
/etc/hermes - 一个 Gateway 进程多路复用所有 Profile(可选开启)
- 可插拔 CronScheduler + Chronos 托管 cron Provider(scale-to-zero)
- Gateway-Gateway Relay(阶段 0-3):Relay 适配器 + 能力描述符、Connector⇄Gateway 通道认证 + 签名 HTTP 入站、仅 WS 入站、托管启动自配置客户端
Docker、Nix 与安装器
Docker:
- s6:直接检测 supervisor 用于 Gateway 重启;注册 Profile Gateway 不自动启动;清理过期日志锁
- 优化镜像大小(.dockerignore、去掉 dev 依赖、分离层);预装 matrix 依赖;supervised gateway 使用
--replace;加固托管安装目录
Nix:
- 冷 npm build 修复 + auto-fix-lockfiles 工作流
- 通过
importNpmLock实现无哈希 npm 依赖 - Electron 40.10.2 pin 后刷新 npmDepsHash
安装器:
- autostash 前清理未合并的 git index
- 安装方法标记限定到代码树范围
Windows
- Dashboard
/chat标签页通过 ConPTY(win_pty_bridge) - uv 安装时解析 PowerShell 主机而非裸
powershell - 按绝对路径解析
powershell.exe,防止桌面端安装卡住 - 修复过期 winget 注册 + 刷新/合并 PATH
- 重建 venv 前先 kill hermes,释放
_bcrypt.pyd锁 - env 过期时从注册表读取 HERMES_HOME
- JOB-breakaway 监视器可靠性 + status
--deep探测 - 子进程输出解码为 UTF-8
安全与可靠性
- 自有策略 Gateway 适配器故障即关闭
- Slack/飞书/Discord 上审批按钮认证在未设置白名单时故障即关闭
- 在请求调试转储中脱敏密钥;从公共状态中隐藏主机元数据
- 在探测前拦截疑似外泄/可疑 MCP stdio 配置
- 封堵 shell 转义黑名单绕过 + 缺少审批模块时故障即关闭
- 启动 cua-driver MCP 前清理 operator 环境
- 为 cron 任务脚本子进程消毒环境变量
- TodoStore 内容长度/数量加限制
- 扫描 REST cron 提示词,与 Agent 工具保持一致性
- 升级 urllib3 和 PyJWT 清除 CVE
- Langfuse 脱敏 base64 数据 URI
Notable Bug Fixes
- URL 非 ASCII 组件做百分号编码
- 清理 FTS5 查询中的
:避免冒号搜索静默返回空 - 通过崩溃恢复持久化保留多模态用户内容
- Provider 同步前拍平多模态内容
- 真正的 Nous 429 时重新进入重试循环,让回退守卫运行
- 将 Nous tags 限定到 Nous 辅助调用
- Cron:不在无 Skill 任务中严格扫描脚本注入输出
- Cron:将按任务指定的 Provider “custom” 解析为
providers.custom - Cron:容器重启时修复 cron 所有权
(本窗口关闭了 300+ issue — 完整的按领域修复列表太多,不逐一列举了。)
本窗口内回滚
html-artifactSkill + 草图/架构图/概念图折叠 (#48899) — 已回滚 (#49053)- Cron 按任务 Profile 支持已回滚 (#43956)
- Nix patchPhase 变通方案已回滚 (#42151)
升级
hermes update
全新安装请参考安装指南。
← 版本发布