Hermes Agent v0.7.0 — The Resilience Release(韧性版本)
概览
v0.7.0 — The Resilience Release(韧性版本),2026 年 4 月 3 日发布。168 个合并 PR · 46 个已解决 issue · 数百文件变更。
v0.7.0 的主题只有一个——韧性(Resilience)。它没有炫目的新功能,而是系统性地解决了 Agent 在真实生产环境中会遇到的各种问题:API Key 用光了怎么办?浏览器被检测了怎么办?内存后端不够灵活怎么办?Gateway 在高并发下崩溃了怎么办?秘密信息被泄漏了怎么办?
这个版本的回答是:让 Hermes 变得可靠、安全、可扩展。
重磅功能
1. 可插拔内存提供者接口(Pluggable Memory Provider)
内存系统从单一的内置实现重构为可扩展的插件架构。第三方内存后端(Honcho、向量数据库、自定义存储)只需实现一个简单的 ABC 接口,通过插件系统注册即可接入。内置内存为默认 provider,Honcho 已作为参考插件恢复至完全功能对等,支持 Profile 级别的主机/节点隔离。
这意味着你可以根据场景选择最合适的内存后端——开发测试用内置的、生产环境用 Honcho 的持久化存储、或者接入自己的向量数据库做语义记忆。
2. 同 Provider 凭证池(Credential Pools)—— 告别 Rate Limit
同一 Provider 可以配置多个 API Key,系统自动以 least_used 线程安全策略在 Key 之间轮转分配负载。当某个 Key 返回 401 错误时,自动切换到池中的下一个凭证,无需人工干预。
# config.yaml
credential_pool:
openai:
- sk-key-1
- sk-key-2
- sk-key-3
通过 setup wizard 或直接编辑 credential_pool 配置项即可启用。对于重度使用者来说,这几乎消除了因单 Key 耗尽配额而中断工作流的可能。
3. Camofox 反检测浏览器后端
全新的本地浏览器后端,基于 Camoufox(Camouflage + Firefox)引擎实现隐身浏览。对于需要绕过反爬检测的 Web 自动化场景(如网页抓取、表单填写、自动化测试),Camofox 比传统 headless Chromium 更难被目标网站识别。
关键特性:
- 持久化会话:浏览器状态在多次调用间保持
- VNC URL 发现:自动暴露 VNC 连接地址,支持可视化调试
- 本地后端 SSRF 绕过:可配置允许访问内网地址
- 一键安装:
hermes tools install camofox
# 安装 Camofox
hermes tools install camofox
# 配置使用 Camofox 作为浏览器后端
hermes config set browser.backend camofox
4. 内联 Diff 预览(Inline Diff Previews)
文件写入和补丁操作现在在工具活动流中直接展示 inline diff。Agent 修改了什么文件、改了什么内容,在 Agent 继续下一步之前,你可以直观地看到带高亮的增删行对比。
这比你手动 git diff 或者回滚再对比快得多——一切都在终端中实时呈现。
5. API Server 会话连续性 & 工具流式输出
API Server(用于 Open WebUI 等前端集成)获得了两项关键升级:
- 实时流式工具进度:工具执行过程中的中间状态事件以 SSE 流式推送给客户端
X-Hermes-Session-Id请求头:跨多次 HTTP 请求维持同一会话,会话数据持久化到共享 SessionDB
这意味着通过 Web UI 使用 Hermes 的体验接近 CLI——你能实时看到 Agent 正在调用什么工具、执行到了哪一步。
6. ACP:编辑器端 MCP 服务器接入
VS Code、Zed、JetBrains 等编辑器的 ACP(Agent Communication Protocol)集成现在可以将编辑器注册的 MCP 服务器直接注入为 Agent 工具。编辑器的 MCP 生态——代码分析、LSP 功能、项目索引——无缝流入 Hermes 的工具调用。
(#4705)
7. Gateway 深度加固 & 秘密外泄阻断
Gateway(消息平台中枢)经过了一轮大规模稳定性加固,同时安全防护也得到了系统性的提升。
Gateway 稳定性修复:
- 修复竞态条件导致的图片丢失、消息风暴控制失效、会话卡死
- 审批路由修正:
/approve和/deny在 Agent 阻塞等待审批时正确路由
秘密外泄阻断:
- 浏览器 URL 和 LLM 响应被自动扫描秘密模式(API Key、Token、密码等)
- 阻止通过 URL 编码、Base64 编码或提示注入(Prompt Injection)窃取凭证
execute_code沙箱输出自动脱敏- 凭证目录保护扩展至
.docker、.azure、.config/gh
(#4727, #4750, #4483, #4360, #4305)
核心 Agent 与架构
Provider & 模型支持
- 同 Provider 凭证池:多 Key 自动
least_used轮转 + 401 故障转移 - 凭证池状态在智能路由中保持:回退到备用 Provider 时池状态不丢失,429 错误延迟激进回退
- 每轮恢复主运行时:使用 fallback 后,下一轮自动切换回主 Provider 并恢复传输
- GPT-5 / Codex
developer角色支持:采用 OpenAI 推荐的新模型系统消息角色 - Google 模型运营指导:Gemini 和 Gemma 模型获得 Provider 特定的提示词引导
- Anthropic 长上下文 429 处理:命中层级限制时自动将上下文缩减至 200K
- 新增模型:Claude-sonnet-4.6(OpenRouter / Nous 模型列表)、Qwen 3.6 Plus Preview、MiniMax M2.7
- Fireworks 上下文长度自动检测
- DashScope 国际端点修复(阿里 Provider 不再硬编码错误地址)
- 自定义 Provider context_length 在压缩中正确读取
- Non-sk-ant Key 视为普通 API Key 而非 OAuth Token
- 自定义端点自动探测模型:从服务器探针自动发现可用模型列表
- Config.yaml 作为 endpoint URL 的唯一事实来源:不再有环境变量与配置文件的冲突
- Setup wizard 不再覆盖自定义端点配置
- 统一 setup wizard Provider 选择与
hermes model:同一个代码路径
Agent 循环与会话
- 保留 Anthropic thinking block 签名跨工具轮次:防止推理块在工具调用后丢失
- 分类 think-only 空响应再重试:防止模型只产生思考块而无实际内容时的无限重试循环
- 防止压缩死亡螺旋:API 断连导致“触发压缩 → 压缩失败 → 再次触发压缩”的恶性循环被检测并终止
- 中运行压缩持久化到 Gateway 会话
- 上下文超限错误现在包含可操作的指导信息
- 清理孤立的
</think>标签:防止推理结束标签泄漏到用户可见响应中 - Codex 响应预检加固和流式错误处理
- 确定性 call_id 回退:不再用随机 UUID,保证 prompt cache 一致性
- 上下文压力警告压缩后不再重复发送
- AsyncOpenAI 延迟创建:避免轨迹压缩器中的事件循环关闭错误
记忆与会话
- Honcho 完全功能对等恢复:作为参考内存 provider 插件(@erosika 贡献)
- Honcho Profile 级作用域:主机和节点按 Profile 隔离
- 内存 flush 状态持久化:Gateway 重启后不会重复 flush
- 内存 Provider 工具通过顺序执行路径路由
- Honcho 配置写入实例本地路径以隔离 Profile
- API Server 会话持久化到共享 SessionDB
- 非 CLI 会话 Token 用量持久化
- FTS5 搜索中带点号的词加引号处理:修复含点号(如版本号)的会话搜索
消息平台(Gateway)
Gateway 核心
- 竞态条件大修:一次性修复图片丢失、消息风暴控制失效、会话卡死、STT 配置问题
- 审批路由修正:
/approve和/deny在 Agent 等待审批时正确路由,不再被当作中断吞掉 - 审批后恢复 Agent:执行被阻止的命令后工具结果不再丢失
- DM 线程会话种子:新线程继承父会话上下文
- Skill 感知 Slash 命令:Gateway 动态注册已安装的 Skill 为 Slash 命令,带分页
/commands列表 - 每平台禁用 Skill:Telegram 菜单和 Gateway 分发中生效
- 移除用户可见的压缩警告:更干净的消息流
- Gateway 服务
-v/-q标志接入 stderr 日志 - HERMES_HOME 重映射到目标用户(systemd 服务单元)
- 无效布尔型配置回退到默认值
/update用 setsid 替代 systemd-run:避免 systemd 权限问题- 首条消息显示“Initializing agent…”:更好的用户体验
- 允许以 root 运行 Gateway 服务:支持 LXC/容器环境
Telegram
- 32 字符命令名限制 + 冲突避免
- 菜单优先级顺序:core > plugins > skills
- 命令上限 50 个:Telegram API 拒绝超过 60
- 跳过空/空白文本:防止 400 错误
- E2E Gateway 测试(@pefontana 贡献)
Discord
- 按钮式审批 UI:注册
/approve和/deny为原生 Slash 命令,带交互式按钮 - 可配置表情反应:
discord.reactions选项控制消息处理表情 - 未授权用户跳过表情反应和自动线程
Slack
- 线程回复:
slack.reply_in_thread配置选项,解决长达一年的社区需求
- 群聊强制
require_mention:只有被 @ 时才响应
Webhook
- 平台支持修复:跳过 home channel 提示、为 webhook 适配器禁用工具进度
Matrix
- E2EE 解密加固:请求缺失密钥、自动信任设备、重试缓冲事件
CLI 与用户体验
新增 Slash 命令
| 命令 | 功能 |
|---|---|
/yolo |
切换危险命令审批开关——一次性跳过所有审批确认 |
/btw |
临时侧问(By The Way)——不影响主对话上下文的独立问题 |
/profile |
不离开聊天会话,直接查看当前 Profile 信息 |
# 冒险模式:跳过所有审批
/yolo
# 问个无关紧要的问题,不影响当前上下文
/btw 这个函数用的是什么算法?
# 快速查看当前 Profile
/profile
交互式 CLI
- 内联 Diff 预览:文件写入和补丁操作在工具活动流中展示带高亮的增删对比
- TUI 固定在底部:启动时不再有大片空白区域,输入栏紧贴内容底部
/history和/resume直接展示最近会话,无需手动搜索/insights显示缓存 Token:总用量完整、不再对不上--max-turnsCLI 标志:限制hermes chat中 Agent 的最大轮次- 拖放文件路径检测:拖入的文件路径不再被当作 Slash 命令(@rolme 贡献)
config set支持空字符串和假值- WSL 语音模式:PulseAudio 桥接已配置时可用
- 尊重
NO_COLOR和TERM=dumb:无障碍支持(@SHL0MS 贡献) - 静默模式正确退出码:
-q成功查询返回 0 而非非零(@devorun 贡献) on_session_end钩子在中断退出时正确触发- Profile 列表正确读取
model.default键
设置与配置
allowed_users在 setup 中保持 + 静默未配置 Provider 警告(@kshitijk4poor 贡献)- 自定义端点 API Key 保存到 model config
- Claude Code 凭据需显式 Hermes 配置才作为 wizard 触发条件
- 配置原子写入:防止中断时配置丢失
- Claude Code Token 刷新时写入 scopes 字段
更新系统
- Fork 检测和上游同步:
hermes update支持 fork 仓库 - 更新时保留可用的可选依赖:某个 extra 失败不影响其他
- 处理冲突的 git index:更新过程更可靠
- 避免 macOS launchd 重启竞态(@rolme 贡献)
- 修复 macOS/zsh 用户的 shell reload 提示
subprocess.run()超时:doctor 和 status 命令不再永久挂起
工具系统
浏览器
- Camofox 反检测浏览器后端:
hermes tools install camofox一键安装 - 持久化 Camofox 会话 + VNC URL 自动发现
- 本地后端跳过 SSRF 检查:Camofox、headless Chromium
- 可配置 SSRF 检查:
browser.allow_private_urls选项(@nils010485 贡献) - CAMOFOX_PORT=9377 加入 Docker 命令
文件操作
- 内联 Diff 预览:写入和补丁操作展示增删对比
- 外部修改检测(Stale File Detection):写入/补丁前检测文件是否被外部修改,发出警告
- 修改后刷新时间戳
read_file大小保护、去重、设备文件阻止
MCP
- 稳定性修复包:重载超时、关闭清理、事件循环处理、OAuth 非阻塞启动
Skills 系统
- Agent 写入大小限制 + Skill patch 模糊匹配:防止超大写入、提高编辑可靠性
- Hub bundle 路径验证:阻止 Skill bundle 中的路径穿越攻击
- 统一
hermes-agent和hermes-agent-setup为单个 Skill - Skill 元数据类型检查:
extract_skill_conditions中验证类型
新增/更新 Skill
- research-paper-writing:全流程研究论文写作流水线,替代
ml-paper-writing(@SHL0MS 贡献) - ascii-video:文本可读性技巧和外部布局预言机(@SHL0MS 贡献)
- youtube-transcript 更新适配
youtube-transcript-apiv1.x(@el-analista 贡献) - Skills 浏览和搜索页面加入文档站(@IAvecilla 贡献)
安全与可靠性
安全加固
- 秘密外泄阻断:扫描浏览器 URL 和 LLM 响应中的秘密模式(API Key、Token、密码),阻止通过 URL 编码、Base64 编码或提示注入途径窃取
execute_code沙箱输出脱敏:代码执行结果中的敏感信息自动替换- 凭证目录保护:
.docker、.azure、.config/gh禁止通过文件工具和终端读写(@memosr 贡献) - GitHub OAuth Token 模式加入脱敏 + snapshot redact 标志
- Telegram DoH 回退拒绝私有和回环 IP
- 凭证文件注册拒绝路径穿越
- Profile 导入校验 tar 归档成员路径:阻止 zip-slip 攻击
- Profile 导出排除
auth.json和.env
可靠性
- 防止压缩死亡螺旋:API 断连导致的恶性循环被检测并终止
- OpenAI SDK
is_closed作为方法而非属性:修正误判客户端关闭的问题 - Matrix 从
[all]extras 中排除:python-olm 上游损坏,防止安装失败 - OpenCode 模型路由修复
- Docker 容器镜像优化(@bcross 贡献)
Windows & 跨平台
- WSL 语音模式:PulseAudio 桥接支持
- Homebrew 打包准备工作
- CI fork 条件判断:防止 fork 仓库 CI 工作流失败
重点 Bug 修复
- Gateway 审批阻塞 Agent 线程:审批现在像 CLI 一样阻塞 Agent 线程,防止工具结果丢失
- 压缩死亡螺旋:API 断连触发的恶性循环被检测并终止
- Anthropic thinking 块跨轮次丢失:推理块签名现在正确保持
-p标志时 Profile model config 被忽略:model.model正确提升为model.default- CLI 响应与输入之间的大片空白:TUI 固定在底部
- 拖入文件路径被当作 Slash 命令:正确检测为文件引用
- 孤立的
</think>标签泄漏到用户可见响应 - OpenAI SDK
is_closed属性误判:它是方法不是属性,导致误判客户端关闭 - MCP OAuth Server 阻塞 Hermes 启动:改为优雅降级
- MCP 事件循环在关闭时已关闭:HTTP server 场景修复
- 阿里 Provider 硬编码错误端点:切换到标准 DashScope 国际端点
- Slack
reply_in_thread配置缺失:补上完整支持 - 静默模式退出码非零:
-q成功查询正确返回 0 - 文档站移动端侧边栏:backdrop-filter 问题导致只显示关闭按钮(@xsmyile 贡献)
- 配置恢复被 stale-branch squash merge 回退:
_config_version修复
测试
- Telegram Gateway E2E 测试:完整集成测试套件(@pefontana 贡献)
- 11 个真实测试失败修复 + sys.modules 级联污染解决
- 7 个 CI 失败修复:涉及 hooks、plugins、skill 测试
- Codex 401 刷新测试更新适配 CI 环境
- 过时的 OPENAI_BASE_URL 测试修复
文档
- 全面文档审计:9 个 HIGH 级 + 20+ 个 MEDIUM 级缺口修复,覆盖 21 个文件
- 站点导航重构:Features 和 Platforms 提升为顶级导航
- 工具进度流式输出:API Server 和 Open WebUI 文档化
- Telegram Webhook 模式文档
- 本地 LLM Provider 指南:完整设置指南,含上下文长度警告
- WhatsApp 白名单行为:
WHATSAPP_ALLOW_ALL_USERS文档澄清 - Slack 配置选项:新增配置章节
- 终端后端章节扩展 + 文档构建修复
- Adding-providers 指南更新适配统一设置流程
- ACP Zed 配置修复
- 社区 FAQ:常见工作流和故障排除条目
- Skills 浏览和搜索页上线文档站
升级
hermes update
全新安装请参考安装指南。
← Hermes Agent Changelog