v0.6.0

Hermes Agent v0.6.0 — 多实例版本


概览

v0.6.0 — 多实例版本(The Multi-Instance Release),2026 年 3 月 30 日发布。95 个 pull request · 16 个 issue 关闭 · 仅用 2 天 完成。

这个版本是 Hermes Agent 从“单会话助手”到“可扩展多实例基础设施”的分水岭。核心功能 Profiles(多实例配置) 让你在同一份安装中运行多个完全隔离的 Hermes 实例——每个实例有独立的配置、记忆、会话、技能和 Gateway 服务。再加上全新的 MCP Server 模式Docker 容器 支持和 有顺序的 Provider 降级链,v0.6.0 是 Hermes 第一个真正胜任生产环境负载的版本。

同时,这个版本也标志着 Hermes 正式进入中国企业市场——原生 飞书/Lark企业微信(WeCom) 适配器,以及 Telegram(Webhook 模式)、Slack(多工作区 OAuth)等六大消息平台的重大升级。

正如 The NextGen Tech Insider 所评价的,这个版本“将 Agent 从单会话工具转变为可扩展的基础设施组件,能够在共享硬件上运行具有独立记忆状态的隔离工作负载。”


重磅功能

1. Profiles — 多实例 Hermes

一份安装、多个完全隔离的 Hermes 实例并行运行。每个 Profile 拥有独立的配置、记忆、会话、技能库和 Gateway 服务,完全隔离,零交叉干扰。

# 创建新 Profile
hermes profile create my-work-agent

# 列出所有 Profile
hermes profile list

# 切换到某个 Profile
hermes -p my-work-agent

# 导出 Profile 用于分享或备份
hermes profile export my-work-agent > my-work-agent.tar.gz

# 在另一台机器上导入
hermes profile import my-work-agent.tar.gz

核心特性:

  • Token 锁隔离——防止两个 Profile 使用同一个 Bot 凭据,哪个 Profile 占用了哪个凭据,错误信息一清二楚
  • Profile 名 Tab 自动补全——所有 CLI 命令均支持
  • Profile 感知的路径显示——所有面向用户的 ~/.hermes 路径都会正确显示当前 Profile 的目录
  • 懒加载导入——防止 hermes update 时模块缓存过期字节码导致的 ImportError

这就是让 Hermes 成为生产级基础设施工具的关键架构:同一份安装里,同时跑一个客服 Agent、一个代码审查 Agent、一个调研 Agent,各自有完全独立的记忆和凭据。不用再从“这几个用途选哪个”了。

2. MCP Server 模式

把 Hermes 的对话、会话和附件暴露给任何 MCP 兼容客户端——Claude Desktop、Cursor、VS Code 等等。

# 通过 stdio 启动 MCP Server(用于 Claude Desktop 等本地客户端)
hermes mcp serve

# 通过 Streamable HTTP 启动(用于远程网络客户端)
hermes mcp serve --transport streamable-http --port 3000

MCP 客户端可以做什么:

  • 浏览 Hermes 的对话历史、逐条查看消息
  • 跨会话搜索特定主题或代码片段
  • 管理附件(上传、下载、列表)
  • 访问 Hermes 长期积累的完整上下文引擎

正如 MurmurCast 所总结的:“MCP Server 模式让 Hermes 的对话和历史可以通过标准化协议被其他 AI 工具访问。“这是双向 MCP 集成——Hermes 既能消费外部 MCP 服务器的工具,也能对外暴露自己的上下文给其他 MCP 客户端。

3. Docker 容器

官方 Dockerfile 支持,可在容器化环境中运行 Hermes Agent。同时支持 CLI 模式和 Gateway 模式。

# 构建容器
docker build -t hermes-agent .

# CLI 模式,挂载配置卷
docker run -it -v ~/.hermes:/root/.hermes hermes-agent

# Gateway 模式
docker run -d -v ~/.hermes:/root/.hermes -p 8080:8080 hermes-agent hermes serve

关闭了 #850——最早、呼声最高的社区需求之一。

4. 有序 Provider 降级链(Fallback Provider Chain)

配置多个推理 Provider,自动故障转移。主 Provider 报错或不可达时,Hermes 自动尝试链中的下一个。

# hermes.config.yaml
provider:
  name: openai
  model: gpt-5
  fallback_providers:
    - name: anthropic
      model: claude-sonnet-4-20250514
    - name: openrouter
      model: google/gemini-2.5-pro

这意味着什么: v0.6.0 之前,Provider 一挂,你的 Agent 就哑了。现在,Hermes 优雅降级——用户甚至可能没察觉到发生了故障转移。再加上 Provider 切换时的 api_mode 修复(切换 Provider 后不再残留旧的 api_mode 导致 404),Provider 管理正式进入生产级别。

其他 Provider 改进:

  • 禁止静默 OpenRouter 回退——没有配置 Provider 时,Hermes 现在直接报清晰错误,而不会偷偷走 OpenRouter
  • Gemini 3.1 预览模型加入 OpenRouter 和 Nous Portal 目录
  • 429 限流人性化提示,带 Retry-After 倒计时
  • 优先使用精选模型列表,当 API 探测返回的模型数较少时不覆盖

5. 飞书/Lark 和企业微信——中国企业通讯平台

两个全新的一级消息平台适配器:

飞书/Lark:

  • 事件订阅、消息卡片、群聊
  • 图片和文件附件支持
  • 交互式卡片回调
  • 与现有平台同等的完整 Gateway 适配器能力

企业微信(WeCom):

  • 文本、图片、语音消息支持
  • 群聊 + 回调验证
  • 完整的消息生命周期管理
# hermes.config.yaml — 飞书配置示例
gateway:
  platforms:
    - platform: feishu
      app_id: cli_xxxxx
      app_secret: xxxxx
      encrypt_key: xxxxx
      verification_token: xxxxx

关闭 #1788

6. Slack 多工作区 OAuth

一个 Hermes Gateway 通过 OAuth token 文件连接多个 Slack 工作区。每个工作区拥有独立的 Bot Token,按入站事件动态解析。

# slack_oauth_tokens.json — 一个文件,多个工作区
{
  "workspaces": {
    "T01ABCDEF": "xoxb-...",
    "T02GHIJKL": "xoxb-..."
  }
}

不再需要为每个工作区运行独立的 Gateway 实例——一个 Gateway 全部搞定。

7. Telegram Webhook 模式与群聊控制

Webhook 模式——生产部署中替代长轮询的更优方案:

# 以 Webhook 模式运行 Telegram 适配器
# 响应更快,更适合反向代理后的生产环境
hermes serve --telegram-webhook-url https://your-domain.com/telegram/webhook

群聊提及控制——精确配置机器人在群聊中何时响应:

gateway:
  platforms:
    - platform: telegram
      group_mention_policy: mentioned  # 'always' | 'mentioned' | 正则匹配模式

同时,优雅处理被删除的回复目标——消息被删后不再崩溃(#3229)。

8. Exa 搜索引擎

新增 Exa 作为 Firecrawl 和 DuckDuckGo 之外的备选网页搜索与内容提取后端。

# 设置 Exa API Key
export EXA_API_KEY=your-key-here
# hermes.config.yaml
tools:
  web_search:
    preferred_backend: exa  # 可选 'firecrawl'、'duckduckgo'

Exa 提供的语义搜索能力与现有后端互补,尤其适合对调研能力要求高的 Agent 工作流。

9. 远程后端的技能与凭据挂载

将技能目录和凭据文件挂载到 Modal 和 Docker 容器中,让远程终端会话也能访问和本地执行同样的技能和密钥。

# hermes.config.yaml
terminal:
  remote_backend: modal  # 或 'docker'
  mount_skills: true
  mount_credentials: true

关闭 #3665#3433


新增内置工具与技能

工具 / 技能 描述
Exa Search 语义网页搜索与内容提取后端
MCP 动态工具发现 响应 notifications/tools/list_changed——无需重连即可自动感知 MCP Server 新增工具
memento-flashcards 间隔重复闪卡系统(新技能)
songwriting-and-ai-music AI 音乐创作与歌词写作提示词(新技能)
SiYuan Note 思源笔记集成(新技能)
Scrapling 基于 Scrapling 库的网页抓取技能(新技能)
one-three-one-rule 沟通框架技能(新技能)
Boot-md hook Gateway 启动时自动运行 BOOT.md 文件的内置钩子示例

插件系统新增能力:

  • hermes plugins enable/disable <name>——不需删除即可管理插件开关状态
  • ctx.inject_message()——插件可以代表用户向对话流中注入消息
  • Honcho 自托管支持——无需 API key 即可使用本地 Honcho 实例

消息平台更新

Discord

  • 消息处理动画——处理中显示 reaction emoji,完成后移除(频道内的视觉反馈)
  • DISCORD_IGNORE_NO_MENTION——跳过 @提及其他用户或机器人但未 @提及 Hermes 的消息
  • 修复 “thinking…” 残留——斜杠命令完成后正确清除“思考中”指示器

WhatsApp

  • 持久化 aiohttp session——跨请求复用 HTTP 连接
  • LID-phone 别名解析——正确匹配 Linked ID 和手机号格式的白名单
  • Bot 模式跳过回复前缀——消息格式更干净

Matrix

  • MSC3245 原生语音消息——以标准 Matrix voice event 发送语音消息,不再退化为文件附件

Mattermost

  • 可配置 @提及行为——无需 @提及即可响应消息

Signal

  • URL 编码手机号并修正附件 RPC 参数——修复部分手机号格式导致的发送失败

Email

  • 失败时关闭 SMTP/IMAP 连接——防止异常场景下的连接泄漏

Gateway 核心改进

  • 原子化配置写入——Gateway 崩溃时防止配置数据丢失
  • Home Channel 环境变量覆盖——统一应用环境变量覆盖
  • 用 logger 替代 print()——BasePlatformAdapter 改用标准日志系统
  • Cron 投递标签——通过频道目录解析人类可读的投递标签
  • Cron [SILENT] 加固——防止 Agent 以 [SILENT] 前缀规避消息投递
  • 后台任务媒体投递和视觉下载超时修复

CLI 与用户体验改进

  • 可配置工具预览长度——默认显示完整文件路径,不再截断
  • 工具 Token 用量显示——hermes tools 检查清单现在显示每个工具集的预估 token 成本
  • 会话导出 stdout 支持——通过 - 将会话导出到标准输出,方便管道操作
  • 可配置审批超时——设定危险命令审批提示的等待时间,超时自动拒绝
  • 更新时清理 pycache——防止 hermes update 后过期字节码 ImportError
  • Matrix 适配器 setup 时自动安装 matrix-nio
  • 懒加载工具在 Banner 中显示黄色而非红色——减少对“缺失”工具的误报
  • 多项 TTY 和状态栏修复,终端体验更顺滑

安全与可靠性

安全加固

  • 危险命令检测强化——扩展高风险 Shell 命令的模式匹配,增加敏感路径保护(/etc//boot/docker.sock
  • 审批系统的敏感路径写入检查——捕获通过文件工具对系统配置文件的写入操作
  • 密钥脱敏扩展——新增覆盖 ElevenLabs、Tavily 和 Exa API key
  • 视觉分析文件拒绝——拒绝非图片文件传入视觉分析,防止信息泄露
  • 技能分类路径穿越拦截——防止技能分类名中的 ../ 攻击

可靠性

  • 原子化 config.yaml 写入——Gateway 崩溃时防止数据丢失
  • 更新时清理 pycache——防止过期字节码 ImportError
  • Terminal 超时保留部分输出——超时后不再丢失已获取的命令输出
  • 恢复 terminalbench2——修复被 patch 工具的密钥脱敏功能损坏的文件

值得关注的 Bug 修复

  • Provider 切换后 api_mode 残留——通过 hermes model 切换 Provider 时正确清理旧 api_mode,修复使用 Anthropic 兼容端点的 Provider 出现 404 的问题(#3685
  • Telegram 已删除回复目标——优雅处理对已删除消息的回复,不再崩溃(#3229
  • Discord “thinking…” 残留——正确清理延迟响应指示器(#3595
  • WhatsApp LID-phone 别名——修复 Linked ID 格式的白名单匹配失败
  • Signal 手机号 URL 编码——修复特定格式的发送失败
  • Email 连接泄漏——错误时正确关闭 SMTP/IMAP 连接
  • 工具 Schema KeyError ‘name’——确保工具定义中始终存在 name 字段(#3729
  • _safe_print ValueError——不再因 stdout 关闭导致 Gateway 线程崩溃(#3534

升级

hermes update

全新安装请参考安装指南


GitHub 完整 Changelog

← Hermes Agent Changelog