ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Raven Evolver如何让Agent自我进化:诊断、补丁、三道门禁与密封测试集完整闭环

Raven Evolver如何让Agent自我进化:诊断、补丁、三道门禁与密封测试集完整闭环 Raven Evolver如何让Agent自我进化诊断、补丁、三道门禁与密封测试集完整闭环【免费下载链接】RavenThe Harness of Harnesses: a trusted, persistent, self-evolving multi-agent ecosystem for all-domain collaboration.项目地址: https://gitcode.com/gh_mirrors/raven35/RavenRaven Evolver 是 Raven 多 Agent 生态里的自我进化引擎它自动诊断 Agent 跑基准测试时失败的轨迹、设计候选补丁、用三道门禁严格验证最后靠一套密封测试集给出诚实的泛化数字构成一条诊断 → 补丁 → 门禁 → 密封验证的完整闭环。这篇指南带你读懂它的工作方式——不改模型、不注入技能只优化包裹在模型外面那层外壳harness。一、先搞清楚Evolver 到底在进化什么很多人以为让 Agent 变强的办法是换更强的模型或塞更多技能。Raven Evolver 反其道而行它进化的是harness外壳——系统提示、工具、钩子、记忆这些包裹在模型外面的结构。一句话让 Agent 的外壳对着一套基准测试循环自我改进而不是动模型本身。这套方法的完整定义写在 self-evolution-loop-sop.mdSOP 方法论代码落地则逐条映射在 self-evolution-loop-raven-mapping.md。它的核心分工是角色干什么由谁负责判断类工作诊断、设计补丁、做决策会推理的模型driver算术类工作锚点选取、噪声带、门禁判定、汇总确定性代码判断交给模型、算账交给代码——这是 Evolver 能可复现、可审计的根基也写在 DESIGN.md 里。二、冷启动如何建立基线并画出失败地图 进化之前必须先有一个不会变的参照系。冷启动做两件事跑基线让没改过的原版外壳vanilla在训练集上跑 K3 遍得到一份完整基线记录它就是整个进化的固定比较标尺。画失败地图逐条读失败的轨迹把失败原因分类——空回复没提交、提交前没校验、工具调用出错、时间算错……汇总成failure_map.json。这张地图会在后续每一轮持续累积让失败分布的漂移可被审计。关键约束冷启动只用训练集测试集被密封绝不进入诊断。三、七步闭环每一轮都在淘汰里前进 一轮进化 诊断 → 设计 N 个候选 → 各自从锚点分叉 → 选出新的父版本。整个漏斗由 loop.py 里的有限状态机驱动模型只在每一步回答一个范围受限的小问题① 诊断— 读上一轮子版本的失败轨迹更新失败地图nodes/diagnose.py。② 选目标 设计补丁— 从失败地图挑 1–2 个WHY失败原因类跨杠杆提示/配置/运行时逻辑各设计 2–3 个候选补丁nodes/design.py。硬约束每个补丁都用环境变量开关、默认关闭关闭时与基线逐字节一致绝不污染基线。③ 零成本预剪枝— 在没花任何评测成本前砍掉根本不可能生效的候选触发条件在历史轨迹里从没命中过 部署后也永不触发。④ 应用补丁、建子节点— 把补丁打到父版本上生成子版本git 分支 提交登记进节点账本tree/store.py。⑤a 便宜筛查— 在锚点子集约 15 个任务上跑 K1快速探底。判定原则是宽放行只有明显差于基线才淘汰略低或在噪声带内的一律放行nodes/screen.py。⑤b 全量确认— 筛查幸存者在全量训练集上跑 K3认真评测。⑥ 三道门禁— 下一节的主角。⑦ 选父 终止判断— 本轮通过门禁的最优候选入库并成为下一轮父版本若没人胜过基线则保留旧父再判断是否终止。终止条件什么信号说明探索枯竭连续10 轮没有任何候选在训练集上超过固定基线 vanilla探索枯竭信号达到20 轮硬上限兜底。铁律绝不能用测试集来决定是否停止termination.py。四、三道门禁凭什么说改进真的有效️这是 Evolver 最硬核的部分目标是证明提升是真实的不是假象。三道门禁顺序执行、层层收窄实现在 gates/pipeline.py门禁校验什么核心规则Gate-f测量有效性基础设施失败崩溃/超时不当 0 分甩掉而是检测 → 重跑≤2 次 → 仍失败记 0 但留在分母里Gate-b归因正确性补丁只在它机制真正触发过的任务上才算数——没碰过的任务不能记功Gate2统计显著性与基线做逐任务配对比较提升须越过 2σ 才算数三个最容易翻车的点Evolver 都用机制堵死了固定分母pass1 的分母永远是任务总数绝不把基础设施失败的任务踢出分母踢掉 缩小分母 高估 pass1。归因靠信标Python 补丁必须带activation_beacon()调用只有信标真触发过才算数applier/beacon_guard.py提示/配置类补丁豁免由聚焦探针 哨兵任务覆盖。配对 2σ配对比较先消掉任务难度差异剩下差异主要来自边界任务比不配对更严gates/paired.py。五、密封测试集把铁律变成机制 SOP 的铁律是测试集在开印之前绝不参与任何进化决策。过去这靠自律保证而 Evolver 靠构造保证——测试集被盲打分数后存进一个决策路径根本读不到的目录score()干脆返回空没有任何一条路径能把测试数字送进门禁或裁决。这正是 sealed/runner.py 的设计靠机制密封决策时看不见才算密封忍住不看不算。进化结束后才unseal开印并计算泛化保持率 retention 测试提升 / 训练提升。开印后按训练集 argmax选交付版本而不是测试集最高分——从一堆带噪声的测试测量里挑最大 选择偏差会系统性虚高收益。六、控制反转为什么换弱模型也能跑Evolver 的设计初衷是把过去靠一个长会话的强模型死记流程的东西搬进确定性代码状态机循环推进、何时停、不许提前退出——全由代码保证。模型每步只回答一个小问题且带schema 校验 有限次修复重试。所以驱动进化的模型可以换成 Qwen / Kimi 这类更弱的模型持续跑不崩由代码兜底语义节点统一走 nodes/semantic.py多模型接入在 providers/openai_compat.py。七、跑起来快速上手四条命令 你会拿到什么 所有命令都在仓库根目录运行入口见 cli.py。配置可参考 evolve_appworld.yaml 与 subject_runtime.json# 1. 廉价体检校验配置 / 模型 / 基准不跑任何 trial uv run python -m evolver check --config my_run.yaml # 2. 冒烟联调独立 *_smoke 目录分钟级 uv run python -m evolver run --config my_run.yaml --smoke # 3. 真正的运行冷启动 - 多轮进化 - 开印 保持率可随时中断续跑 uv run python -m evolver run --config my_run.yaml随时可中断重跑同一命令会从最后的持久化产物续跑完成的 trial 绝不重跑完成的轮次从日志重放state/journal.py。跑完你会得到retention.json— 密封测试裁决最佳轮次、训练/测试曲线、保持率、配对显著性nodes/*.json— 每个候选的账本git 提交、最终状态、门禁统计findings.md— 人类可读的逐轮记录被提升的外壳作为目标仓库里一个真实的 git 提交。八、安全边界补丁只能改外壳因为 Evolver 让 LLM编辑并运行代码边界必须清楚路径白名单候选补丁只能落在每个基准自己的白名单路径内其余改动一律还原applier/path_guard.py。不可变内核评分器、进化器自身、基础设施失败记录这些测量面被从白名单里抠出来——候选可以改写 Agent但绝不能改给它打分或记录失败的代码。威胁模型这些护栏挡的是LLM 抄近道不是蓄意攻击者。候选代码以与评分器相同权限运行请在隔离环境容器/VM、受控凭据里跑进化别在装有真实密钥的工作站上跑。交付前审计被提升的候选只是少数几个小提交引用数字前请先 diff 审计每个提交都记在nodes/*.json。一句话总结Evolver 用判断交给模型、算账交给代码、密封靠机制、门禁靠算术把一条过去高度依赖顶级模型纪律的自我进化流程固化成弱模型也能驱动、且结果可信的完整闭环。【免费下载链接】RavenThe Harness of Harnesses: a trusted, persistent, self-evolving multi-agent ecosystem for all-domain collaboration.项目地址: https://gitcode.com/gh_mirrors/raven35/Raven创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表