乐于分享
好东西不私藏

Hermes 源码拆解|L3 支撑模块:agent/ 目录

Hermes 源码拆解|L3 支撑模块:agent/ 目录

Hermes Agent L3 支撑模块全景解析

agent/ 是 Hermes 的「后勤补给营」——错误恢复、密钥轮换、上下文压缩、成本优化,14 个核心模块,看懂生产级 Agent 的横切关注点设计。

📋 支撑模块缺失 = 生产事故

模块
缺失后果
error_classifier
401 被当 500 重试,账号被封
credential_pool
单 key 额度用完,服务直接挂
context_compressor
长对话突破上下文,必须重来
prompt_builder
换模型要手动重写提示词

🔬 4 大核心模块详解

829 行错误处理

1error_classifier — 急诊分诊台

把各种 API 错误统一翻译成「推荐恢复动作」,上层只读 should_fallback / retryable。

12 种 FailoverReason + 6 层决策流水线

auth / billing / rate_limit / overloaded / server_error / timeout / context_overflow / payload_too_large / model_not_found / format_error / thinking_signature / long_context_tier / unknown

  • 特殊 provider 模式
  • HTTP 状态码
  • body 里的 error.code
  • 多语言匹配
  • disconnect 推断
  • 传输层错误
💡 亮点:OpenRouter 错误嵌套解包;billing vs rate_limit 歧义消歧。

1,229 行长会话

2context_compressor — 超长会话压缩机

上下文快满时,用辅助 LLM 把中间部分替换为结构化摘要,保留头尾,让会话无限继续。

4 阶段压缩 + 反雪崩机制

  • Cheap pre-pass:规则替换 tool_result,省 50% token
  • 确定边界:保护前 N 条 + 尾部 ~20K
  • LLM 摘要:12 字段(Active Task / Goal / Blocked 等)
  • 组装:自动处理 role alternation

连续 2 次压缩节省 < 10% 则拒绝继续,建议开新会话。

💡 亮点:Summary 回灌尾部;redact 保存前再扫密钥。

2,878 行辅助中枢

3auxiliary_client — 跑杂活小分队

统一、按任务分流、自动故障切换的辅助 LLM 入口——压缩、标题、搜索、视觉等杂活走便宜模型。

7 种任务

  • compression
  • vision
  • web_extract
  • session_search
  • skills_hub
  • mcp
  • flush_memories

7 级 Provider 链 + payment fallback

OpenRouter → Nous Portal → 自定义 endpoint → Codex OAuth → 原生 Anthropic。402 自动切下一个。

💡 价值:辅助任务成本降到 1/10。

1,326 行密钥管理

4credential_pool — N 把钥匙管家

一个 provider 配多把 API key,用完自动换下一把;支持 4 种轮询 + OAuth 自动刷新。

4 种轮询策略

  • fill_first:永远用第一把
  • round_robin:轮流均摊
  • random:多租户负载均衡
  • least_used:天然均衡

OAuth 自动刷新

Anthropic claude_code token 每次 select 前从磁盘拉最新,避免多进程覆盖;Codex 过期前主动 refresh。

💡 价值:把 API 额度从硬瓶颈变成可扩展资源。

📎 其余 10 个模块速览

模块
行数
核心能力
prompt_builder
1,052
系统提示拼装 + 注入防御 + 16 平台适配
model_metadata
1,191
模型参数 + Probe Tier 降级(256K→8K)
prompt_caching
72
Anthropic 4 书签缓存,省 75% 输入成本
retry_utils
57
抖动指数退避,防惊群效应
anthropic_adapter
1,566
协议翻译 + Thinking 参数 + OAuth 刷新
insights
930
7 部分使用报告
display
1,002
CLI spinner + 颜文字 + Skin 主题
rate_limit_tracker + guard
428
速率头解析 + 跨进程共享硬锁
redact
340
敏感信息涂黑
usage_pricing
688
单次调用成本估算

⚖️ 4 个关键设计权衡

1. 模块化 vs 上帝类:L2 是顺序依赖长流程,L3 是无状态工具箱。判断标准是「状态共享度」。

2. auto vs explicit:auto 新用户友好;explicit 企业友好,不默默降级避免数据泄漏。

3. 混合压缩:规则 pre-pass 砍 50% + LLM 处理复杂部分。AI+rules 通用范式。

4. 软租约 vs 硬锁:rate limit 是服务端约束,客户端硬锁不能真正防超限。

💡 产品经理特别洞察

🎯 可直接借鉴的 6 个点

  • 错误分类结构化
    :上层只读 should_fallback / retryable——解耦业务与恢复
  • 辅助任务用便宜模型
    :Haiku 价格是 Opus 的 1/50,成本砍 10 倍
  • cache_control 从第一天做
    :系统提示拆静态 + 动态
  • Jittered Backoff 不要省
    :固定退避 = 雪崩放大器
  • Insights 是 ARR 护城河
    :量化价值是续费核心话术
  • Spinner 是产品温度
    :颜文字成本为 0,留存武器

⭐ 3 个差异化亮点

  • Credential 资源池
    :家庭 5 key + 企业 20 key = 定价创新空间
  • 压缩保留 Active Task
    :原话保留最后请求 → 「3 分钟记忆」到「任务永续」
  • Prompt defense-in-depth
    :加载扫注入 → 压缩 redact → 记忆再过一遍

L2 是「能力展示」,L3 是「稳定性展示」。评估 AI 框架要看「怎么稳定地做」。Hermes 的 agent/ 目录给了一份「生产级 Checklist」——做到 30% 就是行业 Top 20%。

源码拆解 |2026.4.25  | by 赛博阁员张居正

点击左下方“阅读原文”查看完整拆解内容