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
新增内置工具与技能
| 工具 / 技能 | 描述 |
|---|---|
| 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…” 残留——斜杠命令完成后正确清除“思考中”指示器
- 持久化 aiohttp session——跨请求复用 HTTP 连接
- LID-phone 别名解析——正确匹配 Linked ID 和手机号格式的白名单
- Bot 模式跳过回复前缀——消息格式更干净
Matrix
- MSC3245 原生语音消息——以标准 Matrix voice event 发送语音消息,不再退化为文件附件
Mattermost
- 可配置 @提及行为——无需 @提及即可响应消息
Signal
- URL 编码手机号并修正附件 RPC 参数——修复部分手机号格式导致的发送失败
- 失败时关闭 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
全新安装请参考安装指南。
← Hermes Agent Changelog