Hermes Agent 深度拆解:当 Nous Research 决定「干掉所有无状态 Agent」——110K Star 的自进化智能体如何用闭环学习重新定义 AI Agent 的终极形态
深度拆解 Nous Research 出品的 110K Star 自进化 AI Agent 框架:闭环学习系统、技能自动生成与优化、SQLite FTS5 跨会话记忆、Honcho 用户建模、Atropos RL 强化学习训练环境、40+ 内置工具、6 种终端后端、10+ 消息平台,附完整代码示例与架构对比分析
一、引言:为什么你需要关注一个叫「爱马仕」的 Agent?
2026 年的 AI Agent 生态,已经卷到了令人窒息的程度。
OpenClaw 用 TypeScript 重写了整个 Agent Runtime,星标突破 28 万;Claude Code 从「代码助手」进化成了「自主编程代理」;Cursor 凭借 Tab 补全杀死了大量重复编码场景。但如果你仔细观察,会发现一个致命问题——
几乎所有 Agent 都是无状态的。
每次对话,它们从零开始。你跟它聊了三个月,它依然不认识你。你教它的技巧,下次它就忘了。你反复纠正的错误,它会在下一次对话里重复犯。
这不是 Agent,这是带工具的聊天机器人。
2026 年 2 月,Nous Research 发布了 Hermes Agent——一个定位极其明确的项目:「The self-improving AI agent」。不是最聪明的,不是最快的,而是一个能从每次交互中学习、自动创建技能、自主决定记住什么的智能体。
两个月后,GitHub Star 冲到 96,000+,截至 2026 年 8 月已突破 110,000,成为 GitHub 历史上增长最快的 AI Agent 项目之一。
这篇文章将从架构层面深度拆解 Hermes Agent 的设计哲学、核心实现和工程实践,让你理解一个「会自我进化的 Agent」到底是怎么工作的。
二、项目全貌:数据速览
在深入技术细节之前,先看一组关键数据:
| 属性 | 详情 |
|---|---|
| 开发者 | Nous Research(MIT 许可证) |
| 主语言 | Python 3.11+(909+ 文件) |
| 辅助语言 | TypeScript/TSX(Web UI) |
| 总文件数 | ~1717 |
| 测试用例 | ~3000 个 |
| 内置工具 | 40+ |
| 内置技能 | 288 个 |
| 可选技能 | 116 个 |
| 消息平台 | ~10 个 |
| 终端后端 | 6 种 |
| 最新版本 | v0.19.1(2026-07-30) |
一句话总结:这是一个「中等规模但设计精巧」的 Python Agent 项目。比 OpenClaw(14000+ 文件)更容易理解,但功能深度不遑多让。
三、架构设计:五大核心决策
3.1 整体架构全景图
┌────────────────────────────────────────────────────────┐
│ Hermes Agent │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ CLI TUI │ │ Telegram │ │ Discord │ ... │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ ─────┴──────────────┴──────────────┴─── Interface │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ AI Agent Core │ ← run_agent.py │
│ │ (同步 Agent 循环) │ │
│ └─────────┬─────────┘ │
│ │ │
│ ┌─────────┬───────────┼───────────┬──────────┐ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌─────┐ ┌──────┐ ┌──────────┐ ┌──────┐ ┌───────┐ │
│ │Tools│ │Memory│ │ Skills │ │Model │ │ Cron │ │
│ │Reg. │ │Mgr │ │ System │ │Meta │ │Sched. │ │
│ └──┬──┘ └──┬───┘ └────┬─────┘ └──┬───┘ └───┬───┘ │
│ ──┴────────┴──────────┴──────────┴─────────┴── │
│ │ │
│ ┌───────────────────────────────────────────────┐ │
│ │ Tool Implementations (40+) │ │
│ │ terminal | file | web | browser | code_exec │ │
│ │ delegate | mcp | vision | tts | cron | ... │ │
│ └───────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────────────────────────────────────┐ │
│ │ Terminal Backends (6种) │ │
│ │ local | docker | ssh | daytona | modal | ... │ │
│ └───────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
│ │
┌───────▼──┐ ┌─▼──────┐
│ SessionDB│ │ RL Env │
│ (SQLite) │ │(Atropos)│
└──────────┘ └────────┘
3.2 决策一:同步 Agent 循环
这是 Hermes Agent 最反直觉的设计选择。在 2026 年,几乎所有人都在用 async/await,Hermes Agent 却选择了完全同步的 while 循环:
# run_agent.py 核心循环
while api_call_count < self.max_iterations and self.iteration_budget.remaining > 0:
response = client.chat.completions.create(
model=model,
messages=messages,
tools=tool_schemas
)
if response.tool_calls:
for tool_call in response.tool_calls:
result = handle_function_call(tool_call.name, tool_call.args, task_id)
messages.append(tool_result_message(result))
api_call_count += 1
else:
return response.content
为什么?
调试友好。 同步代码的调用栈是线性的,出了问题你能清晰地看到是哪一步失败了。在 Agent 开发中,调试的频率远高于性能优化。一个需要你花 30 分钟才能复现的异步 Bug,可能在同步代码里 30 秒就能定位。
思维模型简单。 新贡献者看到这个 while 循环,立刻就能理解 Agent 的运行逻辑。相比之下,OpenClaw 的异步架构需要理解事件循环、Promise 链、WebSocket 协议等多个概念后才能上手。
性能影响有限。 Agent 的瓶颈在 LLM API 调用(通常 200ms-5s),不在 Python 的异步调度。同步循环在等待 LLM 响应时释放 GIL,实际性能差异可以忽略不计。
3.3 决策二:中心化工具注册
所有工具通过 tools/registry.py 统一注册和分发。添加一个新工具只需要两步:
# tools/your_tool.py
from tools.registry import registry
def your_handler(args, context):
"""处理你的工具调用"""
result = do_something(args)
return {"output": result}
# 注册工具
registry.register(
name="your_tool",
handler=your_handler,
description="你的自定义工具描述",
parameters={
"type": "object",
"properties": {
"input": {"type": "string", "description": "输入参数"}
},
"required": ["input"]
}
)
这种设计的好处是:工具之间完全解耦。每个工具文件只关心自己的逻辑,不需要知道其他工具的存在。测试一个工具只需要 mock registry,不需要启动整个 Agent。
3.4 决策三:OpenAI 消息格式统一
无论底层使用 OpenAI、Anthropic、Bedrock 还是 OpenRouter,Hermes Agent 内部统一使用 OpenAI 兼容的消息格式。这意味着切换 LLM Provider 只需要改一个配置项,不需要修改任何业务逻辑。在 Provider 价格战愈演愈烈的今天(DeepSeek V4 Flash 日处理 8 万亿 Token),这种灵活性极其重要。
3.5 决策四:Profile 多实例隔离
通过 HERMES_HOME 环境变量实现完全隔离的多实例支持。代码中 119+ 处引用 get_hermes_home() 确保路径隔离。每个实例拥有独立的会话数据库、技能存储、记忆文件和配置。
3.6 决策五:研究导向的模块设计
Hermes Agent 不仅仅是一个产品级 Agent,它还是一个研究平台。内置 Atropos RL 训练环境、轨迹记录与压缩、批量运行器、SWE-bench 迷你运行器——这些模块从设计之初就是核心组件。
四、核心特性一:闭环学习系统
这是 Hermes Agent 最独特、最「杀手级」的特性。
4.1 传统 Agent 的致命缺陷
大多数 Agent 的工作模式是:用户提问 → Agent 调用工具 → 返回结果 → 对话结束。下一次对话,一切从零开始。你上次教它的技巧、纠正过的错误、总结的经验,全部丢失。
这就像一个每天失忆的员工——即使他能力再强,也无法积累经验,无法变得更好。
4.2 Hermes Agent 的闭环学习
Hermes Agent 打破了这个循环:
执行任务 → 观察结果 → 提取经验 → 创建/改进技能 → 持久化知识
↑ │
└──────────── 下一轮任务使用改进后的技能 ←─────────────────┘
核心实现分为三个阶段:
阶段一:任务执行后的反思
# agent/learning_loop.py(简化示意)
def post_task_reflection(task_result, original_goal):
"""任务完成后的反思与学习"""
# 1. 评估任务完成质量
quality_score = evaluate_task_quality(task_result, original_goal)
# 2. 提取可复用的经验
if quality_score >= 0.7:
# 成功经验:提取为新技能
skill = extract_skill_from_success(task_result)
skill_store.save(skill)
elif quality_score < 0.3:
# 失败经验:记录错误模式
error_pattern = classify_error_pattern(task_result)
error_store.save(error_pattern)
# 3. 更新用户偏好模型
user_model.update(original_goal, task_result, quality_score)
阶段二:技能自动生成
当 Agent 发现某个操作模式反复出现时,它会自动将其封装为可复用的技能。技能文件使用 Markdown 格式,人类可读可编辑:
---
name: deploy-to-staging
description: 自动部署代码到预发布环境
trigger: 当用户说「部署」「deploy」或提到 staging 环境时
tools: [terminal, file, git]
---
## 步骤
1. 检查当前分支状态:git status
2. 确保所有测试通过:pytest
3. 构建 Docker 镜像:docker build -t app:staging .
4. 推送到镜像仓库:docker push registry/app:staging
5. 更新 staging 环境:kubectl rollout restart deployment/app -n staging
阶段三:定期知识固化
Hermes Agent 内置了 Nudge 机制——定期触发的知识固化检查,包括:检查未持久化的临时记忆、合并相似技能、淘汰长期未使用的技能。
4.3 闭环学习的实战效果
在实际使用中,闭环学习的效果是累积性的:
- 第 1 天:Agent 只有基础能力,每次操作都需要详细指导
- 第 7 天:Agent 积累了 10-20 个自动生成的技能,常用操作开始自动化
- 第 30 天:Agent 拥有 50+ 个性化技能,能够主动预测你的需求
- 第 90 天:Agent 已经建立了完整的用户画像,操作风格与你高度匹配
这种「越用越聪明」的体验,是任何无状态 Agent 都无法提供的。
五、核心特性二:技能系统
5.1 三级技能体系
Hermes Agent 的技能分为三个层次:
- 核心能力(40+ 工具):终端操作、文件读写、浏览器控制、代码执行等基础能力
- 内置技能(288 个):Git 操作、Docker 管理、数据库查询、API 调试等常见开发任务
- 可选技能(116 个):特定领域的工作流,如 Kubernetes 部署、CI/CD 配置、性能分析等
5.2 技能市场:Agent 版的插件商店
# 浏览可用技能
hermes skills search "docker"
# 安装技能
hermes skills install docker-optimization
# 从对话中自动提取技能
hermes skills create --from-conversation
最后一个命令特别有意思——--from-conversation 可以从当前对话中自动提取技能。你跟 Agent 聊天时,它会观察你的操作模式,然后自动生成一个可复用的技能文件。
六、核心特性三:跨会话记忆与用户建模
6.1 记忆架构
Hermes Agent 的记忆系统分为三层:
- 技能记忆(永久):自动生成的技能文件
- 持久记忆(长期):用户偏好、重要决策
- 会话记忆(短期):当前对话上下文
底层存储基于 SQLite + FTS5 全文搜索,中文分词通过 native/fts5_cjk 模块实现。
6.2 Honcho 用户建模
Hermes Agent 集成了 Honcho 辩证用户建模系统。这不是简单的标签系统,而是一个能够动态演化的用户画像。它会分析你的专业水平、工作时间模式、操作偏好,然后据此调整 Agent 的行为。
比如:如果你在某个领域是专家,Agent 会自动简化解释;如果你在某个时段通常很忙,Agent 会切换到更简洁的响应风格。
6.3 记忆的自主策展
与大多数 Agent 的被动记忆不同,Hermes Agent 的 Agent 会自主决定什么值得记住。评估因素包括:用户是否明确要求记住、是否包含错误纠正(学习价值高)、是否使用了新工具或新方法、是否与用户长期目标相关、是否包含可复用的模式。
七、核心特性四:多终端后端与 Gateway 网关
7.1 六种终端后端
local(本地)、docker(容器隔离)、ssh(远程)、daytona(云端)、modal(Serverless GPU)、e2b(安全沙箱)——适配从开发到生产的全场景。
7.2 十消息平台 Gateway
Telegram、Discord、Slack、WhatsApp、Signal、QQ、微信企业号、Teams、Google Chat、Matrix——一个 Gateway 进程可以同时连接多个平台。
7.3 IDE 集成
通过 acp_adapter/ 模块实现与 VS Code、Zed、JetBrains、Vim 的深度集成,直接在编辑器内与 Hermes Agent 交互。
八、代码实战:从零搭建 Hermes Agent
8.1 快速安装
# 一行安装(支持 Linux/macOS/WSL2/Android Termux)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# 或者用 pip
pip install hermes-agent
# 或者用 Docker
docker compose up -d
8.2 配置多模型支持
models:
primary:
provider: openai
model: gpt-4o
fallback:
provider: deepseek
model: deepseek-chat
local:
provider: ollama
model: llama3.1:70b
routing:
strategy: cost-optimized
fallback_chain: [primary, fallback, local]
8.3 自定义工具示例
# tools/custom_analyzer.py
from tools.registry import registry
def analyze_code_quality(args, context):
"""分析代码质量"""
code = args.get("code", "")
issues = []
lines = code.split('\n')
for i, line in enumerate(lines, 1):
if len(line) > 120:
issues.append(f"Line {i}: 行长度超过 120 字符")
complexity = code.count('if ') + code.count('for ') + code.count('while ')
return {
"issues": issues,
"complexity_score": complexity,
"recommendation": "复杂度较高" if complexity > 10 else "质量良好"
}
registry.register(
name="analyze_code_quality",
handler=analyze_code_quality,
description="分析代码质量并给出改进建议",
parameters={
"type": "object",
"properties": {
"code": {"type": "string", "description": "要分析的代码"}
},
"required": ["code"]
}
)
九、性能优化实践
9.1 Token 消耗优化
Hermes Agent 提供智能上下文压缩:保留系统消息(不可压缩)、保留最近 5 轮对话(保持上下文连贯性)、中间消息进行摘要压缩。这可以将 Token 消耗降低 40-60%。
9.2 并行工具执行
当 Agent 需要调用多个独立工具时,Hermes Agent 支持并行执行,显著提升多工具场景的响应速度。
9.3 缓存策略
工具结果缓存(默认 5 分钟 TTL),避免重复执行相同的工具调用。
十、与主流 Agent 框架对比
| 维度 | Hermes Agent | OpenClaw | AutoGPT | LangGraph |
|---|---|---|---|---|
| 自进化能力 | ✅ 闭环学习 | ❌ | ❌ | ❌ |
| 跨会话记忆 | ✅ SQLite FTS5 | ✅ 文件系统 | ❌ | ❌ |
| 用户建模 | ✅ Honcho | ❌ | ❌ | ❌ |
| 技能市场 | ✅ Skills Hub | ✅ SkillHub | ❌ | ❌ |
| RL 训练环境 | ✅ Atropos | ❌ | ❌ | ❌ |
| 终端后端 | 6 种 | 3 种 | 1 种 | N/A |
| 消息平台 | 10+ | 15+ | 3+ | N/A |
| 代码量 | ~1700 文件 | ~14000 文件 | ~3000 文件 | ~2000 文件 |
| 主语言 | Python | TypeScript | Python | Python |
| 研究友好度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ |
关键差异:
- 自进化是 Hermes Agent 的核心护城河。其他 Agent 框架需要人工更新 Prompt 或配置,Hermes Agent 能从交互中自动学习。
- 研究就绪是另一个独特优势。如果你在做 Agent 学术研究,Hermes Agent 是唯一一个内置 RL 训练环境和评估工具的开源框架。
- 代码可读性方面,Hermes Agent 以 ~1700 文件的体量实现了与 OpenClaw(~14000 文件)相当的功能深度,代码密度和可维护性明显更优。
十一、最佳实践与避坑指南
11.1 生产环境部署建议
version: '3.8'
services:
hermes:
image: hermes-agent:latest
restart: unless-stopped
environment:
- HERMES_HOME=/data
- OPENAI_API_KEY=${OPENAI_API_KEY}
volumes:
- hermes-data:/data
deploy:
resources:
limits:
memory: 2G
cpus: '2.0'
11.2 安全注意事项
生产环境务必配置:工具白名单、命令黑名单(禁止 rm -rf /、sudo 等危险命令)、敏感信息过滤(API Key、密码自动脱敏)、沙箱模式(限制文件系统访问范围)。
11.3 常见问题排查
Agent 不学习:检查 learning.enabled 配置是否启用,检查技能存储目录权限。
记忆搜索不准确:运行 hermes memory reindex 重建 FTS5 索引。
跨平台消息不同步:运行 hermes gateway status 检查连接状态,必要时重启 Gateway。
十二、总结与展望
Hermes Agent 的出现,标志着 AI Agent 从「工具」向「数字同事」的范式转变。
它不是一个最聪明的 Agent——在推理能力上,Claude Code 和 OpenCode 可能更胜一筹。它也不是一个最全面的 Agent——在多通道支持上,OpenClaw 覆盖了更多平台。
但它是唯一一个「会自我进化」的 Agent。
闭环学习系统让 Agent 能够从每次交互中积累经验,技能自动生成让重复工作逐步自动化,用户建模让 Agent 越来越懂你。这种「越用越好」的体验,是任何无状态 Agent 都无法提供的。
对于开发者来说,Hermes Agent 的价值在于:
- 如果你在构建 Agent 产品:它的闭环学习架构提供了「Agent 如何持续进化」的参考实现
- 如果你在做 Agent 研究:内置的 RL 训练环境和评估工具是目前最开箱即用的开源平台
- 如果你在寻找个人助手:110K Star 社区支持、MIT 许可证、Python 技术栈,让它成为最容易上手和定制的选择
展望未来,Hermes Agent 可能会在以下方向继续演进:多 Agent 协作(多个实例之间的技能共享和任务分工)、模型微调集成(基于收集的交互轨迹自动微调专用模型)、边缘部署优化(更轻量的运行时,支持在移动设备和 IoT 设备上运行)。
当 Agent 开始「思考」如何变得更好,AI 时代才真正到来。
项目地址:https://github.com/NousResearch/hermes-agent
许可证:MIT
技术栈:Python 3.11+ / TypeScript / SQLite / React / FastAPI
最新版本:v0.19.1(2026-07-30)