🐝 Hermes 日报 — 2026-05-12
版本状态
- 当前版本: v0.13.0 (2026.5.7)
- 远程落后: 163 commits behind origin/main — 建议尽快
hermes update
更新摘要(精简)
远程 main 有大量新提交(20+),核心变更按类别分:
新功能:
- 跨会话 Prompt Caching(#23828):对 Claude 在 Anthropic / OpenRouter / Nous Portal 上实现了 1 小时跨会话前缀缓存。新会话的首轮输入成本降低约 85-90%——系统提示和工具 schema 不再每轮重付费。
- Plugin LLM Access(
agent/plugin_llm.py,1046 行):插件现在可以通过ctx.llm直接调用 LLM,支持同步/异步、结构化 JSON 输出、Schema 校验。Host 拥有认证和路由控制,插件无法触及 API Key。 HERMES_SESSION_ID环境变量(#23847):session ID 在创建时自动写入环境变量,方便 webhook 触发的 agent 在通知中包含--resume指令。- Hyperliquid 和 Stocks 两个新 Optional Skills:分别提供加密货币永续合约市场数据和股票行情查询,纯 stdlib 实现,无需 API Key。
- LINE 平台适配器:新增 LINE 即时通讯平台支持。
Bug 修复:
- Markdown 表格 CJK 对齐(#23863 + #23948):TUI 中超宽表格自动纵向回退,中日韩宽字符正确对齐。
- Auxiliary client poisoned 状态清理(#23931):异步包装器在客户端中毒时被正确驱逐。
- Kimi K2.6 context-length 修正(#23980):Ollama Cloud 和 Kimi Coding 的上下文长度解析不再出错。
- MiniMax Dashboard 登录按钮错跳 Claude OAuth(#24058)。
/model命令显示 Nous Portal 远程模型目录(#23912)。
改进优化:
- TUI Markdown 链接解析(#24013):链接显示为可读页面标题而非原始 URL。
- Computer Use driver 刷新(#24063):
hermes update时自动刷新 CUA driver。 - 大量 Ruff 自动化代码清理和 Nix 打包改进。
社区动态与深度玩法
1. A2A(Agent-to-Agent)协议支持讨论持续升温
来源: GitHub Issue #514 · 13 条评论
这条 Feature Request 已经成为社区讨论跨框架 Agent 互操作的核心阵地。A2A 协议由 Google 主导(Apache 2.0,托管于 Linux Foundation),核心解决”谁可以帮我”的问题——与 MCP 的”我能用什么工具”形成互补。
讨论中涌现了几个有价值的技术观点:
- ThinkOffApp 提出了 user-intent-kit——在 A2A 之上增加共享用户意图状态(活动、偏好、可用性),让 Agent B 在接手前了解用户上下文,而不仅仅是收到一条消息。
- Jovancoding 指出了 A2A + MCP 都未覆盖的盲区:运行时状态协调——多框架 Agent 协作时的状态冲突、进度追踪、消息丢失问题。
- 讨论共识:A2A 解决的是发现和路由,但实际多 Agent 生产部署还需要额外的共享上下文和状态管理层。
实操价值: 如果你正在做多 Agent 系统,A2A 值得关注。Hermes 一旦支持,理论上可以与 LangChain/AutoGen/CrewAI 构建的 Agent 互相发现和委托任务。
2. Auxiliary Fallback 系统与用户 fallback_providers 互不相认——架构级设计缺陷
来源: GitHub Issue #24039 · Collaborator 标记
这个问题揭示了 Hermes 内部存在两套并行的 fallback 系统:
- 用户在
config.yaml中配置的fallback_providers(例如一系列免费/低成本模型) - Auxiliary 任务(vision、compression、session_search 等)使用的硬编码 fallback 链(OpenRouter → Nous → Custom)
问题: 后者完全无视前者的配置。用户以为自己的免费模型链会被 auxiliary 任务使用,实际上 auxiliary 可能在烧付费模型(如 Gemini 3 Flash Preview)。
相关 PR #24036 修了 OpenRouter 路径的即时问题,但更大范围的架构统一(让 auxiliary fallback 复用 fallback_providers)仍在讨论中。
实操价值: 如果你使用免费模型链 + auxiliary 任务,检查一下 ~/.hermes/logs/agent.log 确认 auxiliary 实际调用的模型,避免隐性成本。
3. Smart Model Routing 的 Preflight Compression 陷阱
来源: GitHub Issue #7798 · P1 优先级
当 smart_model_routing 将某个 turn 路由到便宜模型时,Hermes 会重建 AIAgent 实例,而新的 ContextCompressor 绑定的是便宜模型的 context_length。如果便宜模型的上下文窗口比主模型小,Preflight Compression 会误判历史过长,在用户发送简单消息时触发不必要的历史压缩。
修复方案(PR #7799):
- Smart-routed turns 跳过 preflight compression
resolve_turn_route新增上下文窗口容量检查——当预估请求超过便宜模型窗口的 50% 时,拒绝降级路由
实操价值: 使用 smart_model_routing 的用户如果发现会话历史被意外压缩,这就是原因。临时解决方案是给便宜模型设置合理的 context_length。
4. Claude Max OAuth Token 被拒——HTTP 400 的多层原因
来源: GitHub Issue #15080 · P1 · 10 条评论
Claude Max 20x 订阅用户使用 ~/.claude/.credentials.json 中的 OAuth token 通过原生 Anthropic API 调用时,所有请求被 HTTP 400 拒绝。
讨论揭示这不是简单的重复 issue:虽然表面报错与 #10575 相同,但即使用户应用了 PR #10576 的修复(sanitizer 改动)后仍然失败。用户验证发现即使 tools=False(不传工具定义)也会被拒,说明问题可能出在 Anthropic 的 Claude Max proxy 对请求格式的严格校验上。
实操价值: 如果你使用 Claude Max 订阅通过 Hermes 调用原生 Anthropic API,目前可能需要通过 OpenRouter 中转而非直连。
5. Hermes Web UI 社区项目已达 4400+ Star
来源: EKKOLearnAI/hermes-web-ui · GitHub
这是一个由社区维护的 Hermes Agent Web Dashboard,提供多平台 AI 聊天、会话管理、定时任务管理、用量分析等功能。4400+ Star 说明 Hermes 的 Web 管理界面需求旺盛——官方目前以 TUI 和 Gateway 为主,Web UI 由社区填补。
实操价值: 如果你需要给团队提供一个 Web 界面来管理 Hermes Agent(而不是每个人都 SSH 进服务器),这个项目值得一看。
6. 新 Optional Skills:Hyperliquid(加密市场)+ Stocks(股票行情)
来源: optional-skills/ 目录 · origin/main
两个新技能都使用纯 Python stdlib,零外部依赖:
- Hyperliquid(by Hugo Sequier):12 个命令覆盖永续合约市场数据、现货余额、成交记录、L2 深度、资金费率、交易复盘。只读模式,不需要 API Key。
- Stocks(by Mibay):5 个命令
quote、search、history、compare、crypto,通过 Yahoo Finance 获取股票和加密货币数据。可选配置 Alpha Vantage Key 以补充市盈率等字段。
安装方式(拉取最新代码后):
cp -r optional-skills/blockchain/hyperliquid ~/.hermes/skills/blockchain/
cp -r optional-skills/finance/stocks ~/.hermes/skills/finance/
实操价值: 配合 Hermes 的 Cron 功能,可以定时抓取市场数据并推送报告到 Telegram/飞书——轻量级量化监控方案。
玩机技巧:跨会话 Prompt Caching 省钱大法
本周 Hermes 合并了 #23828——跨会话 1 小时前缀缓存。这是 Claude 用户的省钱利器:
工作原理:
缓存层 内容 TTL 作用域
──────────────────────────────────────────────────────────────
Breakpoint 1 tools[-1] 1h 跨会话
Breakpoint 2 stable system prefix 1h 跨会话
Breakpoint 3+ volatile suffix + memory 5min 会话内
系统提示被拆分为稳定前缀(不变的部分)和易变后缀(时间戳、memory snapshot 等)。稳定部分在 1 小时内跨会话复用,首轮输入成本降低约 85-90%。
适用条件:
- Provider: Anthropic 原生 / OpenRouter / Nous Portal
- Model: Claude 系列(支持 Anthropic 的 cache_control)
- 活跃间隔: 1 小时内重新开 session 即享受缓存
最佳实践:
# 如果你频繁开新 session(比如 Cron Job),这几乎是免费的
# 确保你的 provider 支持 prompt caching
hermes config get model.provider
# 应该是 anthropic / openrouter / nous 之一
# 查看缓存命中情况(verbose 模式)
hermes chat -v
# 首轮输出中会显示 cache_creation_input_tokens / cache_read_input_tokens
Cron Job 场景特别划算:每小时跑一次的定时任务,系统提示 + 工具定义约 10K-30K tokens,原本每轮都付全价,现在 1 小时内只有首次付费。