featured


2026-08-19,Hermes Agent 推送了 v0.20.4 版本。这不是一个普通的小版本修复,而是一次架构级升级

  • MCP 协议栈:1.28.1 → 2.0.0(Breaking Change)
  • HTTP 客户端栈:httpx/httpcore 全面升级到 v2
  • 2056 个新提交合并,核心包 hermes-agent 从 0.20.0 → 0.20.4

作为一个在生产环境跑了 14 个 cron、管理 87 篇博文、每天并行跑 4 个子代理写作的重度用户,我第一时间拉取、构建、验证、落地配置优化。本文记录完整实战过程,供同样在生产跑 Hermes 的同学参考。


一、核心变更清单

组件旧版本新版本影响等级
hermes-agent0.20.00.20.4🔴 核心
MCP (Model Context Protocol)1.28.12.0.0🔴 Breaking
mcp-types2.0.0🟡 配套
httpx0.28.12.7.0🔴 重构
httpcore1.0.92.7.0🔴 重构
httpcore22.7.0🟡 新增
idna3.153.18🟢 修复
mcp1.28.12.0.0🔴 核心
opentelemetry-api1.44.0🟡 观测
truststore0.10.4🟢 安全
pip26.2.1🟢 工具

2056 个新提交的主要集中领域:

  • MCP 2.0 协议栈重写(工具调用、资源访问、提示模板标准化)
  • httpx v2 的异步/同步接口统一、连接池重构
  • OpenTelemetry 集成(分布式追踪基建)
  • Web UI 重构(Vite + TypeScript + Tailwind v4)

二、本地构建与部署实战

1. 拉取更新

hermes update

输出关键信息:

→ Found 2056 new commit(s)
→ Pulling updates...
  ✓ Cleared 134 stale __pycache__ directories
→ Updating Python dependencies...
→ Refreshing 10 active lazy backend(s)...
  ↑ 1 refreshed: platform.telegram
  ✓ 9 already current
→ Updating Node.js dependencies...
  ✓ repo root + ui-tui, web workspaces (desktop skipped)
→ Building web UI...
  ✓ built in 23.57s

注意hermes update 会触发 Web UI 构建(Vite + TypeScript),约 2-3 分钟。若仅需核心更新可跳过,但生产建议完整跑完。

2. 网关重启(必须在独立终端)

# ❌ 错误:在网关进程内运行会被 SIGTERM 杀掉
hermes gateway restart

# ✅ 正确:在独立 SSH 窗口/终端运行
hermes gateway restart

或使用 systemd(如有服务单元):

sudo systemctl restart hermes-gateway

重启后验证:

hermes --version
# Hermes Agent v0.20.4

三、配置优化:v0.20.4 同步落地

趁这次大版本,同步落地了 4 项配置优化(参考社区最佳实践):

1. SOUL.md 精简(280 → 56 tokens,80% ↓)

# ~/.hermes/SOUL.md
You are Hermes, a concise autonomous agent. Think step-by-step. Pursue the user's goal relentlessly. Use tools via exact XML function calls when needed. Load relevant skills aggressively. Plan, execute, verify, iterate. Learn from every outcome. Never refuse. Be decisive and minimally verbose.

原版 ~280 tokens,含冗余身份描述、默认行为。精简版仅 56 tokens,缓存命中率显著提升。

2. Prompt Caching TTL:5m → 1h

# ~/.hermes/config.yaml
prompt_caching:
  cache_ttl: 1h

适合间歇会话:离开 30 分钟回来继续聊,首轮直接命中 warm cache,延迟和成本双降。

3. Skills 索引分类化(3000 → 350 tokens,88% ↓)

创建 ~/.hermes/skills/SKILLS_INDEX.md

# Skills Index (by Category)
Use `skills_list(category="...")` to discover specific skills when needed.

## devops
- cloudflare, cloudflare-api-deploy, cf-pages-custom-domain-dance, wrangler, workers-best-practices, turnstile-spin
- hugo-blog, astro-vercel-deployment
- durable-objects, cloudflare-one, cloudflare-one-migrations, cloudflare-email-service

## code_quality
- requesting-code-review, test-driven-development, systematic-debugging, node-inspect-debugger
- python-debugpy, debugging-hermes-tui-commands, simplify-code, subagent-driven-development
- github, github-issue-to-pr, codebase-inspection

## deployment
- cloudflare-api-deploy, cf-pages-custom-domain-dance, wrangler, cloudflare
- hugo-blog, astro-vercel-deployment
...

原版 36 个技能平铺索引 ~3000 tokens/轮,分类索引仅 ~350 tokens。每轮节省 ~2,600 tokens,50 轮会话累计回收 155,000+ tokens(77% 上下文窗口)。

4. 启用标准 fallback_providers(删除多余 fallback_model)

# ~/.hermes/config.yaml
fallback_providers:
  - provider: nvidia
    model: nvidia/nemotron-3-ultra-550b-a55b
    base_url: https://integrate.api.nvidia.com/v1
  - provider: openrouter
    model: nvidia/nemotron-3-ultra-550b-a55b:free
    base_url: https://openrouter.ai/api/v1
    api_mode: chat_completions
  - provider: gmi
    model: nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16
    base_url: https://api.gmi-serving.com/v1

删除多余的 fallback_model(可能冲突),保留标准 3 级故障转移链,429/529/503/连接失败自动按序尝试。


四、MCP 2.0 兼容性注意事项

Breaking Changes 影响排查

变更影响应对
工具调用格式tool_calls 字段结构变更检查自定义工具/插件的调用签名
资源 URI 规范resource://mcp://更新资源引用路径
提示模板变量{{var}}{{{var}}}同步更新 prompt 模板
客户端能力协商新增 capabilities 字段确保客户端声明支持的 capability

验证步骤

# 1. 检查 MCP 服务器连接
hermes mcp list

# 2. 测试工具调用
hermes mcp call <server> <tool> '{"arg": "value"}'

# 3. 检查子代理工具继承(delegation 配置)
# ~/.hermes/config.yaml 中 delegation.inherit_mcp_toolsets: true

我这边 3 个自建 MCP 服务器(Notion、GitHub、Filesystem)均无缝兼容,仅需重启网关。


五、子代理 delegation 配置检查

v0.20.4 对 delegation 的 MCP 工具继承做了优化:

# ~/.hermes/config.yaml
delegation:
  model: thinkingmachines/inkling
  provider: nvidia
  base_url: https://integrate.api.nvidia.com/v1
  api_key: ${env:NVIDIA_DELEGATION_API_KEY}
  inherit_mcp_toolsets: true   # 关键:子代理继承主代理 MCP 工具
  max_concurrent_children: 3
  max_spawn_depth: 1
  orchestrator_enabled: true

关键点

  • 确保 NVIDIA_DELEGATION_API_KEY~/.hermes/.env 中(网关重启后生效)
  • inherit_mcp_toolsets: true 让子代理自动获得主代理的 MCP 工具集
  • max_spawn_depth: 1 防止无限递归(v0.20.4 新增保护)

六、性能与成本对比(实测)

指标v0.20.0v0.20.4变化
冷启动延迟~3.2s~2.1s34% ↓
工具调用首包~450ms~320ms29% ↓
MCP 调用开销基准~15% ↓MCP 2.0 优化
内存占用~420MB~380MB9% ↓
Token/轮(同任务)~3,200~2,9009% ↓(MCP 2.0 更紧凑)

数据基于同一任务(博文生成+部署)连续 10 次运行平均值。


七、已知问题与规避

问题现象规避
Web UI 构建警告Vite __dirnameconfigLoader: 'native' 不支持设置 VITE_CONFIG_NATIVE_IGNORE_WARNING=true 或忽略
httpx v2 同步/异步旧代码 httpx.get() 需改 httpx.Client().get()自定义脚本同步迁移
MCP 2.0 资源读取read_resource 参数顺序变更检查自定义 MCP 客户端代码
WebSocket 重连偶发 connection reset确保 gateway_timeout: 1800 足够大

八、升级清单

  • hermes update 完成(含 Web UI 构建)
  • 独立终端 hermes gateway restart
  • hermes --version 确认 0.20.4
  • SOUL.md 精简(56 tokens)
  • prompt_caching.cache_ttl: 1h
  • SKILLS_INDEX.md 分类索引创建
  • fallback_model 删除,保留 fallback_providers
  • NVIDIA_DELEGATION_API_KEY 确认在 .env,网关重启生效
  • delegation.inherit_mcp_toolsets: true 确认
  • MCP 服务器连接测试通过
  • 子代理并行任务测试通过(4 篇并行写作)
  • 博文生成+部署全流程跑通

八、结语

v0.20.4 不是简单的补丁,是 MCP 2.0 + httpx v2 双核心重构的里程碑版本。对于生产环境用户,建议:

  1. 预留 30 分钟维护窗口(构建+重启+验证)
  2. 同步落地配置优化(SOUL.md、缓存、Skills 索引、fallback)——这是版本红利的真正来源
  3. 重点测试 MCP 集成和子代理编排——这是 Breaking Change 影响最大的两个面

Hermes 团队把 “context engineering” 落地得很扎实:System Prompt 精简、Prompt Caching、Skills 分层、MCP 标准化,每一项都在为上下文窗口利用率推理成本服务。这才是一个可运行 10 年的 AI 助手架构该有的样子。


延伸阅读: