← 全部内容
2026-05-14 风险提醒 风险

Hermes approval hardening 修掉 critical YOLO-mode bypass,并暴露长会话失败模式

5 月 14 日后半段最值得读的 Hermes 更新,不是 UI 小修,而是 approval safety。PR #23835 说 `HERMES_YOLO_MODE` 每次 approval check 都从 `os.getenv()` 读取,因此 skill 或被 prompt-injection 影响的 in-process tool 可以在启动后改 `os.environ`,直接关闭 command approval checks。同一个 PR 还把 LLM smart-approval parsing 从 substring match 改成精确 `APPROVE`,为过去没有 audit trail 的 background dangerous auto-approval 加 warning log,并扩展 pipe-to-shell detection,覆盖 `/bin/bash` 和 `bash -c` 变体。相邻可靠性 work 对同一批 operator 也重要:PR #25716 为长上下文压缩加入 hierarchical map-reduce,把巨大 transcript 拆成 bounded segments;issue #25723 则报告一次 provider streaming error 可能让整个 session 禁用 streaming,而不是只影响当前 request。

影响风险 来源3 对象operator · developer · team
为什么重要

Permission gate 的价值,取决于不可信 in-process code 不能把它关掉。approval parsing、audit logs、context compression、streaming fallback controls 组合起来,才决定长时间运行的 agent 出错后是否还能被审计。

证据
  • PR #23835 将 YOLO-mode environment re-read 标为 critical,因为 in-process code 可在启动后设置 `HERMES_YOLO_MODE=true`
  • 同一 PR 把 smart approval 从 substring matching 改为 exact `APPROVE`,为 non-interactive dangerous auto-approval 加 warning log,并扩展 pipe-to-shell detection
  • PR #25716 为超大 transcript 加 hierarchical map-reduce compression,并在 recompression 前恢复 persisted handoff summaries
  • Issue #25723 报告一次 provider streaming error 后,整个 session 的 streaming 被禁用
  • Issue #25710 记录 Telegram streaming 在 raw text unchanged 时可能跳过最终 MarkdownV2 formatting
风险提示
  • review 时 approval hardening PR 仍是 open,生产构建未必已经包含修复
  • 即使 parsing 和 logging 变好,YOLO / auto-approval mode 仍是高风险配置
  • compression 和 streaming 修复需要真实长会话 / provider failure 测试,不能只看单元测试