乐于分享
好东西不私藏

Hermes Agent 源码-v0.17大更新!和v0.16源码差在哪?

Hermes Agent 源码-v0.17大更新!和v0.16源码差在哪?

Hermes Agent v0.16.0 → v0.17.0 版本对比

第 21 讲:架构演进与核心变化

基于 Hermes Agent 源码 · 2026-07-04

一、版本概览

本次对比覆盖 Hermes Agent 从 v0.16.0 (v2026.6.19)v0.17.0 (v2026.7.1) 的完整演进,历时约 12 天,是 Hermes 历史上改动量最大的版本迭代之一。

📊 版本数据总览

指标 数值
提交总数 1,760 次
文件变更 2,225 个文件
代码增删 +254,012 / -41,540 行
新特性 (feat) 239 次
Bug 修复 (fix) 1,179 次
安全加固 (security) 88 次
代码重构 (refactor) 106 次

二、架构演进全景

v0.17.0 的核心架构变化可以归纳为六大方向

方向 1:MoA (Mixture of Agents) 系统落地

MoA 是 v0.17.0 最重大的新特性,实现了多模型并行咨询 + 聚合器决策的架构模式。30+ 次 MoA 相关提交,从概念验证走向生产可用。

核心提交链:

c6575df feat(moa): expose MoA presets as selectable virtual models

4d2351a feat(moa): stream the aggregator response to the user

2e8748e feat(moa): opt-in full-turn trace persistence to JSONL

7c38249 feat(moa): references see full tool state + fire on every user/tool response

a653bb0 refactor(moa): unify slot provider-identity on the single call_llm chokepoint

架构意义:MoA 不是简单的"多模型调用",而是引入了全新的虚拟 Provider 层,在 Provider 抽象之上增加了一层"预设路由器"。每个 MoA preset 包含 advisor 模型列表和 aggregator 模型,形成"咨询-聚合"两阶段推理。

方向 2:安全加固 — 系统性防御升级

88 次安全相关提交,覆盖6 大安全域,是 Hermes 历史上最密集的安全加固周期。

🔒 安全加固六大域

⬇️

① Gateway IDOR 防护 — /resume 和 /sessions 作用域隔离

⬇️

② Shell 注入防御 — 硬底线规则 + 缩写标志拦截

⬇️

③ SSRF 防护 — httpx 下载钩子 + 元数据端点封锁

⬇️

④ 浏览器安全 — 私有网络守卫 + 凭据查询黑名单

⬇️

⑤ 凭据保护 — 子进程环境净化 + 日志脱敏

⬇️

⑥ 插件安全 — tool_override 授权 + 非捆绑插件隔离

方向 3:压缩系统重构 — In-place Compaction 默认启用

上下文压缩系统经历了一次重大架构升级:in_place 模式从实验性选项变为默认行为

关键变更链:

2107b86 feat(compression): flip in_place default to True

47fadc2 feat(compression): in-place compaction option that keeps one session id

b795a45 fix(compaction): detect and strip merge-into-tail summaries past the delimiter

8972404 fix(acp): stop _persist from deleting compression-archived history

架构变化:之前压缩会创建新 session ID(session rotation),现在压缩后保持同一 session ID,archived 历史记录通过 soft-archive 保留,session_search 仍可发现。

方向 4:Desktop 应用架构重构

Desktop 端经历了最大规模的重构,从"单体文件"走向"模块化组件"架构。

重构规模:30+ 次 desktop refactor 提交

fa7bce0 refactor(desktop): colocate hook/component families into scoped folders

88e29e3 refactor(desktop): split sidebar/index.tsx god file into focused modules

7ff6908 refactor(desktop): split thread.tsx god file into focused modules

18d54bf refactor(desktop): split onboarding overlay god file into onboarding/ folder

新特性:Memory Graph 可播放径向时间线、Project Workspace 工具、多终端面板、漫游宠物、Codex 风格审查面板。

方向 5:Gateway 架构升级

Gateway 端核心文件 gateway/run.py 改动最大(+3,193 行),引入多项架构改进:

🔹 Scale-to-zero 空闲检测 — 休眠静默机制 (Phase 0)

🔹 外部排空触发 — accept-gating 控制通道

🔹 Relay 多平台每代理 — Phase 1.5 多身份支持

🔹 AsyncSessionDB 卸载 — 数据库操作异步化

🔹 平台适配器插件化 — Slack/DingTalk/WhatsApp 等迁移至内置插件

方向 6:Provider 扩展与认证增强

新增 Google Vertex AI Provider(OAuth2),移除 Google Gemini CLI 和 Antigravity OAuth providers。

c73e743 feat(vertex): add Google Vertex AI provider for Gemini (OAuth2)

3f6c6bd fix(vertex): surface Vertex on the desktop Keys tab for provider parity

三、核心模块变更详情

3.1 Agent 核心 (agent/)

变更域 关键变更
验证系统 pre_verify hook + verify-on-stop 编码指导,默认关闭
消息持久化 按内在标记持久化消息,阻止 id() 重用导致的数据丢失
委托系统 子代理始终继承父代理工具集,移除 model-facing toolsets 参数
错误分类 5xx 上下文溢出路由至压缩,Anthropic 订阅耗尽指导
编码指令 新增 configurable coding_instructions

3.2 Gateway 网关 (gateway/)

变更域 关键变更
IDOR 防护 /resume 和 /sessions 按调用者来源作用域隔离,10+ 次安全提交
Auto-resume 验证用户授权后再自动恢复,失败则关闭
Scale-to-zero 空闲检测 + 休眠静默,go_dormant() 传输模式
插件化 Slack/DingTalk/WhatsApp/Matrix 等迁移至内置插件
Relay 升级 多平台每代理、scope_id 统一、休眠原语

3.3 新增/废弃功能对照

新增功能 说明
MoA Presets 虚拟模型选择器,CLI/桌面/Web 全表面支持
Vertex AI Provider Google Vertex AI OAuth2,Gemini 模型支持
Project Workspace 项目工具 + Git worktree + 审查面板
/learn Skill 系统 从任意描述蒸馏可复用 skill
Memory Graph 可播放径向时间线,记忆 + 技能图谱
/journey 时间线 CLI + TUI 学习节点时间线
Background Fan-out 并行子代理,一个汇总返回
Computer Use 跨平台 cua-driver (macOS/Windows/Linux)
废弃/移除 说明
Google Gemini CLI Provider 被 Vertex AI Provider 替代
Google Antigravity OAuth 认证方式变更
Open WebUI messaging 文档中移除
verify_on_stop 默认开启 v32 迁移翻转为默认关闭

四、架构对比图

v0.16.0 → v0.17.0 架构演进

v0.16.0 架构

CLI / Gateway / Cron → AIAgent → Tool Registry + Session DB

Provider 抽象层 (20+ providers)

⬇️ 核心变化 ⬇️

v0.17.0 架构

+ MoA 虚拟 Provider 层 (Presets 路由器)

+ 安全中间件层 (IDOR/SSRF/Shell 注入防护)

+ In-place Compaction (session 内压缩)

+ Scale-to-zero + Relay 多平台架构

+ 插件化平台适配器 (Slack/WhatsApp 等)

五、代码规模变化

模块 变更量 主要变化
gateway/run.py +3,193 行 IDOR 防护、MoA 路由、平台插件化
gateway/session.py +579 行 压缩会话管理、持久化 /resume
gateway/relay/ +1,318 行 多平台每代理、休眠原语
gateway/slash_commands.py +887 行 /journey、/goal、/learn 等新命令
agent/ 大量变更 验证系统、消息持久化、委托改进
apps/desktop/ 大规模重构 30+ refactor 提交,组件模块化

六、关键设计决策分析

决策 1:MoA 作为虚拟 Provider 而非独立模块

设计选择:MoA preset 被暴露为"可选虚拟模型",而非独立子系统。

这意味着 MoA 复用现有的 Provider 抽象层,通过 virtual provider row 注册到模型选择器中。CLI、Desktop、Dashboard 的模型切换器天然支持 MoA preset,无需额外 UI 开发。

决策 2:安全加固优先于功能开发

设计选择:88 次安全提交占全部提交的 5%,远超常规比例。

/resume IDOR 防护用了 10+ 次提交逐步收紧,从"宽松默认"到"fail-closed"。这种渐进式加固模式避免了大规模行为变更导致的回归风险。

决策 3:In-place Compaction 成为默认

设计选择:压缩后保持同一 session ID,archived 历史 soft-archive 而非删除。

这解决了之前 session rotation 导致的"压缩后丢失历史上下文"问题。代价是 session DB 需要维护 archived rows,但 session_search 仍可发现压缩归档内容。

七、总结

v0.17.0 的核心价值:

🔹 MoA 系统从实验走向生产,多模型并行推理正式可用

🔹 安全加固覆盖 6 大安全域,IDOR/SSRF/Shell 注入全面防御

🔹 压缩系统重构,in-place compaction 默认启用

🔹 Desktop 端大规模模块化重构,组件化架构成型

🔹 Gateway 引入 Scale-to-zero 和插件化平台适配器

🔹 新增 Vertex AI、Project Workspace、/learn、/journey 等关键特性

下一讲(第 22 讲)将深入分析 MoA 系统、代码验证、Vertex AI、Kanban 改进和安全加固的具体实现细节。

📚 系列导航

← 第 20 讲:Hermes Agent 总结与实战指南

第 22 讲:新特性详解 →

关注公众号获取更多技术干货

🔗 源码仓库:https://github.com/NousResearch/hermes-agent