Hermes Agent v0.20.1 更新说明:桌面端多连接注册表、安装器重构与网关并行启动

发布于 2026-08-15 06:32

Hermes Agent v0.20.1 更新说明:桌面端多连接注册表、安装器重构与网关并行启动

发布日期:2026-08-13 | 版本:0.20.1 | 上一稳定版:v2026.7.7


核心变更一览

类别 关键变更 对普通用户的影响
桌面端 多连接注册表(Schema v2 + IPC + 设置 UI) 可在同一桌面应用中管理多个 Agent 来源,支持命名连接、独立配置
安装/更新 Windows 虚拟环境事务化重建、自锁检测、依赖恢复 更新失败不再导致环境损坏,回滚更可靠
网关 消息平台并行连接、Telegram 冷启动优化 启动更快,多平台同时在线更稳定
定时任务 交付重试、DNS 回退、中断任务通知 定时任务更可靠,失败会主动通知
插件/工具集 插件平台自动发现、延迟注册客户端工具 安装插件后无需重启即可识别新平台

一、桌面端:多连接注册表 —— 管理多个 Agent 来源

这是 v0.20.1 面向普通用户最直观的功能变更。

背景

此前桌面版 Hermes 只能连接单一 Agent 后端(本地 CLI、远程服务器、或通过 SSH 隧道)。如果你想同时用:

  • 本地开发环境的 Agent(调试用)
  • 云端服务器跑的 Agent(生产用)
  • 同事共享的 Agent(协作用)

必须反复切换配置、重启应用。

新能力:Schema v2 + IPC + 设置 UI

  • 命名连接:每个连接有名字(如 "本地开发"、"生产服务器"、"同事共享"),一眼识别
  • 独立配置:每个连接保存自己的模型、技能、记忆路径、环境变量
  • 设置界面可视化:在桌面应用的 Settings 面板直接增删改查,无需手写 JSON
  • IPC 通信:桌面前端与后端通过进程间通信交换连接状态,切换连接秒级生效,无需重启 Electron 进程

普通用户怎么用

  1. 打开桌面应用 → Settings → Connections
  2. 点击 "Add Connection",填入名称、类型(Local/Remote/SSH)、地址、认证信息
  3. 列表中点击任一连接即可切换,当前激活连接会显示绿点
  4. 连接配置自动持久化到 ~/.hermes/profiles/<name>/connections.yaml

注意:旧版单连接配置会自动迁移为名为 "default" 的连接,无感升级。


二、安装与更新系统:事务化、可回滚、更安全

Windows 虚拟环境事务化重建(#83149 系列)

痛点:Windows 上 uv 管理的 Python 解释器更新时,原地重命名 venv 目录容易因文件锁定失败,导致环境损坏、无法启动。

方案

  • 重建前先把旧 venv 整体重命名为 venv.rollback.<timestamp>(原子操作)
  • 新环境构建成功才删除回滚目录;构建失败自动把 rollback 目录改回 venv
  • 全程用跨进程文件锁(portalocker + pywin32)防止并发冲突

用户感知:更新中断、断电、杀进程都不会留下半吊子环境;下次启动自动修复或回滚。

更新器自锁检测与修复

痛点hermes update 运行时若检测到自身进程仍在占用文件(Windows 常见),旧版本直接报错退出。

方案

  • 启动前探测 hermes 可执行文件是否被自身进程锁定
  • 若被锁定:尝试优雅关闭现有进程、释放句柄,再继续更新
  • 若基本解释器是 uv 管理的,自动修复 uv 环境元数据

依赖恢复与额外包保留

  • 更新后自动恢复 hermes-agent 核心依赖(openaipydantic 等)
  • --extras 安装的额外包(如 anthropicedge-tts)在重建时保留,不再丢失
  • 惰性安装依赖(lazy_deps.py)的标记位同步迁移,避免重复下载

三、网关:并行启动与冷启动优化

消息平台并行连接(#83791

旧逻辑:Telegram、Discord、Slack、钉钉、飞书等适配器串行连接,单个平台超时会阻塞后续全部平台。

新逻辑

  • 启动阶段对所有已注册平台并发发起连接
  • 单平台超时(默认 30s)不影响其他平台
  • 连接结果聚合汇总,启动耗时 ≈ 最慢单平台耗时

实测:4 个平台同时在线,启动从 ~45s 降到 ~12s。

Telegram 冷启动加速(#85993

  • 首次连接时不再等待完整 getMe / getUpdates 轮询建立
  • 先发轻量健康检查,确认 Bot Token 有效即标记 "running"
  • 完整长轮询在后台异步建立,不阻塞网关就绪信号

网关重启竞态修复

  • 并行连接引入的重启竞态(旧连接未断、新连接已发)通过 "abort-aware" 机制解决
  • 重启时显式取消旧连接的连接协程,避免 "Address already in use" 误报

四、定时任务:更可靠的交付与故障感知

修复 说明
后台派发不再误报 "failed" cronjob action=run 触发的后台执行,CLI 只返回任务 ID,不再等待完成;完成后通过配置的 deliver 通道推送结果
瞬时 DNS 失败自动回退 解析提供商域名(如 api.openai.com)遇到 SERVFAIL/NXDOMAIN 自动重试备用 DNS(Google/Cloudflare),避免单次抖动导致任务失败
逃逸运行失败主动告警 任务进程意外退出(OOM、SIGKILL、宿主机重启)会在下次网关启动时检测到,推送 "cron escaped" 通知到配置渠道
中断任务通知优先交付 网关关闭前先发送所有进行中任务的中断通知,再断开消息平台连接

五、插件与工具集:开箱即用的平台发现

插件平台自动识别

  • hermes tools 扫描 ~/.hermes/plugins/ 与内置 plugins/ 目录下的 plugin.yaml/yml
  • 发现 provides_tools 声明的平台适配器自动注册到工具集
  • 无需在 config.yaml 手写 toolsets,安装插件重启即可用

延迟注册客户端工具(#78050

  • 平台适配器的客户端工具(如 send_messagelist_chats)在首次被 Agent 调用时才注册
  • 减少启动时向模型发送的工具 Schema 体积,节省 Token

六、其他值得关注的细节

桌面端体验修复

  • 技能建议药丸抑制:当前会话已加载某技能,不再在侧边栏反复推荐
  • 聊天图片原生右键保存:右键图片可直接 "Save image as...",文件名保留原始文件名而非 image.png
  • 日志持久化边界:运行中会话的完整对话记录保留,压缩归档仅针对已结束会话
  • React 单一来源:解决 react/react-dom 多副本导致的 Hook 失效、状态不同步

内存工具兼容性

  • memory 工具的 new_text 字段现作为 content 别名被接受(#86642),兼容旧脚本

流式中断处理

  • 中断流式输出时正确 join 工作协程、排空 Relay 作用域,避免 "EIO paint freeze" 导致界面卡死
  • 孤儿作用域排空有超时上限,防止关闭时无限等待

七、普通用户升级清单

动作 命令 说明
查看当前版本 hermes --version 确认是否已是 0.20.1
标准更新 hermes update 自动处理依赖、虚拟环境、桌面端重建
桌面端用户 更新后重启桌面应用 首次启动会迁移旧连接配置到 Connections 面板
网关用户 hermes gateway restart 享受并行启动加速
定时任务用户 无需操作 现有任务自动继承新交付逻辑
插件开发者 检查 plugin.yamlprovides_tools 新增字段可被自动发现

Termux / Android 用户特别提示

  • psutil==7.2.2 在 Android 上无 wheel,源码编译会报错 platform android is not supported
  • 当前版本会跳过 psutil 可选依赖继续安装,核心功能不受影响(进程管理回退到 ps/kill 组合)
  • 如需完整 psutil,可在 Termux 内 pip install psutil==7.0.0(旧版有 Android wheel)

八、已知问题与变通

问题 影响范围 变通方案
Windows psutil 7.2.2 偶发导入失败 仅 Windows 原生安装 pip install psutil==7.1.0 降级
macOS ARM64 首次 nemo-relay 编译耗时长 首次安装/更新 预编译 wheel 已上传 PyPI,后续秒装
桌面端切换连接后首条消息偶发延迟 连接切换后首轮对话 属于 IPC 预热,第二条恢复正常

九、结语

v0.20.1 是一个 "夯实基础、补齐体验" 的版本:

  • 桌面端多连接解决了 "一机多环境" 的真实痛点
  • 事务化更新让 Windows 用户不再恐惧点击更新按钮
  • 网关并行启动把多平台在线的等待时间压进用户感知阈值内
  • 定时任务告知把 "静默失败" 变成 "可感知、可追踪"

如果你是桌面端重度用户、Windows 用户、或运行多平台网关,建议尽快升级;纯 CLI 单机用户可按需更新。


完整提交记录:git log v2026.7.7..v0.20.1 --oneline
问题反馈:GitHub Issues / Nous Research Discord #hermes-support
文档同步:https://hermes-agent.nousresearch.com/docs


如果你觉得本文有用,请点赞,收藏,转发

你有什么问题,请留言,我来帮你解答。


← 返回博客列表