Hermes Agent 源码解析 — 79K Stars 的自进化 AI Agent 框架

> 一句话版本:Nous Research 开源的超大型 AI Agent 框架,65 万行代码,支持 26 个消息平台、54+ 工具、123 个技能,核心理念是"自进化"——AI 在使用过程中自动创建和改进技能。

项目信息
来源https://github.com/nousresearch/hermes-agent
作者Nous Research
创建时间2025-07-22
Stars79,321Forks 10,613
语言Python 3.11+
许可证MIT
版本v0.8.0

核心内容

代码规模(惊人)

类别行数文件数
Python 业务代码~205,000~300
Python 测试代码180,002552
Markdown 文档198,585
HTML/CSS/JS/TS10,798
**总计****~647,000**852+

最大的文件

文件行数职责
`run_agent.py`10,627AIAgent 核心类,对话循环
`cli.py`9,956交互式终端界面
`gateway/run.py`8,982消息网关主循环
`hermes_cli/main.py`6,057CLI 入口与子命令
`gateway/platforms/feishu.py`3,964飞书平台适配器

整体架构


用户入口层: CLI / Gateway(26平台) / ACP(IDE)
       ↓
AIAgent (run_agent.py:492)
  ├── Prompt Builder(系统提示词构建 + 注入检测)
  ├── Context Compressor(有损摘要压缩)
  ├── Error Classifier(分层错误分类 + 故障转移)
  └── Credential Pool(多密钥轮换)
       ↓
model_tools.py(编排层)
       ↓
ToolRegistry(注册中心)→ 54+ 工具
       ↓
支撑层: SQLite+FTS5 | 8种记忆后端 | 123技能 | Cron调度

关键设计亮点

1. 对话主循环 (run_conversation)


预处理 → 系统提示词(缓存) → 上下文压缩 → 工具调用循环(90轮上限)
  → 并行/串行工具分发 → 错误分类重试 → 后处理(记忆/技能/持久化)

2. 并行工具执行

3. 错误分类与故障转移(极其精细)


HTTP状态码 → 错误码分析 → 消息模式匹配 → 传输错误启发式
  → auth_failure(轮换凭证) / rate_limit(backoff) / 
    context_overflow(压缩) / model_not_found(fallback) / 
    overloaded(重试)

支持供应商特定处理(Anthropic thinking 签名、OpenRouter 限速头、OpenAI TPM/RPM)。

4. 凭证池轮换

多 API Key 管理,支持 4 种选择策略(Fill-first / Round-robin / Random / Least-used),TTL 疲劳追踪,解析供应商 retry-after 头部。

5. 上下文压缩引擎

保护头部(系统提示)+ 尾部(最近 20K tokens),中间轮次用 LLM 做有损摘要(20% 比例),摘要带特殊前缀明确标记为"参考信息"而非待执行指令。

6. 三层记忆架构

实现用途
会话记忆SQLite FTS5全文搜索 + LLM 摘要
持久记忆MEMORY.md / USER.mdAgent 自主维护的笔记
外部插件8 种后端honcho/mem0/全息/retaindb 等

7. 危险命令审批系统

~40 个正则 + 150 个关键词匹配,覆盖文件系统、SQL、远程执行、Git 破坏性操作、Shell 炸弹等。CLI 提供 once/session/always/deny 四级审批。

8. Gateway 消息网关

支持 23 个平台:Telegram、Discord、Slack、WhatsApp、Signal、Matrix、微信、企业微信、飞书、钉钉、iMessage、Email、SMS、Home Assistant 等。

9. 技能系统(核心差异化)

10. 子 Agent 委派

递归深度限制 MAX_DEPTH=2,子 Agent 获得独立迭代预算(50 轮),不能嵌套委派/执行代码/操作记忆,最多 3 个并发。

与 OpenClaw 的对比

Hermes AgentOpenClaw
Stars79K
代码量~65 万行~?
平台支持23 个Discord/Telegram/飞书等
工具数54+类似
技能系统123 个,自动进化SKILL.md
记忆系统8 种后端插件Memory 文件
多供应商凭证池轮换配置切换
上下文压缩有损摘要
危险命令审批4 级审批
代码执行6 种环境shell exec
子 Agent深度限制委派sessions_spawn
定位全功能 Agent 框架个人 Agent + 网关

分析

优势

风险/不足

与 Jay 的关联

评分

维度评分 (1-10)说明
工程规模1065 万行代码,可能是最大的开源 Agent 框架
功能覆盖926 平台 + 54 工具 + 123 技能 + 8 记忆后端
代码质量6万行单文件、高耦合、3968 open issues
创新性7技能自进化 + 分层错误分类 + 凭证池
实用性7功能全但学习曲线陡峭
可维护性4代码量过大,单文件万行级
与 Jay 的关联9OpenClaw 的直接对标项目,大量可借鉴设计
**总分****7.4**功能最全的开源 Agent 框架,但工程质量是短板