持续优化约 12 分钟

agent_evolving 自进化

拿轨迹和评估结果去改进智能体:离线调参、在线沉淀技能经验、强化学习三条链路,每条都有验证或审批关口。

依据 agent-core 0.1.20 · develop@fbe6a0d9(2026-11-13)核实

自进化是什么

上一关把每次运行归档成了 Trajectory。自进化就是拿这些轨迹和评估结果回头改进智能体:改提示词、改工具描述、沉淀技能经验,甚至训练模型。

openjiuwen/agent_evolving 里有三条主链路,数据模型、生命周期和持久化各不相同,只是都叫"演进"。

源码三条主链路agent-core/openjiuwen/agent_evolving/AGENTS.md@fbe6a0d9

链路一:离线调参

用例集 → Trainer 预测、评估 → 轨迹 → Updater → 优化器生成候选 → 验证 → 保存检查点
  • Trainer 编排整个循环:在用例集上跑智能体、用评估器打分、把轨迹交给更新器、验证候选、保存检查点。
  • 可优化的对象由智能体自己通过 get_operators() 交出来,Trainer 不去猜内部结构。
  • 多个候选从同一份快照出发各自验证,最后只恢复最好的那个。
源码Traineragent-core/openjiuwen/agent_evolving/trainer/trainer.py:34@fbe6a0d9

对贯穿案例来说:准备一批历史询单和正确的交期作为用例,评估器检查答复里的日期和数量,优化器尝试改写系统提示词或工具描述,只有在验证集上更好的版本才留下。

链路二:在线沉淀技能经验

轨迹 / 人工评审 / 评估结果 → 演进信号 → 更新器、优化器 → 本地预览 → 审批 → EvolutionStore
  • 信号(EvolutionSignal)只说明"为什么要改、改哪里",优化器只生成候选。
  • 生成的经验要经过审批才提交,审批和持久化由独立的模块负责。
  • 负责评审的智能体只拿到受限的工具:能读限定的证据、提交结构化评审,拿不到主智能体的写入工具。
源码EvolutionSignalagent-core/openjiuwen/agent_evolving/signal/base.py:28@fbe6a0d9

链路三:强化学习

agent_rl 下分离线和在线两部分:离线负责任务、rollout 和训练协调;在线负责通过 Rail 采集数据、评判、调度训练。依赖很重(训练框架、分布式计算等),所以按需延迟导入,普通使用 agent_evolving 不需要装完整的训练环境。

企业落地要注意什么

  • 先有评估,再谈优化。 没有可信的评估器,优化器只会朝错误的方向用力。评估器把执行结果转换成分数,基类是 BaseEvaluator。
  • 改动要可审、可回退。 离线链路有检查点,在线链路有审批,这两个关口不要绕过。
  • 轨迹里可能有敏感数据。 上一关的脱敏配置会影响这里能拿到什么,提前规划好。

小结

  • 自进化以轨迹和评估为输入,三条链路分别对应离线调参、在线经验、强化学习。
  • 候选更新一律先验证或审批,再生效。
  • 评估器是一切优化的前提,先把"什么算对"定义清楚。

源码出处

链接指向固定提交,仓库后续更新不影响这里的行号。

过关测验

  1. 1. 经典参数优化里,多个候选更新是怎么验证的?

  2. 2. 在线技能经验演进里,优化器生成的经验什么时候真正生效?

  3. 3. Trainer 怎么知道智能体里哪些东西可以优化?

通关条件

  • ○ 测验全部答对