17天3544个commit:v0.20.x 把 Agent 从「能用」推到了「能协作」

Hermes Agent v0.20.x 系列深度解析:Bot Mode内置、MCP管理重构、压缩引擎重写、桌面端多网关支持、Computer Use授权、会话生命周期增强。

从 v0.19 到 v0.20.2,Hermes Agent 经历了三次版本迭代。Bot Mode 内置、MCP 管理重构、压缩引擎重写——这不是修补,是架构级进化。

先说结论

v0.20.x 系列(v2026.8.3 → v2026.8.16)累计 3544 个 commit,其中 feat 381 个、fix 1963 个。

三个版本的侧重点完全不同:

版本日期commit数核心主题
v0.20.08.3945A2A协议、MCP懒加载、Node 26
v0.20.18.131620Bot Mode内置、MCP管理重构、压缩引擎重写
v0.20.28.16979background_review成本控制、Cron安全加固、ACP优化

一句话总结:v0.20.0 打了协议基础,v0.20.1 把体验拉满,v0.20.2 收尾打磨。


重点一:Bot Mode 内置——Agent 终于有「队友」了

什么是 Bot Mode

Bot Mode 让 Hermes 可以同时扮演多个角色(Bot),每个 Bot 有独立的 SOUL.md、技能配置和对话上下文。

以前需要手动配置 hermes-bots 插件,现在 桌面版直接内置,默认开启。

核心能力

能力说明
多源 Bot 协议稳定版 teammate prompt section,Bot 之间可以互相感知
永久会话capability-refresh + timeless prompts,Bot Chat 不会过期
协议自动升级旧版 Bot Chat 会话自动迁移到新协议,无需手动操作
composeSoul 增强Bot 的人格组合现在正确读取 bot_mode_protocol 能力

配置方式

1
2
3
# config.yaml
agent:
  bot_mode_protocol: true  # 默认开启

实际意义:以前「多 Agent 协作」需要 Kanban + delegate_task 自己搭。现在 Bot Mode 提供了协议级的多角色支持——你的 Agent 可以同时是写手、审稿人、部署员,各自有独立人格。


重点二:MCP 管理大重构——从能用到好用

v0.20.x 对 MCP(Model Context Protocol)的管理做了全面升级,覆盖成本、安装、健康三个维度。

2.1 费用/用量一目了然

新增 MCP Fleet Cost/Usage Overlay

  • 每个 MCP 服务器显示 schema token 估算
  • 30 天历史用量统计
  • 费用可视化

2.2 hermes:// 深度链接安装

以前安装 MCP 服务器需要手动编辑 config.yaml。现在:

  • 桌面端支持 hermes:// 深度链接,一键安装
  • 弹出确认对话框,不会偷偷装
  • MCP 建议目录扩展到 18 个官方托管服务

2.3 后台健康检查

  • MCP 服务器定期健康检查
  • OAuth token 过期时自动提示重新授权
  • 服务器原生工具优先于自动生成的工具(避免命名冲突)

2.4 统一列表

桌面端把「MCP 服务器」和「MCP 目录」合并成一个统一列表。不再在两个页面之间切换。

2.5 Per-Profile 生命周期

1
2
3
4
5
6
# config.yaml
mcp_servers:
  my-server:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem"]
    profile: work  # 只在 work profile 下启动

Gateway 新增 mcp.servers.* RPC,可以按 profile 独立管理 MCP 服务器的启停。


重点三:压缩引擎全面升级

这是 v0.20.x 最底层的改动,影响每一个长对话的体验。

3.1 tail_mode——两种尾巴策略

1
2
3
4
# config.yaml
compression:
  tail_mode: legacy  # 默认值
  # tail_mode: lean  # 新的精简模式
模式策略效果
legacy保留 20% 窗口的原始消息行为不变,默认值
lean2.5% 窗口(10K下限/25K上限)+ 分块摘要 + 机械锚索引压缩后保留token减少约3倍

lean 模式额外做的事情:

  • 机械锚索引:压缩后仍能定位关键消息
  • 摘要噪声过滤:去掉摘要中的废话
  • FTS5 恢复指针:压缩后仍可通过 session_search 找回上下文
  • 恢复感知评估:自动评估压缩质量

3.2 摘要提示词升级

field-proven 的摘要提示词优化,基于实际压缩质量评估数据迭代。

3.3 评估工具

新增 compaction recall eval harness,可以量化测试压缩后信息保留率。


重点四:桌面端多网关支持

桌面版现在可以同时连接多个 Gateway。

核心改动

功能说明
连接注册表Connections registry,集中管理所有 Gateway 连接
Profile 作用域Session、MCP、工具配置全部按 profile 隔离
SDK 导出插件可以通过 SDK 获取连接状态和切换事件
自动重连远程连接断开后自动重连,状态栏显示连接状态

实际意义:以前桌面版只能连一个 Gateway。现在你可以同时连本地 + 远程,按 profile 切换。


重点五:Computer Use 授权界面

v0.20.x 为 Computer Use(CUA Driver)增加了用户授权流程。

改动说明
授权界面首次使用浏览器控制时弹出授权确认
0.20 运行时合约CUA Driver 升级到 0.20 版本的运行时合约
自动修复已安装的驱动如果运行时合约不通过,自动修复

重点六:Session 生命周期增强

6.1 导入 Claude Code / Codex 会话

1
2
3
4
5
# 导入 Claude Code 会话
hermes session import --from claude-code

# 导入 Codex 会话
hermes session import --from codex

导入后可以在 Hermes 中继续对话,不丢失上下文。

6.2 /export 和 /save 命令

1
2
3
4
5
6
# 导出当前会话
/export markdown    # 导出为 Markdown
/export json        # 导出为 JSON

# /save 显示用量卡片(不再直接导出)
/save

6.3 会话状态管理

功能说明
已读/未读状态会话支持标记已读/未读
归档快捷键 ⌥+⇧ 点击归档会话
隐藏hidden 标记,从侧边栏隐藏但可恢复
删除确认删除前弹出确认对话框
密度模式会话列表支持紧凑/标准/宽松三种密度
移动到其他项目会话可以从一个项目移到另一个

重点七:凭证管理增强

key_cmd 凭证源

自定义 Provider 现在支持通过命令获取 API Key:

1
2
3
4
5
6
# config.yaml
custom_providers:
  my-provider:
    base_url: https://api.example.com/v1
    key_cmd: "security find-generic-password -s api-key -w"
    # 每次请求时执行命令,从 stdout 读取 key

实际意义:不再需要把 API Key 明文写在 config.yaml 里。可以用系统密钥链、Vault、或任何命令来动态获取。

Profile 作用域解析

Provider 的 API Key 解析现在正确走 Profile 作用域。不同 Profile 可以用不同 Provider 的 Key。


重点八:委托限制大幅提升

配置项旧默认值新默认值说明
delegation.max_concurrent_children310并行子代理上限
delegation.max_iterations50250单个子代理迭代上限
1
2
3
4
5
# config.yaml
delegation:
  max_concurrent_children: 10
  max_iterations: 250
  max_spawn_depth: 1  # 嵌套深度不变

实际意义:以前并行 delegate_task 最多 3 个子代理,超过会排队。现在 10 个并行,复杂任务效率翻 3 倍。


重点九:其他实用改进

/loop 命令(Claude Code 对等功能)

1
/loop 30m 检查一次构建状态

会话内定时唤醒,类似 Claude Code 的 recurring wakeups。

Wake Word(语音唤醒)

远程桌面现在支持语音唤醒。客户端麦克风流式传输,Hermes 端检测唤醒词。

Hooks:pre_tool_call 内容转换

1
2
3
4
5
6
# config.yaml
hooks:
  pre_tool_call:
    - tool: terminal
      directive: modify
      transform: "strip_dangerous_commands"

工具调用前可以通过 modify 指令转换内容,实现安全过滤。

model_overrides 配置

1
2
3
4
5
6
7
8
9
# config.yaml
model_overrides:
  upstage:
    solar-pro4:
      context_window: 524288
  custom:my-local-vllm:
    my-llava-model:
      context_window: 8192
      supports_vision: true

手动覆盖模型元数据,解决新模型不在 models.dev 注册表中的问题。

其他修复

修复说明
Cron 路径安全NUL 字节防护,拒绝恶意路径
更新后模块重载升级后不再需要手动重启
提示缓存别名缓存键支持别名
Kanban 通知修复订阅通知恢复正常
ACP 探测优化三态探测 + 缓存,不再每次启动都探测
chat -c 报错失败时清晰报错,不再静默吞掉错误
background_review 成本新增费用归因和开关控制

升级建议

你的情况建议
v0.20.0 用户建议升级。v0.20.1 的 Bot Mode + MCP 重构 + 压缩引擎值得升
v0.19.x 用户强烈推荐。A2A + Bot Mode + MCP 全面升级,跨代提升
v0.18.x 及以下逐步升级,先到 v0.19.1 稳定版再到 v0.20.2
新装用户直接装 v0.20.2

升级命令:

1
2
3
4
5
hermes update
# 或手动:
cd ~/.hermes/hermes-agent
git fetch --tags
git checkout v2026.8.16

写在最后

v0.20.x 用了 17 天、3544 个 commit,完成了三件事:

  1. 协议层:A2A + Bot Mode,Agent 之间终于能正式对话
  2. 管理层:MCP 管理重构,从配置文件到可视化一键操作
  3. 体验层:压缩引擎重写 + 委托限制提升 + 会话生命周期完善

v0.19 把桌面端做到了「好用」,v0.20 把 Agent 从「独行侠」变成了「团队玩家」。

下一步值得期待的:Bot Mode 生态扩展、更多官方 MCP 服务器、以及 A2A 协议的实际落地场景。


相关文章