Hermes Agent v0.20 Herald Release 更新解析¶
2026 年 8 月 3 日发布的 v0.20 是 Hermes Agent 迄今规模最大的更新(约 3,650 commits、1,400 PR、647 贡献者),将工具从命令列 Coding Agent 推升为多模态、插件化、跨 Agent 协同的平台。
目录¶
一、版本背景与核心定位¶
开发规模¶
| 指标 | 数值 |
|---|---|
| 版本 | v0.20(代号 Herald Release) |
| 发布日期 | 2026-08-03 |
| Commits | ~3,650 |
| 合并 PR | ~1,400 |
| 贡献者 | 647 |
| 迭代路径 | 0.17 → 0.18 → 0.19 → 0.20 |
命名意涵¶
Hermes(赫密斯)在希腊神话中是众神的 Herald(传令官/信使),负责在不同世界间传递信息。本次更新的每个核心功能都围绕「沟通」这一主题:
┌─────────────────────────────────────────────────┐
│ Herald = 沟通主题 │
├──────────────┬──────────────────────────────────┤
│ 语音对话 │ Hermes 对人说话 │
│ A2A 协议 │ Hermes 对其他 Agent 说话 │
│ Webhooks │ Hermes 对外部系统说话 │
│ Grounded Cit │ Hermes 用可验证来源说话 │
│ Desktop 平台 │ Hermes 提供可扩展的沟通界面 │
└──────────────┴──────────────────────────────────┘
字幕误识别提示:视频自动字幕将 "Herald" 误识为 "Harold",将 "Nous Research" 误识为 "News Research"。本文已修正。
二、五大核心功能拆解¶
1. 实时双向语音互动(Streaming Voice & Barge-in)¶
这是本次更新的命名由来,也是最具展示性的功能。
技术架构¶
┌──────────────┐ ┌──────────────────┐ ┌──────────────┐
│ Wake Word │───▶│ Streaming STT │───▶│ LLM 推理 │
│ (on-device) │ │ (语音→文字) │ │ │
└──────────────┘ └──────────────────┘ └──────┬───────┘
│
┌──────────────┐ ┌──────────────────┐ ▼
│ 语音输出 │◀───│ Streaming TTS │◀──┌───────────────┐
│ (clause-by- │ │ (逐句生成) │ │ Barge-in 检测 │
│ clause) │ │ │ │ (用户打断→停) │
└──────────────┘ └──────────────────┘ └───────────────┘
关键特性¶
| 特性 | 说明 | 隐私/工程价值 |
|---|---|---|
| 逐句串流生成 | AI 边思考边说话,不等完整答案 | 降低感知延迟 |
| True Barge-in | 用户可中途打断,AI 立即停止并切换聆听 | 模型明确感知「被插话」 |
| VAD 感知静默检测 | 识别用户仍在思考,避免误打断 | 更自然的对话节奏 |
| 本机唤醒词 | 完全在设备端检测,如 "Hey Hermes" | 唤醒前不传输音频 |
| 多语音配置档 | 不同唤醒词路由到不同 Profile | 语音指令免切键盘 |
| 多平台语音讯息 | WhatsApp、Line、QQ、DingTalk、WeChat 等 | 跨平台语音→文字→回复 |
与传统语音助手对比¶
传统语音助手: Hermes v0.20:
┌──────────┐ ┌──────────┐
│ 用户说完 │ │ 边说边 │ ← 串流
│ 整句话 │ │ 生成回复 │
└────┬─────┘ └────┬─────┘
▼ ▼
┌──────────┐ ┌──────────┐
│ 处理完整 │ │ 可中途 │ ← Barge-in
│ 回复 │ │ 插话打断 │
└────┬─────┘ └────┬─────┘
▼ ▼
┌──────────┐ ┌──────────┐
│ 播放完整 │ │ 立即停 │ ← 即时响应
│ 音档 │ │ 并聆听 │
└──────────┘ └──────────┘
诚实评价¶
- 工程亮点:Barge-in + 本机唤醒词的实现在开源 Agent 中罕见
- 非全新概念:实时对话语音在 AI 领域已有先例,本更新的价值在于「原生内建」而非外挂
- STT 系统独立化:新增专属配置分类,支持 OpenAI GPT Transcribe 模型,不被单一供应商锁定
2. 可引证研究与事实查核(Grounded Citation & Fact-checking)¶
解决 AI Agent 最持久的问题:信任它告诉你什么。
核心机制¶
用户提问 → Hermes 检索来源 → 引用时比对原文
│
┌───────────────┼───────────────┐
▼ ▼ ▼
✅ 符合证据 ❌ 不符证据 ⚠️ 无法验证
(Supported) (Contradicted) (Unverifiable)
Grounded Citation vs 传统 LLM 引用¶
| 维度 | 传统 LLM | Hermes Grounded Citation |
|---|---|---|
| 引用来源 | 从记忆生成,可能编造 | 与来源原文逐字比对 |
| 可追溯性 | 模糊(「据某研究」) | 精确链接到原文片段 |
| 不确定性 | 统一自信语气 | 明确标注「无法验证」类别 |
| 审计能力 | 无法复核 | 每条声明可追溯到证据 |
Fact-checking 三段式报告¶
┌─────────────────────────────────────────────┐
│ Fact-checking 报告输出 │
├─────────────────────────────────────────────┤
│ 1. ✅ 符合证据 (Supported) │
│ — 列出与来源一致的声明 + 引用链结 │
│ │
│ 2. ❌ 不符证据 (Contradicted) │
│ — 列出与来源矛盾的声明 + 矛盾点 │
│ │
│ 3. ⚠️ 无法验证 (Unverifiable) │
│ — 列出来源中无足够证据判断的声明 │
└─────────────────────────────────────────────┘
限制¶
- ✅ 减少「虚构引用」滑过的机率
- ❌ 不代表 Hermes 绝对正确
- ❌ 来源本身仍需可靠
- ❌ 只能验证有权限存取的来源
3. 主动事件推播(Outbound Webhooks)¶
将「被动轮询」翻转为「主动推播」,对系统整合者是结构性最重要的改进。
架构转变¶
【旧模型:轮询 Polling】
外部系统 ──▶ Hermes: 完成了吗? (每 5s)
外部系统 ──▶ Hermes: 完成了吗? (每 5s)
外部系统 ──▶ Hermes: 完成了吗? (每 5s)
外部系统 ──▶ Hermes: 完成了吗? ✓ ← 终于完成
↑ 浪费大量请求,有延迟窗口
【新模型:推播 Webhooks】
Hermes ──▶ 外部系统: 🔔 task.completed (HMAC 签章)
↑ 事件发生瞬间送达,零延迟,可验证来源
事件类型¶
| 事件 | 触发时机 |
|---|---|
| Session Activity | 会话状态变化 |
| Turn Completion | 一轮对话完成 |
| Tool Event | 工具调用触发 |
安全机制¶
- HMAC 签章:接收端可验证事件确实来自 Hermes,防止伪造/篡改
- 每个事件包含签名,接收端用共享密钥校验
实际应用场景¶
┌────────────────────────────────────────────────────────┐
│ Webhook 应用场景 │
├─────────────────┬──────────────────────────────────────┤
│ CI/CD 流程 │ 任务完成瞬间触发下一步,无需轮询 │
│ 智慧家居联动 │ Agent 任务完成 → 触发家庭自动化 │
│ 监控仪表板 │ 多个 Hermes Session 状态即时更新 │
│ 通知系统 │ 关键事件推送到 Slack/Discord/Email │
└─────────────────┴──────────────────────────────────────┘
视频评价:这不是一个 flashy 功能,但对于真正在 Hermes 上做开发的人来说,是整个 release 中结构性最重要的改进之一。
4. 桌面端平台化(Desktop App → Plugin Platform)¶
桌面端从「聊天窗口」转变为「可扩展平台」。
两大支柱¶
Artifacts(产物卡片)
对话侧边栏
┌──────────────────────┬───────────────────┐
│ │ 沙盒预览 (Sandbox)│
│ 对话内容 │ ┌─────────────┐ │
│ │ │ 版本 v3 │ │
│ > 生成了一个组件 │ │ 即时预览 │ │
│ < Artifact [v3] │ │ │ │
│ │ └─────────────┘ │
│ > 加上深色模式 │ 版本历史: │
│ < Artifact [v4] │ v1 → v2 → v3 │
│ │ → v4 (当前) │
└──────────────────────┴───────────────────┘
- 版本追踪:看产物在对话中如何演化,不只看最终状态
- 沙盒隔离:预览内容不会未经检查存取系统其他部分
Plugin SDK
┌─────────────────────────────────────────────┐
│ Plugin SDK 架构 │
├─────────────────────────────────────────────┤
│ │
│ State Reducer + Render 模式 │
│ (类似 Redux/React 的前端架构) │
│ │
│ ┌─────────┐ ┌──────────┐ ┌───────────┐ │
│ │ State │─▶│ Reducer │─▶│ Render │ │
│ │ (状态) │ │ (动作) │ │ (渲染UI) │ │
│ └─────────┘ └──────────┘ └─────┬─────┘ │
│ │ │
│ ctx.download ◀───────────────────┘ │
│ (Plugin 可直接交付文件给用户) │
│ │
│ 首发插件: Kanban Board(范例) │
│ 含 Widget App SDK + 参考应用 │
└─────────────────────────────────────────────┘
额外桌面端改进¶
- 全域快捷键:从 OS 任何位置唤出快速输入框,直送当前 Session
- 多视窗 + 浮动窗格:不再锁定单一视景
- SSH Remote Backend:桌面端连接并控制远端机器上运行的 Hermes 实例
5. 跨 Agent 通讯协议(A2A Protocol v1.0)¶
让 Hermes 能与其他 AI Agent 直接对话,解决异质 Agent 协同难题。
解决的问题¶
【旧世界:孤岛式整合】
Hermes Agent Agent B Agent C
(Nous Research) (其他团队) (其他框架)
│ │ │
└──── 自定义整合 ──┘ │
└── 自定义整合 ──┘
↑ 每对整合都是一次性工程,不可复用
【新世界:A2A 协议】
Hermes Agent Agent B Agent C
│ │ │
└──── A2A 协议 ────┴──── A2A 协议 ──┘
│
标准化:发现能力、交接任务
互相发起呼叫
↑ 一次实作,所有兼容 Agent 互通
A2A 协议核心能力¶
| 能力 | 说明 |
|---|---|
| Capability Discovery | 发现其他兼容 Agent 能做什么 |
| Task Handoff | 将任务从一个 Agent 交接给另一个 |
| Bidirectional Calls | Agent 间互相发起调用 |
| Framework Agnostic | 不同团队、不同框架的 Agent 互通 |
社区意义¶
- 关闭了 Hermes 仓库中长达 2 年的 Issue #514
- 这是最早被请求、最受社区期待的功能之一
- 显示维护者确实在回应长期社区需求
诚实评价¶
- 协议的价值取决于生态系采纳程度
- 当前 A2A 支持是前瞻性布局,即时影响力有限
- 需要关注后续有多少其他 Agent/平台实作兼容支持
三、开发者体验与 CLI 优化¶
新增命令与工作流¶
| 命令 | 功能 | 价值 |
|---|---|---|
!命令 |
即时执行 Shell 指令 | 不消耗完整模型 Turn |
/init |
扫描专案并生成/更新 agents.md |
自动维护代码库情境 |
/diff |
查看暂存/全部/会话变更 | 跨界面一致 |
/context |
显示情境窗口占用明细 | 诊断效能/行为异常 |
/focus |
精简输出视图(可恢复) | 降低噪声 |
Ctrl+S |
暂存半写好的 Prompt | 稍后继续 |
Esc Esc |
丢弃草稿(含 undo stack) | 安全清除 |
hermes import agent |
从 Claude Code / Codex CLI 一键迁移 | 降低切换成本(竞争性举措) |
Mid-turn Redirection(中途修正)¶
用户下指令
│
▼
Agent 开始执行 ──▶ 执行中...
│ │
│ 用户发送修正 │
│ (不中断!) │
│ ▼
│ 保留已完成工作
│ 保留原始 Prompt
│ 将修正并入后续
│ │
▼ ▼
最终输出(含修正方向)
- 不需中断现有成果
- 原始指令 + 已完成工作 + 修正三者并行
工具自修正改进¶
┌────────────────────────────────────────────────────────┐
│ 工具可靠性提升矩阵 │
├────────────────┬───────────────────────────────────────┤
│ Terminal 输出 │ 超长输出溢出到文件,Agent 稍后读回 │
│ │ (旧: 直接丢失) │
├────────────────┼───────────────────────────────────────┤
│ Patch 工具 │ 检测编辑是否已套用 + 诊断空白不匹配 │
├────────────────┼───────────────────────────────────────┤
│ Write File │ 验证内容确实写入磁盘(不假设成功) │
├────────────────┼───────────────────────────────────────┤
│ Search 零结果 │ 自动探测近似匹配(捕捉拼写错误) │
└────────────────┴───────────────────────────────────────┘
迭代上限提升¶
旧限制: 90 次 ──▶ 长任务可能中途被截断
│
▼
新限制: 500 次 ──▶ 自主任务空间大幅扩展
(复杂自动化工作流不再受人为天花板限制)
情境管理与压缩优化¶
- 大工具结果主动修剪(针对大情境窗口模型)
- 压缩改为分散式增量(不再大段中断)
- 保证最近 N 条消息永远存活压缩
- Ghost Skill Defense:防止被修剪的 Skill 静默影响对话
四、效能、安全与破坏性变更¶
效能提升¶
┌────────────────────────────────────────────────────┐
│ 效能提升一览 │
├────────────────────┬───────────┬────────────────────┤
│ 指标 │ 旧值 │ 新值 │
├────────────────────┼───────────┼────────────────────┤
│ 冷启动时间 │ ~14 秒 │ ~1.8 秒 (↓87%) │
│ 配置读取成本 │ 基准 │ ↓28 倍 │
│ Telemetry Gating │ 基准 │ ↓54 倍 │
│ 桌面端帧率 │ 波动 │ 60 FPS 稳定 │
│ 闲置 CPU │ 有占用 │ 趋近 0 │
│ 大型 Transcript │ 变长变卡 │ 串流不降速 │
└────────────────────┴───────────┴────────────────────┘
- Prompt Caching 扩展覆盖工具 schemas(Anthropic 原生模型,不丢对话历史)
- 消除了每 Turn 不必要的深拷贝
新增模型/供应商支持¶
| 类型 | 新增 |
|---|---|
| Gemini 3.1 Pro、Gemini 3.6 Flash | |
| Anthropic | Claude Opus 5(经 OpenRouter / Nous Portal) |
| DeepSeek | v4 Flash |
| 供应商 | Vercel AI Gateway、Bedrock Converse API(含 prompt caching) |
新增通讯平台¶
- Buzz:基于 Nostr 协议的通讯软件(WebSocket + NIP-42 认证)
- Discord 自动话题串改进
- Slack Block Kit 澄清按钮(处理歧义请求)
- 跨平台功能对齐(媒体处理、互动提示、话题生命周期、打字指示器)
安全加固¶
┌───────────────────────────────────────────────────┐
│ 安全层级架构 │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ Iron Proxy(凭证注入出口防火墙) │ │
│ │ 防止敏感凭证在出口请求中泄露 │ │
│ └────────────────────┬────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ DNS Pinning │ │
│ │ DNS 回应在验证与实际请求间被窜改的 │ │
│ │ SSRF 攻击面被封锁 │ │
│ └─────────────────────────────────────────┘ │
│ │
│ Windows 加固: 修复子进程解码 bug、 │
│ 背景守护进程与安装程序的 Console 闪烁问题 │
└───────────────────────────────────────────────────┘
⚠️ 破坏性变更(最重要!)¶
╔═══════════════════════════════════════════════════════╗
║ 安装管道变更(BREAKING) ║
╠═══════════════════════════════════════════════════════╣
║ ║
║ ❌ 退役: Homebrew (brew install/update) ║
║ ❌ 退役: Pip / PyPI (pip install hermes-agent) ║
║ ║
║ ✅ 仅保留: Shell Installer ║
║ ✅ 仅保留: Docker ║
║ ✅ 仅保留: Nix ║
║ ║
║ ⚠️ 新要求: Node.js >= 26 ║
║ ║
║ 如果你一直用 brew/pip 更新 Hermes: ║
║ 升级前务必切换安装方式! ║
╚═══════════════════════════════════════════════════════╝
五、升级建议¶
按用户类型的升级决策树¶
你用 Hermes 做什么?
│
├─ 日常编码 / 一般任务?
│ └─▶ 语音 + CLI 改进值得更新
│ 但不紧急,可等一周
│
├─ 构建整合 / 自动化 / 多 Agent?
│ └─▶ 强烈建议尽快更新
│ Webhooks + A2A 是真正的 headline
│
└─ 一直用 brew/pip 管理 Hermes?
└─▶ ⚠️ 更新前先切换安装方式
确认 Node >= 26
升级前检查清单¶
- 确认当前 Node.js 版本 >= 26(
node -v) - 如果用 brew/pip 安装:先卸载,改用 Shell Installer / Docker / Nix
- 备份现有配置文件(
~/.hermes/) - 如使用 Anthropic 模型:确认 OpenRouter / Nous Portal 可用
- 如运行多 Agent 系统:评估 A2A 协议适用性
核心价值判断¶
| 功能 | 展示性 | 结构重要性 | 实用程度 |
|---|---|---|---|
| 语音对话 | ★★★★★ | ★★★ | ★★★★ |
| Grounded Citation | ★★★ | ★★★★ | ★★★★ |
| Outbound Webhooks | ★★ | ★★★★★ | ★★★★ |
| Desktop Plugin SDK | ★★★ | ★★★★★ | ★★★(待生态) |
| A2A Protocol | ★★ | ★★★★★ | ★★(待生态) |
结论:语音是最被讨论的功能,但 Webhooks + A2A + Plugin SDK 才是真正改变 Hermes 长期定位的结构性改进。对于在 Hermes 上做开发的用户,这三个功能才是真正的 headline。
参考资料¶
- YouTube 视频:Hermes Agent v0.20 Can Now Talk to You (And Other Agents)
- Hermes Agent v0.20 GitHub Release
相关笔记¶
- [[Hermes Agent]]
- [[AI Agent 生态系]]