持续优化约 12 分钟
agent_evolving 自进化
拿轨迹和评估结果去改进智能体:离线调参、在线沉淀技能经验、强化学习三条链路,每条都有验证或审批关口。
依据 agent-core 0.1.20 · develop@fbe6a0d9(2026-11-13)核实
自进化是什么
上一关把每次运行归档成了 Trajectory。自进化就是拿这些轨迹和评估结果回头改进智能体:改提示词、改工具描述、沉淀技能经验,甚至训练模型。
openjiuwen/agent_evolving 里有三条主链路,数据模型、生命周期和持久化各不相同,只是都叫"演进"。
链路一:离线调参
用例集 → Trainer 预测、评估 → 轨迹 → Updater → 优化器生成候选 → 验证 → 保存检查点
Trainer编排整个循环:在用例集上跑智能体、用评估器打分、把轨迹交给更新器、验证候选、保存检查点。- 可优化的对象由智能体自己通过
get_operators()交出来,Trainer 不去猜内部结构。 - 多个候选从同一份快照出发各自验证,最后只恢复最好的那个。
对贯穿案例来说:准备一批历史询单和正确的交期作为用例,评估器检查答复里的日期和数量,优化器尝试改写系统提示词或工具描述,只有在验证集上更好的版本才留下。
链路二:在线沉淀技能经验
轨迹 / 人工评审 / 评估结果 → 演进信号 → 更新器、优化器 → 本地预览 → 审批 → EvolutionStore
- 信号(
EvolutionSignal)只说明"为什么要改、改哪里",优化器只生成候选。 - 生成的经验要经过审批才提交,审批和持久化由独立的模块负责。
- 负责评审的智能体只拿到受限的工具:能读限定的证据、提交结构化评审,拿不到主智能体的写入工具。
链路三:强化学习
agent_rl 下分离线和在线两部分:离线负责任务、rollout 和训练协调;在线负责通过 Rail 采集数据、评判、调度训练。依赖很重(训练框架、分布式计算等),所以按需延迟导入,普通使用 agent_evolving 不需要装完整的训练环境。
企业落地要注意什么
- 先有评估,再谈优化。 没有可信的评估器,优化器只会朝错误的方向用力。评估器把执行结果转换成分数,基类是
BaseEvaluator。 - 改动要可审、可回退。 离线链路有检查点,在线链路有审批,这两个关口不要绕过。
- 轨迹里可能有敏感数据。 上一关的脱敏配置会影响这里能拿到什么,提前规划好。
小结
- 自进化以轨迹和评估为输入,三条链路分别对应离线调参、在线经验、强化学习。
- 候选更新一律先验证或审批,再生效。
- 评估器是一切优化的前提,先把"什么算对"定义清楚。
源码出处
- agent-core/openjiuwen/agent_evolving/AGENTS.md模块地图与三条主链路
- agent-core/openjiuwen/agent_evolving/trainer/trainer.py:34
class Trainer评估 → 更新 → 验证的训练循环 - agent-core/openjiuwen/agent_evolving/evaluator/evaluator.py:29
class BaseEvaluator评估器基类 - agent-core/openjiuwen/agent_evolving/updater/protocol.py:18
class Updater把轨迹和信号路由到优化器 - agent-core/openjiuwen/agent_evolving/signal/base.py:28
class EvolutionSignal演进信号 - agent-core/openjiuwen/agent_evolving/__init__.py公开入口
链接指向固定提交,仓库后续更新不影响这里的行号。
过关测验
1. 经典参数优化里,多个候选更新是怎么验证的?
2. 在线技能经验演进里,优化器生成的经验什么时候真正生效?
3. Trainer 怎么知道智能体里哪些东西可以优化?