

























如果 AI Agent 能够自己改进自己,会是什么样子?
这不是科幻小说,而是 Nous Research 正在实现的技术。他们刚刚开源了 Hermes Agent Self-Evolution 项目 —— 一个让 AI Agent 通过进化算法自动优化自身技能、工具描述、系统提示和代码的系统。
关键点:不需要 GPU 训练,成本仅 $2-10 每次优化,通过 API 调用实现,所有改进都需要人工审查。
今天深入拆解这个项目,看看 AI 自我进化的未来。
定义:一个独立的优化管道,通过自动化优化循环系统性地改进 Hermes Agent 的性能。
工作原理:读取 Agent 的技能文件、工具描述、系统提示和代码 → 生成评估数据集 → 使用进化算法生成变体 → 评估性能 → 选择最佳版本 → 创建 PR 供人工审查。
三大引擎:
| 引擎 | 优化目标 | 许可证 | 集成方式 |
|---|---|---|---|
| DSPy + GEPA | 技能、提示、指令、工具描述 | MIT | 原生 Python,主引擎 |
| Darwinian Evolver | 代码文件、算法、工具实现 | AGPL v3 | 外部 CLI |
| DSPy MIPROv2 | Few-shot 示例、指令文本 | MIT | 原生 Python,备用优化器 |
核心亮点:
⚡ 无需 GPU 训练:所有操作通过 API 调用完成,DSPy+GEPA 和 MIPROv2 优化的是提示、指令和示例的文本,不是模型权重。
理解"为什么"失败:GEPA 读取执行追踪来理解为什么失败(不仅仅是失败的事实),然后提出有针对性的改进。
低成本:每次优化运行成本约 $2-10,不是昂贵的 GPU 训练。
安全可控:所有变化通过 PR 人工审查,永不直接提交到主分支。
GEPA (Genetic-Pareto Prompt Evolution) 是集成到 DSPy 中的进化式提示优化算法,具有以下特点:
读取当前 skill/prompt/tool
↓
生成评估数据集
↓
GEPA 优化器 ←── 执行追踪
│ ▲
▼ │
候选变体 ────→ 评估
│
约束门控(测试、大小限制、基准测试)
↓
最佳变体 ────→ PR 到 hermes-agent
关键创新:GEPA 不只是看到"失败了",而是通过执行追踪理解为什么失败,然后提出有针对性的改进。
例如,如果 Agent 在某个任务上总是错误地选择了工具,GEPA 会分析执行追踪,发现混淆点,然后修改工具描述来减少这种混淆。
DSPy 为 Hermes Agent Self-Evolution 提供了:
Hermes Agent Self-Evolution 的实施分为 5 个阶段,每个阶段都建立在前一阶段的基础上。
目标:优化 Agent 技能文件,这些是 Agent 遵循的程序化指令。
方法:
1. 将技能文本包装为 DSPy 模块
2. 通过 batch_runner 在测试任务上评估
3. 使用 GEPA 进化优化
为什么有效:
- 技能是纯文本,易于变异
- 性能可直接测量(Agent 是否正确完成了任务)
- 改进效果明显且易于验证
示例:进化 github-code-review 技能,通过测试已知良好代码审查的数据集,产生更好的代码审查。
进度:✅ 已实现
目标:优化工具架构中的描述字段(Agent 在决定使用哪个工具时看到的内容)。
方法:
- GEPA 进化描述
- 评估 Agent 是否为给定任务选择了正确的工具
为什么有效:
- 工具选择是一个分类问题,非常适合 DSPy 优化
- 描述的微小改进可以显著提高选择准确性
示例:进化 search_files 的描述,使 Agent 更可靠地选择它而不是 terminal(grep)。
约束:
- 每个工具描述最多 500 字符(每次 API 调用都发送)
- 每个参数描述最多 200 字符
- 必须保持事实准确(不能声称工具做了它做不到的事)
- Schema 结构(参数名称、类型、必填字段)是冻结的 —— 只有文本进化
进度: 计划中
目标:优化系统提示的部分(人格、策略、格式说明)。
方法:
- 将 prompt_builder.py 部分参数化为 DSPy Signatures
- 使用 GEPA 优化
为什么有效:
- 系统提示质量直接决定 Agent 行为质量
- 小的提示改进可以产生大的行为变化
风险:
- ⚠️ 必须小心不要破坏提示缓存 —— 只能离线优化,部署为新版本
示例:进化"工具使用指南"部分,减少不必要的工具调用。
进度: 计划中
目标:优化工具实现代码、辅助函数。
方法:
- Darwinian Evolver(外部 CLI)
- 通过 pytest + batch_runner 测试
为什么有效:
- 某些工具实现有微妙的 bug 或低效
- 进化搜索可以找到这些问题
风险:
- ⚠️ 代码更改可能破坏东西 —— 需要强大的测试套件作为护栏
示例:进化 file_tools.py 补丁匹配以处理更多边缘情况。
进度: 计划中
目标:自动化管道,无人值守运行。
进度: 计划中
┌─────────────────────────────────────────────┐
│ 1. SELECT TARGET │
│ - 选择技能、提示部分或工具 │
│ - 加载当前版本作为基线 │
│ │
│ 2. BUILD EVALUATION DATASET │
│ - 从 session_db 挖掘真实使用示例 │
│ - 或使用手工制作的测试用例 │
│ - 分割:训练 / 验证 / 测试 │
│ │
│ 3. WRAP AS DSPy MODULE │
│ - 技能文本 → dspy.Signature │
│ - Agent 工作流 → dspy.ReAct │
│ - 工具选择 → dspy.Predict │
│ │
│ 4. RUN OPTIMIZER │
│ - 主要:dspy.GEPA(反射性进化) │
│ - 备用:dspy.MIPROv2(贝叶斯优化) │
│ - 代码:Darwinian Evolver(外部 CLI) │
│ │
│ 5. EVALUATE & COMPARE │
│ - 在保留测试上运行优化版本 │
│ - 比较:准确性、成本、延迟 │
│ - 统计显著性检验 │
│ │
│ 6. DEPLOY (with approval) │
│ - Git 提交改进版本 │
│ - A/B 测试(可选) │
│ - 通过 git revert 回滚机制 │
└─────────────────────────────────────────────┘
SessionDB(真实对话)
│
▼
评估数据集构建器
│
├──► DSPy 模块包装器(将技能/提示/工具包装为可优化模块)
│ │
│ ▼
│ GEPA 优化器 ←── 执行追踪(来自 batch_runner)
│ │ ▲
│ │ │
│ ▼ │
│ 候选变体 ────► batch_runner(并行评估)
│ │
│ ├──► 约束验证(测试、字符限制、缓存兼容性)
│ │
│ ▼
│ 最佳有效变体
│ │
▼ ▼
Git 分支 + PR(包含 diff、指标、前后对比)
│
▼
人工审查与合并
Hermes Agent Self-Evolution 支持四种评估数据来源:
使用强模型(如 Claude Opus)为技能生成测试用例:
(task_input, expected_behavior) 对expected_behavior 是一个评分标准,不是确切文本 —— 例如,"应该识别第 42 行的 SQL 注入"而不是"输出这个确切的字符串"GEPA 仅需 3 个示例即可工作,这足够开始。
(task, response) 对评分随着更多真实使用积累,这会逐渐改善。
手工编写的测试用例和预期输出,存储为 JSONL:
~/.hermes/evolution/datasets/<skill-name>/golden.jsonl
最高质量的信号,但需要人工努力 —— 保留给关键技能。
不是所有技能都有自然的自动评估 —— 这是奖励,不是要求。
对于大多数技能,没有明确的对/错 —— 质量是主观的。适应度函数使用 LLM 评分器根据评分标准评分:
评分标准是特定于技能的,并存储在评估数据集旁边。
每个进化变体必须通过:
✅ 完整测试套件:pytest tests/ -q 必须 100% 通过
✅ 大小限制:
- 技能 ≤ 15KB
- 工具描述 ≤ 500 字符
✅ 缓存兼容性:无对话中途更改
✅ 语义保持:不得偏离原始目的
✅ PR 审查:所有更改都经过人工审查,从不直接提交
hermes-agent-self-evolution/ # 独立仓库
├── PLAN.md # 本文件
├── README.md # 设置、使用、示例
├── pyproject.toml # 包配置 + 依赖(dspy, gepa)
│
├── evolution/ # 主包
│ ├── core/ # 共享基础设施
│ │ ├── __init__.py
│ │ ├── dataset_builder.py # 评估数据集生成
│ │ ├── fitness.py # 适应度函数
│ │ ├── constraints.py # 约束验证器
│ │ ├── benchmark_gate.py # 基准门控
│ │ └── pr_builder.py # 自动生成 PR
│ │
│ ├── skills/ # Phase 1: 技能进化
│ │ ├── evolve_skill.py # 主入口
│ │ └── skill_module.py # 将 SKILL.md 包装为 DSPy 模块
│ │
│ ├── tools/ # Phase 2: 工具描述进化
│ ├── prompts/ # Phase 3: 系统提示进化
│ ├── code/ # Phase 4: 代码进化(Darwinian Evolver)
│ └── monitor/ # Phase 5: 持续循环
│
├── datasets/ # 生成的评估数据集(gitignored,本地)
│ ├── skills/
│ └── tools/
│
└── tests/ # 测试套件
# 克隆并安装
git clone https://github.com/NousResearch/hermes-agent-self-evolution.git
cd hermes-agent-self-evolution
pip install -e ".[dev]"
# 指向 hermes-agent 仓库(从 ~/.hermes/hermes-agent 或环境变量自动检测)
export HERMES_AGENT_REPO=~/.hermes/hermes-agent
# 使用会话历史的自动生成评估数据
python -m evolution.skills.evolve_skill \
--skill github-code-review \
--iterations 10 \
--eval-source sessiondb
# 或使用合成评估数据
python -m evolution.skills.evolve_skill \
--skill github-code-review \
--iterations 10 \
--eval-source synthetic
python -m evolution.tools.evolve_tool_descriptions \
--iterations 5 \
--benchmark-gate tblite-fast
python -m evolution.prompts.evolve_prompt_section \
--section MEMORY_GUIDANCE \
--iterations 5
python -m evolution.code.evolve_tool_code \
--tool file_tools \
--bug-issue 742 \
--iterations 10
所有命令都输出针对 hermes-agent 的 PR 分支 + 摘要。人工合并。
Hermes Agent Self-Evolution 存在于自己的仓库中,独立于 hermes-agent。它:
hermes-agent 代码库无需任何更改。
所有变化都通过 PR 人工审查:
阶段是顺序的 —— 每个阶段都建立在前一个阶段的基础设施上,并且必须在进入下一个阶段之前证明自己。
流程:
Phase 1 ──► 验证门控 ──► Phase 2 ──► 验证门控 ──► Phase 3 ──► ...
构建 是否真的 构建 是否有效 构建
& 测试 有改进? & 测试 且没有破坏 & 测试
如果某个阶段没有产生有意义的改进(进化变体不比基线好),我们停止并重新评估再进入下一个阶段。
1. 持续改进:Agent 可以在人工监督下不断自我改进
2. 低门槛优化:无需大规模 GPU 训练,任何团队都可以使用
3. 数据驱动:基于真实使用数据和评估指标优化,而非猜测
4. 可追溯性:完整的 Git 历史记录所有改进,可以回滚
1. 人工审查:所有改进都需要人工批准,防止不受控制的自我修改
2. 测试护栏:完整的测试套件确保改进不会破坏现有功能
3. 语义保持:约束确保进化不会偏离原始目的
4. 透明性:PR 中的 diff 清晰显示所有更改
1. 理论到实践:将 ICLR 2026 Oral 论文 GEPA 应用于真实系统
2. 新范式:探索 AI Agent 自我进化的新范式
3. 可复现:开源实现,社区可以复现和扩展
1. 依赖评估数据质量:进化效果取决于评估数据集的质量和代表性
2. 计算成本:虽然比 GPU 训练便宜,但多次迭代仍需 API 调用成本
3. 需要人工审查:每个改进都需要人工审查,可能成为瓶颈
4. 适用范围:主要适用于基于文本的优化,不适用于所有类型的改进
5. 局部最优:进化算法可能陷入局部最优,需要多次运行或随机重启
如果你想为 Hermes Agent Self-Evolution 做出贡献:
Hermes Agent Self-Evolution 代表了 AI Agent 自我进化的一个重要里程碑。通过结合 DSPy 和 GEPA,它实现了一个既安全又有效的自我改进系统。
核心优势:
- 数据驱动:基于真实使用数据和评估指标
- 安全可控:所有改进需要人工审查
- 低成本:无需 GPU,仅 $2-10 每次优化
- 持续改进:自动化循环,无人值守运行
- 可追溯:完整的 Git 历史记录所有改进
未来展望:随着更多阶段的完成和社区的参与,我们有理由相信 AI Agent 的自我进化将成为一个标准能力,推动整个行业的发展。
作者: TheAIEra
来源: 公众号:AI 人工智能时代
本文首发于 AI 人工智能时代,转载请注明出处。
关注公众号,获取更多 AI 技术干货!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。