Hermes Agent v0.17.0 → v0.18.0 版本对比
第 23 讲:迁移指南与最佳实践
基于 Hermes Agent 源码 · 2026-07-06
一、版本升级概览
本讲是 v0.17.0 → v0.18.0 对比系列的最后一讲。前两讲我们分析了架构演进(第21讲)和新特性详解(第22讲),本讲聚焦实际迁移——从配置变更、命令迁移到最佳实践,帮你安全、无痛地完成升级。
⚠️ 本次升级包含 2 个破坏性变更(命令改名、默认值调整),升级前请仔细阅读。
二、破坏性变更清单
本次升级共涉及 2,225 个文件,254,012 行新增代码。以下是需要手动处理的破坏性变更:
2.1 认证命令变更:hermes login → hermes auth
v0.16.0 使用 hermes login 登录 Nous Portal,v0.18.0 已统一为 hermes auth add nous。
# ❌ v0.16.0(已废弃) hermes login # ✅ v0.18.0(新命令) hermes auth add nous # 其他 provider 也使用 auth 子命令 hermes auth add openai hermes auth add anthropic hermes auth add vertex
配置文件中相关注释也已同步更新:
# cli-config.yaml.example 变更 - # "nous" - Nous Portal OAuth (requires: hermes login) + # "nous" - Nous Portal OAuth (requires: hermes auth add nous)
2.2 safe 工具集移除 MoA
safe 复合工具集不再包含 mixture_of_agents。如果你依赖 safe 工具集同时使用 MoA,需要显式添加:
# cli-config.yaml.example 变更
- # safe - web + vision + moa (no terminal access)
+ # safe - web + vision (no terminal access)
# 需要 MoA 的用户应显式声明:
platform_toolsets:
cli:
enabled_toolsets:
- web
- vision
- moa # 显式添加
三、配置变更对照表
以下是 v0.18.0 中所有新增和变更的配置项:
| 配置项 | 变更类型 | 旧值 | 新值 |
|---|---|---|---|
| stale_timeout_seconds | 默认值变更 | 300s | 90s |
| restart_drain_timeout | 默认值变更 | 60s | 0(立即中断) |
| Telegram rich_messages | 默认值变更 | true | false |
| agent.verify_on_stop | 新增 | — | auto |
| agent.coding_instructions | 新增 | — | [] |
| agent.max_verify_nudges | 新增 | — | 3 |
| agent.verify_guidance | 新增 | — | true |
| worktree_sync | 新增 | — | true |
| compression.in_place | 新增 | — | false |
| dashboard.oauth.self_hosted | 新增 | — | OIDC 支持 |
| Telegram command_menu | 新增 | — | max_commands: 60 |
| Telegram rich_drafts | 新增 | — | false |
四、升级步骤
4.1 标准升级流程
步骤 1:备份现有配置
⬇️
步骤 2:执行 hermes update
⬇️
步骤 3:检查配置迁移
⬇️
步骤 4:重新认证(如需要)
⬇️
步骤 5:验证功能正常
4.2 具体操作
1. 备份配置和会话数据:
# 备份 HERMES_HOME cp -r ~/.hermes ~/.hermes.backup.$(date +%Y%m%d) # 确认备份包含关键数据 ls ~/.hermes.backup.*/config.yaml ls ~/.hermes.backup.*sessions/
2. 执行升级:
# 管理式安装(推荐) hermes update # 手动 pip 安装 pip install --upgrade hermes-agent
3. 检查配置兼容性:
# 运行诊断 hermes doctor # 检查配置有效性 hermes config validate
4. 重新认证(如使用 Nous Portal):
# 如果 hermes login 不再可用 hermes auth add nous # 查看已配置的认证 hermes auth list
5. 验证关键功能:
# 测试基本对话 hermes --model gpt-5.5 "Hello, what version am I?" # 测试工具集 hermes --toolsets all "List files in current directory" # 测试 MoA(如已配置) hermes --model moa/deep-reasoning "Compare two approaches..."
五、安全加固注意事项
v0.18.0 包含 88 次安全相关提交,以下变更可能影响现有工作流:
| 安全变更 | 影响范围 | 操作建议 |
|---|---|---|
| /resume 会话恢复安全加固 | Gateway 所有平台 | 检查 /resume 日志,确认无异常拒绝 |
| /proc 文件读取限制扩展 | file 工具 | 不再影响正常使用,无需操作 |
| Shell 命令审批增强 | terminal 工具 | git push --force 等命令需要审批 |
| 浏览器安全边界收紧 | browser 工具 | CDP 连接要求本地验证 |
| aiohttp 依赖升级至 3.14.0 | 所有消息平台 | CVE 修复,自动完成 |
| Slack xapp- 令牌自动脱敏 | Slack 集成 | 日志中不再出现明文令牌 |
| 环境变量注入防护 | 所有平台 | HERMES_SESSION_* 不再泄漏到子进程 |
六、性能优化建议
6.1 超时配置调整
v0.18.0 将 stale_timeout_seconds 默认值从 300s 降至 90s。如果你使用大上下文或慢速模型,建议显式设置:
model: # 大上下文(128K+)建议 180-300s stale_timeout_seconds: 180 # 流式超时保持默认即可 # stream_timeout_seconds: 1800
6.2 代码验证功能配置
v0.18.0 引入了 verify_on_stop 机制,建议在编码场景中启用:
agent:
# 编码完成后自动提醒验证
verify_on_stop: auto
# 最多提醒 3 次
max_verify_nudges: 3
# 启用编码指导
verify_guidance: true
# 自定义编码指令
coding_instructions:
- "For UI work, don't run tsc/lint until I approve the look."
- "Clean the diff before you commit and push."
6.3 Worktree 同步策略
新增 worktree_sync 选项,控制 worktree 分支来源:
git: worktree: true # 默认 true:从远程最新提交创建 worktree worktree_sync: true # 设为 false 从本地 HEAD 创建(离线场景) # worktree_sync: false
七、Gateway 部署升级
7.1 重启行为变更
restart_drain_timeout 默认值从 60s 改为 0(立即中断)。如果你使用 systemd 管理 Gateway,需要注意:
agent: # 如需优雅关闭,显式设置 restart_drain_timeout: 60 # 注意:该值应远小于 systemd 的 TimeoutStopSec
7.2 新:Gateway 设置向导
v0.18.0 引入了 hermes raft 命令,提供交互式 Gateway 设置向导,简化了部署流程。支持自动检测平台、配置凭证和验证连接。
7.3 /resume 安全变更
本次升级对 /resume 命令进行了 10+ 次安全加固,包括:
🔹 所有平台 /resume 现在按调用者身份作用域隔离
🔹 Matrix 平台 /resume 按线程(thread)而非房间(room)隔离
🔹 无身份验证的调用者 /resume 直接拒绝(fail-closed)
🔹 共享群组 /resume 需要显式授权
🔹 持久化 /resume 需要来源证明(provenance)
八、桌面应用升级
8.1 安装器重新设计
桌面应用安装器完全重新设计,支持:
🔹 新的设计系统和 OS 主题适配
🔹 粒度化更新(选择性安装组件)
🔹 已安装主题标记(避免重复安装)
8.2 Managed Node.js 改进
Windows 用户特别注意,v0.18.0 大幅改进了 Managed Node.js 支持:
# hermes_constants.py 新增功能 - Windows 便携式 Node 自动下载与修复 - node_tool_runnable() 运行时验证 - hermes_managed_node_tree_present() 健康检查 - _heal_managed_node_windows() 自动修复 - Node 22 为目标版本(可配置 HERMES_NODE_TARGET_MAJOR)
九、常见问题排查
| 问题 | 原因 | 解决方案 |
|---|---|---|
| hermes login 命令不存在 | 命令已重命名 | 使用 hermes auth add nous |
| 会话过早超时 | stale_timeout 降至 90s | 配置 stale_timeout_seconds: 180 |
| /resume 被拒绝 | 安全策略收紧 | 检查用户授权和会话来源 |
| Windows Node 报错 | Managed Node 路径变更 | 运行 hermes update 自动修复 |
| Telegram 消息格式异常 | rich_messages 默认 false | 配置 rich_messages: true |
| MoA 在 safe 工具集中不可用 | MoA 已从 safe 移除 | 显式添加 moa 到 toolsets |
十、回滚方案
如果升级后遇到问题,可以回滚到 v0.17.0:
# 回滚到 v0.17.0 标签tag cd ~/.hermes/hermes-agent/ git checkout v2026.6.19 # 或使用 pip 回滚 pip install hermes-agent==2026.6.19 # 恢复配置备份 cp ~/.hermes.backup.*/config.yaml ~/.hermes/config.yaml
⚠️ 注意:回滚后新引入的配置项(verify_on_stop、coding_instructions 等)会失效,请在回滚后清理 config.yaml 中的新增字段。
十一、总结
v0.17.0 → v0.18.0 是 Hermes Agent 历史上改动量最大的版本之一。本系列三讲完整覆盖了:
🔹 第 21 讲:架构演进与核心变化(5,009 次提交,254K 行新增代码)
🔹 第 22 讲:新特性详解(MoA、代码验证、Vertex AI、Kanban、安全加固)
🔹 第 23 讲:迁移指南与最佳实践(破坏性变更、升级步骤、故障排查)
✅ 升级建议:先备份 → 再升级 → 检查 doctor → 验证功能。大多数用户只需 5 分钟即可完成升级。
— 系列导航 —
← 第 22 讲:新特性详解
v0.17.0 → v0.18.0 对比系列完结
下一系列:OpenCode 源码解析
📖 源码仓库:github.com/NousResearch/hermes-agent
关注公众号获取更多技术干货 🚀
夜雨聆风