GEPA (Genetic-Pareto Prompt Evolution,遗传-帕累托提示进化)是 HERMES Agent 自进化能力的核心算法,来自 ICLR 2026 Oral 论文。它并非 HERMES 原创,但 HERMES 是首个将其大规模工程化应用于 Agent Skill 进化的开源框架。
一、背景:为什么不用 RL?
当前学术界的主流技能进化路线是 RL(强化学习) ,如 SkillRL、SAGE 等框架直接在梯度空间更新 Skill 参数。但 GEPA 走了一条完全相反的路------刻意放弃强化学习。
RL 的问题:
- 需要 GPU 训练,成本高
- 数值奖励信号粒度太粗(一个 0.6 的分数无法告诉你哪一步错了)
- 需要大量 rollout 才能收敛
GEPA 的洞见 :即使不做任何梯度更新 ,仅靠大模型的反思能力 + 进化算法,不仅能超过 RL,而且样本效率更高。
二、核心原理:三大支柱
GEPA 算法建立在三个核心机制之上:
1. Reflective Mutation(反思式变异)
不是随机变异。LLM 会读取历史执行轨迹(execution traces),反思为什么做对了/做错了,找出 Prompt 中哪些词需要修改。
例如:"这一步没有检查边界条件"、"应该先读配置再写入缓存"------这种自然语言反馈直接作为下一轮变异的指导信号。
2. Pareto Frontier Selection(帕累托前沿选择)
生成一批变异候选 Skill 后,不保留全局平均分最高的 。只要某个候选在任意一个评估样本上表现最好,就会被保留。
目的 :确保技能探索的多样性 和鲁棒性,防止所有 Skill 都收敛到同一个局部最优。
3. Natural Language Feedback as Mutation Signal(自然语言反馈驱动)
传统 RL 用数值奖励指导参数更新(0.6 分 vs 0.8 分),但 GEPA 用具体的自然语言反馈作为变异信号。
LLM 能理解"先检查边界条件"这种指令,并据此生成下一轮变体------这比解释一个浮点数有效得多。
三、完整工作流程
GEPA 在 HERMES 中的运行流程如下:
1. 读取现有 SKILL 文件
↓
2. 从历史会话采样(或合成)构建评估集
↓
3. GEPA 介入:分析执行轨迹 → 反思建议 → 生成候选变体
↓
4. 运行评估(候选 vs 基线对比)
↓
5. 帕累托算法选择优胜者
↓
6. 约束门控检查(测试通过、大小合规、语义保持)
↓
7. 生成 PR(Pull Request),等待人类审核合并
↓
8. 进化后的 Skill 生效
关键设计:
- 离线批量运行:不是实时嵌入对话路径,而是定期后台执行
- 零 GPU:所有操作通过 API 调用完成,变异、评估、选择都是文本操作
- 成本极低 :单次优化运行约 $2-10
- 人类在环:进化结果不直接覆盖原文件,必须经 PR Review 才能合并
四、如何使用
GEPA 在 HERMES 中通过独立子项目 hermes-agent-self-evolution 提供:
安装
bash
git clone https://github.com/NousResearch/hermes-agent-self-evolution.git
cd hermes-agent-self-evolution
pip install -e ".[dev]"
配置
bash
export HERMES_AGENT_REPO=~/.hermes/hermes-agent # 指向你的 HERMES 仓库
进化一个 Skill
bash
# 方式一:使用合成评估数据
python -m evolution.skills.evolve_skill \
--skill github-code-review \
--iterations 10 \
--eval-source synthetic
# 方式二:使用真实会话历史(Claude Code / Copilot / HERMES 的 sessiondb)
python -m evolution.skills.evolve_skill \
--skill github-code-review \
--iterations 10 \
--eval-source sessiondb
五阶段进化路线图
| 阶段 | 目标 | 引擎 | 状态 |
|---|---|---|---|
| Phase 1 | Skill 文件 (SKILL.md) | DSPy + GEPA | ✅ 已实现 |
| Phase 2 | 工具描述 (Tool descriptions) | DSPy + GEPA | 🔲 计划中 |
| Phase 3 | 系统提示片段 (System prompt sections) | DSPy + GEPA | 🔲 计划中 |
| Phase 4 | 工具实现代码 (Tool implementation code) | Darwinian Evolver | 🔲 计划中 |
| Phase 5 | 持续改进流水线 (Continuous improvement loop) | 自动化流水线 | 🔲 计划中 |
五、竞品对比
| 维度 | GEPA (HERMES) | RL-based Skill Evolution (SkillRL/SAGE) | DSPy MIPROv2 |
|---|---|---|---|
| 是否需要梯度/GPU | ❌ 不需要,纯 API 调用 | ✅ 需要 | ❌ 不需要 |
| 单次优化成本 | $2-10 | 数百至数千美元(GPU 训练) | 中等 |
| 反馈信号粒度 | 自然语言(具体、可解释) | 数值奖励(0.6/0.8,粗粒度) | 数值 + 少样本 |
| 样本效率 | 高(600-7000 rollout 即可) | 低(需数万 rollout) | 中等 |
| 可解释性 | 极高(每次变异都有文字说明) | 低(黑盒权重更新) | 中等 |
| 多模块联合优化 | ✅ 支持跨模块遗传交叉 | ❌ 通常单模块 | ✅ 支持 |
| 适用任务类型 | 单轮/少轮、有明确输入输出模式 | 复杂多步交互 | 单模块优化 |
| 人类可控性 | 极高(PR Review 强制介入) | 低(自动更新权重) | 中等 |
六、应用场景
1. HERMES Agent Skill 进化(主场景)
HERMES 运行时自动创建 Skill → GEPA 定期离线优化 → 生成 PR 等待审核。这是 HERMES "越用越聪明"的核心机制。
2. 通用 Prompt 优化(跨框架)
GEPA 已被适配到多个框架:
- Pydantic AI:优化 Agent Instructions、MCP Tool 描述、BaseModel 字段描述
- OpenAI Agents SDK:优化 system prompt
- MLflow:通过 Prompt Registry 统一管理 + GEPA 优化
3. 生产级评估器构建
Latitude AI 使用 GEPA 将生产环境中的标注失败模式自动转化为可靠的评估器(rule-based 或 LLM-as-judge)。
4. AI 代码安全监控
优化分类器以检测 AI 生成代码中的后门,基于怀疑分数进行可信监控。
七、关键限制
根据 GEPA 论文和工程实践:
- 依赖可诊断的失败模式:如果执行轨迹不揭示"为什么失败",反思机制无法生成针对性改进
- 不适合复杂多 Agent 协调:如果系统瓶颈是架构级协调而非 Prompt 质量,需要 Hierarchical Reflective 优化而非 GEPA
- 演示样本选择非其强项:若需优化 few-shot 示例,Bayesian 优化更合适
总结
GEPA 的本质是"用进化算法做 Prompt 工程":让 LLM 读取自己的失败轨迹,用自然语言反思原因,据此生成候选变体,再用帕累托选择保留多样性最优解。它不碰梯度、不耗 GPU,仅靠 API 调用和文本变异,就能在 $2-10 的成本下实现比 RL 更高的样本效率和可解释性。