【AI】Hermes的GEPA算法

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 更高的样本效率和可解释性。

相关推荐
柠檬味的Cat3 分钟前
GEO优化系统是什么?具体做什么,有什么用?
大数据·人工智能·aigc
用户276247978504 分钟前
上下文压缩,无脑调 LLM 总结是下策:我给 Agent 框架设计的三级压缩流水线
人工智能
2601_949499945 分钟前
芯瑞科技800G硅光模块:为工业智能时代打造高速可靠的光互联底座
人工智能·科技·机器人
小博测试成长之路6 分钟前
行业日报 | 2026年6月12日:Claude新模型、鸿蒙开发者大会与AI工程化加速
人工智能·harmonyos
凡人叶枫7 分钟前
Effective C++ 条款24:若所有参数皆须要类型转换,请为此采用 non-member 函数
linux·前端·c++·算法·嵌入式开发
snpgroupcn9 分钟前
云转型过程中, 如何有效推进Rise with SAP项目实施
大数据·人工智能·云转型
洛水水9 分钟前
【力扣100题】87.只出现一次的数字
数据结构·算法·leetcode
小糖学代码9 分钟前
机器学习:9.贝叶斯分类器
人工智能·机器学习
HZ·湘怡9 分钟前
排序算法之希尔排序(2)--菜鸟先飞
数据结构·算法·排序算法·希尔排序
乐观勇敢坚强的老彭11 分钟前
2026全国青少年信息素养大赛(Python小学组)复赛复习讲义
python·算法·数学建模