← 返回更新日志

Hermes v2026.3.28

2026-03-28 · GitHub 原文
# Hermes Agent v0.5.0 (v2026.3.28) **发布日期:** 2026年3月28日 > 本次为强化版本 — 新增 Hugging Face 提供商、`/model` 命令重构、Telegram 私聊话题功能、原生 Modal SDK、插件生命周期钩子、GPT 模型工具调用强化、Nix flake 支持,以及 50 多项安全性和可靠性修复,并完成了全面的供应链审计。 --- ## ✨ 主要亮点 - **Nous Portal 现已支持 400+ 模型** — Nous Research 推理门户大幅扩展,Hermes Agent 用户可通过单一提供商端点访问超过 400 个模型。 - **Hugging Face 作为一级推理提供商** — 与 HF Inference API 全面集成,包括精选的智能模型选择器(映射至 OpenRouter 类似模型)、实时 `/models` 端点探测和设置向导流程 ([#3419](https://github.com/NousResearch/hermes-agent/pull/3419), [#3440](https://github.com/NousResearch/hermes-agent/pull/3440))。 - **Telegram 私聊话题** — 基于项目的对话,每个话题可绑定功能技能,实现在单个 Telegram 聊天中隔离工作流 ([#3163](https://github.com/NousResearch/hermes-agent/pull/3163))。 - **原生 Modal SDK 后端** — 用原生 Modal SDK (`Sandbox.create.aio` + `exec.aio`) 替换 swe-rex 依赖,消除隧道并简化 Modal 终端后端 ([#3538](https://github.com/NousResearch/hermes-agent/pull/3538))。 - **插件生命周期钩子激活** — `pre_llm_call`、`post_llm_call`、`on_session_start` 和 `on_session_end` 钩子现已在代理循环及 CLI/网关中触发,完成插件钩子系统 ([#3542](https://github.com/NousResearch/hermes-agent/pull/3542))。 - **提升 OpenAI 模型可靠性** — 新增 `GPT_TOOL_USE_GUIDANCE` 防止 GPT 模型描述预期操作而非调用工具,并自动从对话历史中剥离过时的预算警告(该警告曾导致模型在多轮对话中避免使用工具)([#3528](https://github.com/NousResearch/hermes-agent/pull/3528))。 - **Nix flake** — 完整的 uv2nix 构建、带持久容器模式的 NixOS 模块、从 Python 源码自动生成的配置键、以及面向代理友好的后缀 PATH 支持 ([#20](https://github.com/NousResearch/hermes-agent/pull/20), [#3274](https://github.com/NousResearch/hermes-agent/pull/3274), [#3061](https://github.com/NousResearch/hermes-agent/pull/3061)),由 @alt-glitch 贡献。 - **供应链强化** — 移除被入侵的 `litellm` 依赖,固定所有依赖版本范围,重新生成带哈希的 `uv.lock`,添加扫描 PR 供应链攻击模式的 CI 工作流,并升级依赖以修复 CVE ([#2796](https://github.com/NousResearch/hermes-agent/pull/2796), [#2810](https://github.com/NousResearch/hermes-agent/pull/2810), [#2812](https://github.com/NousResearch/hermes-agent/pull/2812), [#2816](https://github.com/NousResearch/hermes-agent/pull/2816), [#3073](https://github.com/NousResearch/hermes-agent/pull/3073))。 - **Anthropic 输出限制修复** — 用各模型原生输出限制替换硬编码的 16K `max_tokens`(Opus 4.6 为 128K,Sonnet 4.6 为 64K),修复直接使用 Anthropic API 时的“响应截断”和思维预算耗尽问题 ([#3426](https://github.com/NousResearch/hermes-agent/pull/3426), [#3444](https://github.com/NousResearch/hermes-agent/pull/3444))。 --- ## 🏗️ 核心代理与架构 ### 新提供商:Hugging Face - 一级 Hugging Face Inference API 集成,支持认证、设置向导和模型选择器 ([#3419](https://github.com/NousResearch/hermes-agent/pull/3419))。 - 精选模型列表,将 OpenRouter 的智能默认模型映射到 HF 等效模型 — 拥有 8 个以上精选模型的提供商将跳过实时 `/models` 探测以提升速度 ([#3440](https://github.com/NousResearch/hermes-agent/pull/3440))。 - 向 Z.AI 提供商模型列表添加 glm-5-turbo ([#3095](https://github.com/NousResearch/hermes-agent/pull/3095))。 ### 提供商与模型改进 - **`/model` 命令重构** — 为 CLI 和网关提取共享的 `switch_model()` 流程,支持自定义端点,提供商感知路由 ([#2795](https://github.com/NousResearch/hermes-agent/pull/2795), [#2799](https://github.com/NousResearch/hermes-agent/pull/2799))。 - 从 CLI 和网关中移除 `/model` 斜杠命令,改为 `hermes model` 子命令 ([#3080](https://github.com/NousResearch/hermes-agent/pull/3080))。 - 保留 `custom` 提供商,而非静默重映射到 `openrouter` ([#2792](https://github.com/NousResearch/hermes-agent/pull/2792))。 - 从 config.yaml 读取根级别 `provider` 和 `base_url` 到模型配置中 ([#3112](https://github.com/NousResearch/hermes-agent/pull/3112))。 - 使 Nous Portal 模型别名与 OpenRouter 命名对齐 ([#3253](https://github.com/NousResearch/hermes-agent/pull/3253))。 - 修复 Alibaba 提供商默认端点和模型列表 ([#3484](https://github.com/NousResearch/hermes-agent/pull/3484))。 - 允许 MiniMax 用户覆盖 `/v1` → `/anthropic` 自动修正 ([#3553](https://github.com/NousResearch/hermes-agent/pull/3553))。 - 将 OAuth 令牌刷新迁移到 `platform.claude.com` 并添加回退机制 ([#3246](https://github.com/NousResearch/hermes-agent/pull/3246))。 ### 代理循环与对话 - **提升 OpenAI 模型可靠性** — `GPT_TOOL_USE_GUIDANCE` 防止 GPT 模型描述操作而非调用工具,并自动从历史中剥离预算警告 ([#3528](https://github.com/NousResearch/hermes-agent/pull/3528))。 - ** surfaced 生命周期事件** — 所有重试、回退和压缩事件现在均以格式化消息形式呈现给用户 ([#3153](https://github.com/NousResearch/hermes-agent/pull/3153))。 - **Anthropic 输出限制** — 使用各模型原生输出限制而非硬编码的 16K `max_tokens` ([#3426](https://github.com/NousResearch/hermes-agent/pull/3426))。 - **思维预算耗尽检测** — 当模型将所有输出令牌用于推理时,跳过无用的继续重试 ([#3444](https://github.com/NousResearch/hermes-agent/pull/3444))。 - 始终优先使用 API 调用的流式传输,防止子代理挂起 ([#3120](https://github.com/NousResearch/hermes-agent/pull/3120))。 - 在流失败后恢复安全的非流式回退 ([#3020](https://github.com/NousResearch/hermes-agent/pull/3020))。 - 为子代理分配独立的迭代预算 ([#3004](https://github.com/NousResearch/hermes-agent/pull/3004))。 - 在 `_try_activate_fallback` 中更新子代理认证的 `api_key` ([#3103](https://github.com/NousResearch/hermes-agent/pull/3103))。 - 达到最大重试次数时优雅返回,而非使线程崩溃 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 压缩重启计入重试限制 ([#3070](https://github.com/NousResearch/hermes-agent/pull/3070))。 - 在预flight 估算中包含工具令牌,保护上下文探测持久性 ([#3164](https://github.com/NousResearch/hermes-agent/pull/3164))。 - 回退激活后更新上下文压缩限制 ([#3305](https://github.com/NousResearch/hermes-agent/pull/3305))。 - 验证空用户消息,防止 Anthropic API 400 错误 ([#3322](https://github.com/NousResearch/hermes-agent/pull/3322))。 - GLM 仅推理和最大长度处理 ([#3010](https://github.com/NousResearch/hermes-agent/pull/3010))。 - 将 API 超时默认值从 900 秒提高到 1800 秒,以适应慢思考模型 ([#3431](https://github.com/NousResearch/hermes-agent/pull/3431))。 - 为 Claude/OpenRouter 发送 `max_tokens` 并重试 SSE 连接错误 ([#3497](https://github.com/NousResearch/hermes-agent/pull/3497))。 - 防止网关模式下的 AsyncOpenAI/httpx 跨循环死锁 ([#2701](https://github.com/NousResearch/hermes-agent/pull/2701)),由 @ctlst 贡献。 ### 流式与推理 - **通过新的 schema v6 列(`reasoning`、`reasoning_details`、`codex_reasoning_items`)跨网关会话轮次持久化推理** ([#2974](https://github.com/NousResearch/hermes-agent/pull/2974))。 - 检测并终止陈旧的 SSE 连接 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 修复导致虚假 `RemoteProtocolError` 的陈旧流检测竞争条件 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 跳过流式传输期间 `推理的重复回调 ([#3116](https://github.com/NousResearch/hermes-agent/pull/3116))。 - 在 `rewrite_transcript` 中保留推理字段 ([#3311](https://github.com/NousResearch/hermes-agent/pull/3311))。 - 在流式工具调用中保留 Gemini 思维签名 ([#2997](https://github.com/NousResearch/hermes-agent/pull/2997))。 - 确保推理更新期间触发第一个增量 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 ### 会话与记忆 - **会话搜索最近会话模式** — 省略查询以浏览带标题、预览和时间戳的最近会话 ([#2533](https://github.com/NousResearch/hermes-agent/pull/2533))。 - **在 `/new`、`/reset` 和自动重置上显示会话配置** ([#3321](https://github.com/NousResearch/hermes-agent/pull/3321))。 - **第三方会话隔离** — 用于按来源隔离会话的 `--source` 标志 ([#3255](https://github.com/NousResearch/hermes-agent/pull/3255))。 - 添加 `/resume` CLI 处理程序、会话日志截断保护、`reopen_session` API ([#3315](https://github.com/NousResearch/hermes-agent/pull/3315))。 - 在 `/clear` 和 `/new` 时清除压缩器摘要和轮次计数器 ([#3102](https://github.com/NousResearch/hermes-agent/pull/3102))。 - surfaced 导致会话数据丢失的静默 SessionDB 故障 ([#2999](https://github.com/NousResearch/hermes-agent/pull/2999))。 - 会话搜索在摘要失败时的回退预览 ([#3478](https://github.com/NousResearch/hermes-agent/pull/3478))。 - 防止刷新代理覆盖陈旧记忆 ([#2687](https://github.com/NousResearch/hermes-agent/pull/2687))。 ### 上下文压缩 - 用基于比例的缩放替换失效的 `summary_target_tokens` ([#2554](https://github.com/NousResearch/hermes-agent/pull/2554))。 - 在 `DEFAULT_CONFIG` 中公开 `compression.target_ratio`、`protect_last_n` 和 `threshold` ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 恢复合理的默认值并将摘要限制在 12K 令牌 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 在 `/compress` 和卫生压缩时保留文字记录 ([#3556](https://github.com/NousResearch/hermes-agent/pull/3556))。 - 压缩后更新上下文压力警告和令牌估算 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 ### 架构与依赖 - **移除 mini-swe-agent 依赖** — 内联 Docker 和 Modal 后端 ([#2804](https://github.com/NousResearch/hermes-agent/pull/2804))。 - **用原生 Modal SDK 替换 swe-rex** 用于 Modal 后端 ([#3538](https://github.com/NousResearch/hermes-agent/pull/3538))。 - **插件生命周期钩子** — `pre_llm_call`、`post_llm_call`、`on_session_start`、`on_session_end` 现已在代理循环中触发 ([#3542](https://github.com/NousResearch/hermes-agent/pull/3542))。 - 修复插件工具集在 `hermes tools` 和独立进程中不可见的问题 ([#3457](https://github.com/NousResearch/hermes-agent/pull/3457))。 - 合并 `get_hermes_home()` 和 `parse_reasoning_effort()` ([#3062](https://github.com/NousResearch/hermes-agent/pull/3062))。 - 移除未使用的 Hermes 原生 PKCE OAuth 流程 ([#3107](https://github.com/NousResearch/hermes-agent/pull/3107))。 - 在 55 个文件中移除约 100 个未使用的导入 ([#3016](https://github.com/NousResearch/hermes-agent/pull/3016))。 - 修复 154 个 f-strings,简化 getattr/URL 模式,移除死代码 ([#3119](https://github.com/NousResearch/hermes-agent/pull/3119))。 --- ## 📱 消息平台(网关) ### Telegram - **私聊话题** — 基于项目的对话,每个话题可绑定功能技能,实现在单个 Telegram 聊天中隔离工作流 ([#3163](https://github.com/NousResearch/hermes-agent/pull/3163))。 - **通过 DNS-over-HTTPS 自动发现回退 IP**,当 `api.telegram.org` 不可用时 ([#3376](https://github.com/NousResearch/hermes-agent/pull/3376))。 - **可配置的回复线程模式** ([#2907](https://github.com/NousResearch/hermes-agent/pull/2907))。 - 在“未找到消息线程”BadRequest 时回退到无 `thread_id` ([#3390](https://github.com/NousResearch/hermes-agent/pull/3390))。 - 在 `start_polling` 因 502 失败后自调度重连 ([#3268](https://github.com/NousResearch/hermes-agent/pull/3268))。 ### Discord - 代理回合完成后停止幻影输入指示器 ([#3003](https://github.com/NousResearch/hermes-agent/pull/3003))。 ### Slack - 将工具调用进度消息发送到正确的 Slack 线程 ([#3063](https://github.com/NousResearch/hermes-agent/pull/3063))。 - 将进度线程回退范围限定为仅 Slack ([#3488](https://github.com/NousResearch/hermes-agent/pull/3488))。 ### WhatsApp - 从消息下载文档、音频和视频媒体 ([#2978](https://github.com/NousResearch/hermes-agent/pull/2978))。 ### Matrix - 在 `PLATFORMS` 字典中添加缺失的 Matrix 条目 ([#3473](https://github.com/NousResearch/hermes-agent/pull/3473))。 - 强化 e2ee 访问令牌处理 ([#3562](https://github.com/NousResearch/hermes-agent/pull/3562))。 - 为同步循环中的 `SyncError` 添加退避机制 ([#3280](https://github.com/NousResearch/hermes-agent/pull/3280))。 ### Signal - 将 SSE 保持活动注释跟踪为连接活动 ([#3316](https://github.com/NousResearch/hermes-agent/pull/3316))。 ### Email - 防止 EmailAdapter 中 `_seen_uids` 无限制增长 ([#3490](https://github.com/NousResearch/hermes-agent/pull/3490))。 ### 网关核心 - **消息平台可配置的 `/verbose` 命令** — 从聊天中切换工具输出详细程度 ([#3262](https://github.com/NousResearch/hermes-agent/pull/3262))。 - **发送到用户聊天的后台审查通知** ([#3293](https://github.com/NousResearch/hermes-agent/pull/3293))。 - **重试瞬态发送失败** 并在耗尽时通知用户 ([#3288](https://github.com/NousResearch/hermes-agent/pull/3288))。 - 从挂起的代理中恢复 — `/stop` 强制终止会话锁 ([#3104](https://github.com/NousResearch/hermes-agent/pull/3104))。 - 线程安全的 `SessionStore` — 用 `threading.Lock` 保护 `_entries` ([#3052](https://github.com/NousResearch/hermes-agent/pull/3052))。 - 修复网关令牌与缓存代理的双重计数 — 使用绝对集合而非增量 ([#3306](https://github.com/NousResearch/hermes-agent/pull/3306), [#3317](https://github.com/NousResearch/hermes-agent/pull/3317))。 - 在代理缓存签名中指纹完整认证令牌 ([#3247](https://github.com/NousResearch/hermes-agent/pull/3247))。 - 静默后台代理终端输出 ([#3297](https://github.com/NousResearch/hermes-agent/pull/3297))。 - 在启动允许列表检查中包含每平台 `ALLOW_ALL` 和 `SIGNAL_GROUP` ([#3313](https://github.com/NousResearch/hermes-agent/pull/3313))。 - 在 systemd 单元 PATH 中包含用户本地 bin 路径 ([#3527](https://github.com/NousResearch/hermes-agent/pull/3527))。 - 在 `GatewayRunner` 中跟踪后台任务引用 ([#3254](https://github.com/NousResearch/hermes-agent/pull/3254))。 - 为 HA、Email、Mattermost、SMS 适配器添加请求超时 ([#3258](https://github.com/NousResearch/hermes-agent/pull/3258))。 - 为 Mattermost、Slack 和基础缓存添加媒体下载重试 ([#3323](https://github.com/NousResearch/hermes-agent/pull/3323))。 - 检测 virtualenv 路径而非硬编码 `venv/` ([#2797](https://github.com/NousResearch/hermes-agent/pull/2797))。 - 对上下文文件发现使用 `TERMINAL_CWD`,而非进程 cwd ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 停止将 hermes 仓库 AGENTS.md 加载到网关会话(浪费约 10k 令牌)([#2891](https://github.com/NousResearch/hermes-agent/pull/2891))。 --- ## 🖥️ CLI 与用户体验 ### 交互式 CLI - **可配置的忙碌输入模式** + 修复 `/queue` 始终有效 ([#3298](https://github.com/NousResearch/hermes-agent/pull/3298))。 - **多行粘贴时保留用户输入** ([#3065](https://github.com/NousResearch/hermes-agent/pull/3065))。 - **工具生成回调** — 工具参数生成期间流式显示“正在准备终端…”更新 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 为实质性工具显示工具进度,而不仅是“准备中” ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 缓冲推理预览块并修复重复显示 ([#3013](https://github.com/NousResearch/hermes-agent/pull/3013))。 - 防止推理框在工具调用循环中渲染 3 次 ([#3405](https://github.com/NousResearch/hermes-agent/pull/3405))。 - 消除空闲时的“事件循环已关闭”/“按 ENTER 继续” — 三层修复:`neuter_async_httpx_del()`、自定义异常处理器和陈旧客户端清理 ([#3398](https://github.com/NousResearch/hermes-agent/pull/3398))。 - 修复状态栏对尾随零的令牌计数显示 26K 而非 260K ([#3024](https://github.com/NousResearch/hermes-agent/pull/3024))。 - 修复状态栏在长会话中重复和降级 ([#3291](https://github.com/NousResearch/hermes-agent/pull/3291))。 - 在后台任务输出前刷新 TUI 以防止状态栏重叠 ([#3048](https://github.com/NousResearch/hermes-agent/pull/3048))。 - 在 `patch_stdout` 下抑制 KawaiiSpinner 动画 ([#2994](https://github.com/NousResearch/hermes-agent/pull/2994))。 - 当 TUI 处理工具进度时跳过 KawaiiSpinner ([#2973](https://github.com/NousResearch/hermes-agent/pull/2973))。 - 通过 `_is_tty` 属性防护 `isatty()` 防止关闭的流 ([#3056](https://github.com/NousResearch/hermes-agent/pull/3056))。 - 确保工具生成期间流式框的单一关闭 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 在显示中将上下文压力百分比上限设为 100% ([#3480](https://github.com/NousResearch/hermes-agent/pull/3480))。 - 清理 CLI 显示中的 HTML 错误消息 ([#3069](https://github.com/NousResearch/hermes-agent/pull/3069))。 - 在 API 错误输出中显示 HTTP 状态码和 400 正文 ([#3096](https://github.com/NousResearch/hermes-agent/pull/3096))。 - 从 HTML 错误页面提取有用信息,达到最大重试时转储调试信息 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 防止启动时 `base_url` 为 None 的 TypeError ([#3068](https://github.com/NousResearch/hermes-agent/pull/3068))。 - 防止非 TTY 环境中的更新崩溃 ([#3094](https://github.com/NousResearch/hermes-agent/pull/3094))。 - 在会话删除/修剪确认提示中处理 EOFError ([#3101](https://github.com/NousResearch/hermes-agent/pull/3101))。 - 在退出和退出清理处理程序中捕获 `flush_memories` 期间的 KeyboardInterrupt ([#3025](https://github.com/NousResearch/hermes-agent/pull/3025), [#3257](https://github.com/NousResearch/hermes-agent/pull/3257))。 - 防护 `.strip()` 防止来自 YAML 配置的 None 值 ([#3552](https://github.com/NousResearch/hermes-agent/pull/3552))。 - 防护 `config.get()` 防止 YAML null 值以避免 AttributeError ([#3377](https://github.com/NousResearch/hermes-agent/pull/3377))。 - 存储 asyncio 任务引用以防止执行中途 GC ([#3267](https://github.com/NousResearch/hermes-agent/pull/3267))。 ### 设置与配置 - 使用显式键映射进行返回用户菜单调度,而非位置索引 ([#3083](https://github.com/NousResearch/hermes-agent/pull/3083))。 - 在更新命令中使用 `sys.executable` 进行 pip 操作以修复 PEP 668 ([#3099](https://github.com/NousResearch/hermes-agent/pull/3099))。 - 强化 `hermes update` 以处理 diverged history、非 main 分支和网关边缘情况 ([#3492](https://github.com/NousResearch/hermes-agent/pull/3492))。 - OpenClaw 迁移覆盖默认值且设置向导跳过导入部分 — 已修复 ([#3282](https://github.com/NousResearch/hermes-agent/pull/3282))。 - 停止递归 AGENTS.md 遍历,仅加载顶层 ([#3110](https://github.com/NousResearch/hermes-agent/pull/3110))。 - 向浏览器和终端 PATH 解析添加 macOS Homebrew 路径 ([#2713](https://github.com/NousResearch/hermes-agent/pull/2713))。 - `tool_progress` 配置的 YAML 布尔处理 ([#3300](https://github.com/NousResearch/hermes-agent/pull/3300))。 - 将默认 SOUL.md 重置为基线身份文本 ([#3159](https://github.com/NousResearch/hermes-agent/pull/3159))。 - 拒绝容器终端后端的相对 cwd 路径 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 为 API 服务器平台添加显式 `hermes-api-server` 工具集 ([#3304](https://github.com/NousResearch/hermes-agent/pull/3304))。 - 重新排序设置向导提供商 — OpenRouter 优先 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 --- ## 🔧 工具系统 ### API 服务器 - **幂等性键支持**、正文大小限制和 OpenAI 错误封装 ([#2903](https://github.com/NousResearch/hermes-agent/pull/2903))。 - 允许幂等性键在 CORS 头中 ([#3530](https://github.com/NousResearch/hermes-agent/pull/3530))。 - 取消孤立代理并在 SSE 断开时真正中断 ([#3427](https://github.com/NousResearch/hermes-agent/pull/3427))。 - 修复代理进行工具调用时流式中断 ([#2985](https://github.com/NousResearch/hermes-agent/pull/2985))。 ### 终端与文件操作 - 在 V4A 补丁解析器中处理仅添加的块 ([#3325](https://github.com/NousResearch/hermes-agent/pull/3325))。 - 持久 shell 轮询的指数退避 ([#2996](https://github.com/NousResearch/hermes-agent/pull/2996))。 - 为 `context_references` 中的子进程调用添加超时 ([#3469](https://github.com/NousResearch/hermes-agent/pull/3469))。 ### 浏览器与视觉 - 在视觉工具中处理 402 积分不足错误 ([#2802](https://github.com/NousResearch/hermes-agent/pull/2802))。 - 修复 `browser_vision` 忽略 `auxiliary.vision.timeout` 配置 ([#2901](https://github.com/NousResearch/hermes-agent/pull/2901))。 - 通过 config.yaml 使浏览器命令超时可配置 ([#2801](https://github.com/NousResearch/hermes-agent/pull/2801))。 ### MCP - MCP 工具集解析用于运行时和配置 ([#3252](https://github.com/NousResearch/hermes-agent/pull/3252))。 - 添加 MCP 工具名称冲突保护 ([#3077](https://github.com/NousResearch/hermes-agent/pull/3077))。 ### 辅助 LLM - 防护辅助 LLM 调用防止 None 内容 + 推理回退 + 重试 ([#3449](https://github.com/NousResearch/hermes-agent/pull/3449))。 - 在视觉自动检测中捕获 `build_anthropic_client` 的 ImportError ([#3312](https://github.com/NousResearch/hermes-agent/pull/3312))。 ### 其他工具 - 为 `send_message_tool` HTTP 调用添加请求超时 ([#3162](https://github.com/NousResearch/hermes-agent/pull/3162)),由 @memosr 贡献。 - 自动修复包含无效控制字符的 `jobs.json` ([#3537](https://github.com/NousResearch/hermes-agent/pull/3537))。 - 为 Claude/OpenRouter 启用细粒度工具流式传输 ([#3497](https://github.com/NousResearch/hermes-agent/pull/3497))。 --- ## 🧩 技能生态系统 ### 技能系统 - **技能和用户配置的环境变量透传** — 技能可声明要透传的环境变量 ([#2807](https://github.com/NousResearch/hermes-agent/pull/2807))。 - 使用共享 `skill_utils` 模块缓存技能提示以加快 TTFT ([#3421](https://github.com/NousResearch/hermes-agent/pull/3421))。 - 避免在提示构建器中为技能条件重复读取文件 ([#2992](https://github.com/NousResearch/hermes-agent/pull/2992))。 - 使用 Git Trees API 防止安装期间静默子目录丢失 ([#2995](https://github.com/NousResearch/hermes-agent/pull/2995))。 - 修复深层嵌套仓库结构的 skills-sh 安装 ([#2980](https://github.com/NousResearch/hermes-agent/pull/2980))。 - 处理技能 frontmatter 中的 null 元数据 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 保留 skills-sh 标识符的信任并减少解析开销 ([#3251](https://github.com/NousResearch/hermes-agent/pull/3251))。 - 代理创建的技能曾被错误地视为不受信任的社区内容 — 已修复 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 ### 新技能 - **G0DM0D3 godmode 越狱技能** + 文档 ([#3157](https://github.com/NousResearch/hermes-agent/pull/3157))。 - **Docker 管理技能** 添加到 optional-skills ([#3060](https://github.com/NousResearch/hermes-agent/pull/3060))。 - **OpenClaw 迁移 v2** — 17 个新模块,终端回顾用于从 OpenClaw 迁移到 Hermes ([#2906](https://github.com/NousResearch/hermes-agent/pull/2906))。 --- ## 🔒 安全与可靠性 ### 安全强化 - **向 `browser_navigate` 添加 SSRF 保护** ([#3058](https://github.com/NousResearch/hermes-agent/pull/3058))。 - **向 `vision_tools` 和 `web_tools` 添加 SSRF 保护**(已强化)([#2679](https://github.com/NousResearch/hermes-agent/pull/2679))。 - **限制子代理工具集** 为父代理的启用集 ([#3269](https://github.com/NousResearch/hermes-agent/pull/3269))。 - **防止自更新中的 zip-slip 路径遍历** ([#3250](https://github.com/NousResearch/hermes-agent/pull/3250))。 - **防止 `_expand_path` 中的 shell 注入** 通过 `~user` 路径后缀 ([#2685](https://github.com/NousResearch/hermes-agent/pull/2685))。 - **危险命令检测前规范化输入** ([#3260](https://github.com/NousResearch/hermes-agent/pull/3260))。 - 使 tirith 阻止判决可批准而非硬阻止 ([#3428](https://github.com/NousResearch/hermes-agent/pull/3428))。 - 从依赖中移除被入侵的 `litellm`/`typer`/`platformdirs` ([#2796](https://github.com/NousResearch/hermes-agent/pull/2796))。 - 固定所有依赖版本范围 ([#2810](https://github.com/NousResearch/hermes-agent/pull/2810))。 - 重新生成带哈希的 `uv.lock`,在设置中使用 lockfile ([#2812](https://github.com/NousResearch/hermes-agent/pull/2812))。 - 升级依赖以修复 CVE + 重新生成 `uv.lock` ([#3073](https://github.com/NousResearch/hermes-agent/pull/3073))。 - 供应链审计 CI 工作流用于 PR 扫描 ([#2816](https://github.com/NousResearch/hermes-agent/pull/2816))。 ### 可靠性 - **导致 TUI 冻结 15-20 秒的 SQLite WAL 写锁争用** — 已修复 ([#3385](https://github.com/NousResearch/hermes-agent/pull/3385))。 - **SQLite 并发强化** + 会话文字记录完整性 ([#3249](https://github.com/NousResearch/hermes-agent/pull/3249))。 - 防止网关崩溃/重启循环中重复触发的 cron 作业 ([#3396](https://github.com/NousResearch/hermes-agent/pull/3396))。 - 作业完成后将 cron 会话标记为已结束 ([#2998](https://github.com/NousResearch/hermes-agent/pull/2998))。 --- ## ⚡ 性能 - **TTFT 启动优化** — 挽救易得的启动改进 ([#3395](https://github.com/NousResearch/hermes-agent/pull/3395))。 - 使用共享 `skill_utils` 模块缓存技能提示 ([#3421](https://github.com/NousResearch/hermes-agent/pull/3421))。 - 在提示构建器中避免技能条件的冗余文件重读 ([#2992](https://github.com/NousResearch/hermes-agent/pull/2992))。 --- ## 🐛 值得注意的错误修复 - 修复网关令牌与缓存代理的双重计数 ([#3306](https://github.com/NousResearch/hermes-agent/pull/3306), [#3317](https://github.com/NousResearch/hermes-agent/pull/3317))。 - 修复空闲会话中的“事件循环已关闭”/“按 ENTER 继续” ([#3398](https://github.com/NousResearch/hermes-agent/pull/3398))。 - 修复工具调用循环中推理框渲染 3 次 ([#3405](https://github.com/NousResearch/hermes-agent/pull/3405))。 - 修复状态栏对令牌计数显示 26K 而非 260K ([#3024](https://github.com/NousResearch/hermes-agent/pull/3024))。 - 修复 `/queue` 无论配置如何始终有效 ([#3298](https://github.com/NousResearch/hermes-agent/pull/3298))。 - 修复代理回合后 Discord 幻影输入指示器 ([#3003](https://github.com/NousResearch/hermes-agent/pull/3003))。 - 修复 Slack 进度消息出现在错误线程中 ([#3063](https://github.com/NousResearch/hermes-agent/pull/3063))。 - 修复 WhatsApp 媒体下载(文档、音频、视频)([#2978](https://github.com/NousResearch/hermes-agent/pull/2978))。 - 修复 Telegram“未找到消息线程”导致进度消息失败 ([#3390](https://github.com/NousResearch/hermes-agent/pull/3390))。 - 修复 OpenClaw 迁移覆盖默认值 ([#3282](https://github.com/NousResearch/hermes-agent/pull/3282))。 - 修复返回用户设置菜单调度错误部分 ([#3083](https://github.com/NousResearch/hermes-agent/pull/3083))。 - 修复 `hermes update` PEP 668“外部管理环境”错误 ([#3099](https://github.com/NousResearch/hermes-agent/pull/3099))。 - 修复子代理通过共享预算过早达到 `max_iterations` ([#3004](https://github.com/NousResearch/hermes-agent/pull/3004))。 - 修复 `tool_progress` 配置的 YAML 布尔处理 ([#3300](https://github.com/NousResearch/hermes-agent/pull/3300))。 - 修复 `config.get()` 在 YAML null 值上崩溃 ([#3377](https://github.com/NousResearch/hermes-agent/pull/3377))。 - 修复来自 YAML 配置的 None 值上的 `.strip()` 崩溃 ([#3552](https://github.com/NousResearch/hermes-agent/pull/3552))。 - 修复网关上的挂起代理 — `/stop` 现在强制终止会话锁 ([#3104](https://github.com/NousResearch/hermes-agent/pull/3104))。 - 修复 `_custom` 提供商静默重映射到 `openrouter` ([#2792](https://github.com/NousResearch/hermes-agent/pull/2792))。 - 修复 Matrix 在 `PLATFORMS` 字典中缺失 ([#3473](https://github.com/NousResearch/hermes-agent/pull/3473))。 - 修复 Email 适配器 `_seen_uids` 无限制增长 ([#3490](https://github.com/NousResearch/hermes-agent/pull/3490))。 --- ## 🧪 测试 - 固定 `agent-client-protocol` < 0.9 以处理破坏性上游发布 ([#3320](https://github.com/NousResearch/hermes-agent/pull/3320))。 - 在视觉自动检测测试中捕获 anthropic ImportError ([#3312](https://github.com/NousResearch/hermes-agent/pull/3312))。 - 更新重试耗尽测试以适应新的优雅返回行为 ([#3320](https://github.com/NousResearch/hermes-agent/pull/3320))。 - 添加 null 元数据 frontmatter 的回归测试 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 --- ## 📚 文档 - 更新所有文档以反映 `/model` 命令重构和自定义提供商支持 ([#2800](https://github.com/NousResearch/hermes-agent/pull/2800))。 - 修复 18 个文件中的过时和不正确文档 ([#2805](https://github.com/NousResearch/hermes-agent/pull/2805))。 - 记录 9 个先前未记录的功能 ([#2814](https://github.com/NousResearch/hermes-agent/pull/2814))。 - 添加缺失的技能、CLI 命令和消息环境变量到文档 ([#2809](https://github.com/NousResearch/hermes-agent/pull/2809))。 - 修复 api-server 响应存储文档 — SQLite,而非内存 ([#2819](https://github.com/NousResearch/hermes-agent/pull/2819))。 - 为 pip install extras 加引号以修复 zsh 通配符错误 ([#2815](https://github.com/NousResearch/hermes-agent/pull/2815))。 - 统一钩子文档 — 将插件钩子添加到钩子页面,添加 `session:end` 事件 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 在 `session_search` 架构描述中澄清双模式行为 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 - 修复 Discord 公开机器人设置的 Discord 提供邀请链接 ([#3519](https://github.com/NousResearch/hermes-agent/pull/3519)),由 @mehmoodosman 贡献。 - 修订 v0.4.0 更新日志 — 修复功能归属,重新排序章节 ([未标记提交](https://github.com/NousResearch/hermes-agent))。 --- ## 👥 贡献者 ### 核心 - **@teknium1** — 157 个 PR,涵盖本发布全部范围 ### 社区贡献者 - **@alt-glitch** (Siddharth Balyan) — 2 个 PR:带 uv2nix 构建的 Nix flake、NixOS 模块和持久容器模式 ([#20](https://github.com/NousResearch/hermes-agent/pull/20));自动生成配置键和 Nix 构建的后缀 PATHs ([#3061](https://github.com/NousResearch/hermes-agent/pull/3061), [#3274](https://github.com/NousResearch/hermes-agent/pull/3274))。 - **@ctlst** — 1 个 PR:防止网关模式下的 AsyncOpenAI/httpx 跨循环死锁 ([#2701](https://github.com/NousResearch/hermes-agent/pull/2701))。 - **@memosr** (memosr.eth) — 1 个 PR:为 `send_message_tool` HTTP 调用添加请求超时 ([#3162](https://github.com/NousResearch/hermes-agent/pull/3162))。 - **@mehmoodosman** (Osman Mehmood) — 1 个 PR:修复 Discord 文档中的公开机器人设置 ([#3519](https://github.com/NousResearch/hermes-agent/pull/3519))。 ### 所有贡献者 @alt-glitch, @ctlst, @mehmoodosman, @memosr, @teknium1 --- **完整更新日志**:[v2026.3.23...v2026.3.28](https://github.com/NousResearch/hermes-agent/compare/v2026.3.23...v2026.3.28)