← 返回 2026-10-27

演化以匹配能力:通过技能适配改进 Harness 自我进化 Evolving to Match Capabilities: Improving Harness Self-Evolution via Skill Adaptation

Zhihao Yang, Haojin Wang, Juncheng Wu, Kuan Zhang, Yukun Chen, Run Luo, Yaojie Lu, Yuyin Zhou, Lu Wang, Xianpei Han 📅 2026-10-10 👍 21 2026-11-11 18:30
Agent Skills Harness自我进化 LLM智能体 技能适配

同一技能让强模型涨31.1分、最弱模型跌8.8分,元技能改写让弱模型从失败证据中稳定自进化

前置知识

Harness(智能体执行框架)

LLM 智能体 = 模型 + harness。harness 是包裹模型的外部执行框架,包括工具调用、提示组织、上下文管理、技能加载、记忆等组件,让模型能实际操作文件、代码与环境。harness 自我进化指用执行轨迹和反馈自动构建并精炼这些组件,而模型参数全程冻结。这是一条与微调权重正交的能力改进路线。

本文的研究对象就是 harness 中最核心的组件之一——技能文本,全部实验都围绕「harness 收益如何随执行者能力变化」这一问题域展开,必须先理解 harness 与模型参数之间的边界。

Agent Skill / SKILL.md

技能是可组合的指令、代码与资源包,按需加载,能在不改变模型参数的情况下扩展模型能力,已成为与工具、记忆并列的 harness 标准层。典型形态是 SKILL.md 文件:由人类专家编写或从强模型轨迹蒸馏,经公共注册表分发,惯例是「一次写成、跨模型原样发布」,公共注册表上已有数以万计的技能。

论文的改写对象就是 SKILL.md。理解技能「一次写成、全模型通用」的分发惯例,才能理解「强到弱技能失配」为何是一个普遍而未被检查的问题。

能力分层与技能敏感对

把模型按无技能时的任务得分分为 frontier / moderate / weak 三层;对每个任务–技能对计算层增益 $\Delta_G$(层内模型从无技能到有技能的平均分差)。若 $\Delta_G \ge \tau$ 且比弱层高出至少 $\tau$(论文取 $\tau=0.10$),或 frontier 已饱和(无技能均分 ≥0.95)而 moderate 受益,则该对为技能敏感对。

这是论文筛选 103 个测试任务、组织所有实验对比的基本单位,不掌握这套定义就读不懂主结果图和表格中分数的含义。

执行轨迹与验证器

轨迹是智能体一次任务执行的完整记录(工具调用、中间输出、最终交付物);验证器是给任务打分的程序或 LLM 判分器。失败归因依靠「轨迹 + 验证器输出」取证;自进化循环中第 $t$ 轮改写的输入正是第 $t-1$ 轮的轨迹与验证器反馈,这是「有证据改写」与「无证据改写」的分界线。

四类失败模式的标注、元技能的改写规则、自进化循环的信息来源全部建立在这两个概念上;论文的关键结论(验证类失败必须依赖执行证据)直接取决于改写器能看到什么。

研究动机

Harness 自我进化让智能体不更新参数、仅凭执行轨迹和反馈改进外部框架,主流做法是从轨迹蒸馏可复用技能。但作者在三个独立构建的基准(SkillsBench 87 题、DocOps 186 题、Tessl 334 题,共 607 个可靠执行任务)× 7 个模型上系统评测发现:技能收益并不同质。按无技能表现把模型分为 frontier(GPT-5.6-luna、Claude-Opus-5)、moderate(GPT-5.4-mini、Claude-Sonnet-4.6)、weak(Qwen3.6-flash、Qwen3.5-9B、Gemma-4-E4B)三层,用 $\tau=0.10$ 的层增益判据筛出 103 个技能敏感任务–技能对:在这些对上 GPT-5.6-luna 提升 31.1 分、Opus-5 提升 27.3 分,而 Qwen3.5-9B 仅 +2.0 分,最弱的 Gemma-4-E4B 反而从 0.117 跌到 0.029(−8.8 分)。更关键的诊断是:这不是信息缺失——86% 的弱模型带技能仍然失败的运行,违反的要求早已写在技能文本里。技能「写得对」不等于弱模型「用得动」,这正是「提取经验→忠实转译」范式漏掉的一环。

本文的目标是本文的目标是让 harness 自我进化不仅捕获有用经验,还把经验的形式适配到执行者的能力上,即技能适配:在不改模型参数、不训练的前提下,把已有技能改写成弱执行者能够可靠执行的版本。具体分三步:第一,在 103 个技能敏感对上归因弱模型失败,归纳出工具执行、上下文管理、指令遵循、验证四类可复现的失败模式(共 131 个标签);第二,把这些诊断固化为一个固定的、与任务无关的元技能——一份把每类失败模式翻译成具体改写规则的协议;第三,验证元技能在两种现实场景中都有效:无执行证据时由强模型(Kimi-K3 等)一次性改写,以及嵌入五轮自我进化循环,让 7 个执行者(从 Gemma-4-E4B 到 Kimi-K2.5)依据自己的轨迹与验证器反馈改写自己的技能,并沉淀出可操作的设计指南。

与已有工作不同的是,已有技能工程研究的关注点是「如何高效提取经验、忠实转译成程序化指导」,隐含假设是技能一次写成、跨模型通用;早期证据提示这很脆弱,但固定技能的收益如何随模型能力变化此前未被系统检查。本文的独特切入有三:一是问题刻画新,首次用 3 基准 × 7 模型 × 103 对的量化证据揭示强到弱的技能失配现象;二是方法形态新,不学习一个改写器,而是把失败诊断压缩成固定的元技能协议,使改写在完全没有执行证据时也能生效,且与技能检索、压缩、安全等方向正交;三是设定覆盖新,同一协议同时检验「强改写弱」(对应 Meta-Harness 式外部强优化器)与「弱改自己」(对应 Self-Harness 式自查轨迹有界编辑)两类 harness 演化设计,并证明失败证据是弱 rewriter 能用元技能而不漂移的前提。

核心方法

直觉上,弱模型拿不到技能收益,大多不是技能缺信息,而是信息的组织方式超出了它的执行能力:调用工具列表里不存在的函数、把技能附带的参考文件当成任务本身、要求只完成一半、结果错了没人复核。因此与其训练模型,不如改写技能文本。技术路线分三步。第一步,测试床构建:607 题上每模型跑 w/o 与 w/ skill 两条件并归一到 [0,1],技能增益定义为 $\Delta_m(T_i)=s_m(T_i,S_i)-s_m(T_i,\emptyset)$,按 $\Delta_G \ge \tau$ 且 $\Delta_G-\Delta_W \ge \tau$($\tau=0.10$)选出 103 个技能敏感对。第二步,失败归因:逐条阅读弱模型带技能失败的轨迹,标注「首次可观察失败」,得到工具执行(51)、指令遵循(35)、上下文管理(28)、验证(17)共 131 个标签。第三步,元技能蒸馏:与 Claude-Opus-5 协作,把四类模式编译成改写协议——工具区分与环境检查、任务范围与交付路径先行、每条要求带动作+对象+完成条件、结尾强制独立校验循环;该协议既支持无证据的一次性改写,也支持有轨迹证据的五轮自进化。

核心洞见:harness 的收益不是 harness 自身的属性,而是 harness 与执行者能力的匹配属性——同一份 SKILL.md 对 Opus-5 是 +27.3 分的助力,对 Gemma-4-E4B 却是 −8.8 分的毒药。与已有方法的本质区别在于:既往技能进化把「捕获有用经验」当终点,本文论证必须再加一道「形式适配」工序;承载这道工序的元技能,本质是把「86% 失败违反已写明要求」这一诊断翻译成可执行的改写规则:针对工具执行,技能必须区分可调用工具与文档、内置环境检查与错误恢复路径;针对上下文管理,开头必须声明任务、允许的修改范围与交付路径,把示例与当前任务显式分离;针对指令遵循,每条要求必须含动作、对象与完成条件;针对验证,结尾必须有「重读结果→换方法重算→对照显式阈值→循环直到通过」的独立校验。相比 Meta-Harness 的外部强优化器与 Self-Harness 的自查编辑,元技能是固定的、任务无关的协议,一份协议同时服务两种设定,无需训练即可移植。

方法步骤详情

第一步(测试床):在 SkillsBench、DocOps、Tessl 共 607 个可靠执行的任务上,7 个模型分别以 w/o skill 与 w/ skill 两条件各跑一次,用各基准原生 judge 判分并归一到 [0,1];按层增益规则选出 103 个技能敏感对,弃掉弱层带技能已 ≥0.80 的对。第二步(失败标注):对每对的三个弱模型轨迹标注首次可观察失败,仅凭轨迹与验证器输出取证,共得 131 个标签。第三步(元技能):作者与 Claude-Opus-5 协作撰写,把四类失败模式转成改写规则,并规定有轨迹时先修复首次失败再处理后续步骤。第四步(一次性适配):GPT-5.6-sol、GPT-5.6-luna、GLM-5.3、Kimi-K3 四个 rewriter 各改一遍 103 个技能,输入只有任务、原技能与执行者工具列表;泄漏答案或加载失败的改写被丢弃并回退原技能;三个弱执行者各运行每份改写一次。第五步(自进化循环):rewriter=executor,第 $t$ 轮输入任务、第 $t-1$ 轮技能、工具列表以及第 $t-1$ 轮轨迹与验证器输出,产出修订技能后再执行,重复 5 轮,与同窗口「原技能重跑」基线对比;除 3 个弱执行者外还扩展到 Qwen3.5-27B、Gemma-4-26B、Qwen3.5-plus、Kimi-K2.5 共 7 个执行者。

技术新颖性

新颖性有三层。问题层:首次量化「技能收益随基础能力分层而系统性变化」,103 对上 frontier 平均 +27 分、weak 仅 +1.2 分、最弱者 −8.8 分,把「强到弱技能失配」从轶事变成可测现象。方法层:元技能是一种「诊断→改写规则」的固定编译层,把一次性的失败分析成果复用为与任务无关的协议——不同于学习式改写器或搜索式 harness 进化,它不训练、不检索、即插即用,且同一协议同时覆盖无证据(外部强模型改写)与有证据(弱模型自我改写)两种信息条件,统一了 Meta-Harness 与 Self-Harness 两条线。实证层:作者用一句话通用指令做对照,分离出「rewriter 本身强」与「知道该改什么」两种效应——仅一句话指令时 Kimi-K3 只提升 2/3 执行者(Qwen3.5-9B 得 0.314 反而略低于原技能 0.323),元技能在相同 rewriter 上再加 +5.1~6.0 分,证明增益主要来自失败模式知识而非 rewriter 的通用能力;同时发现失败证据是弱自我改写不漂移的前提(无证据时平均 0.271 < 原技能 0.294)。

Overview of our approach. Left: the meta-skill is constructed by attributing weak-model failures across tasks from three benchmarks to four failure modes. Right: the meta-skill guides a self-evolving loop of skill execution and rewriting, either in one shot by a strong model or iteratively by a weak model from its own execution evidence.
Figure 4: Overview of our approach. Left: the meta-skill is constructed by attributing weak-model failures across tasks from three benchmarks to four failure modes. Right: the meta-skill guides a self-evolving loop of skill execution and rewriting, either in one shot by a strong model or iteratively by a weak model from its own execution evidence.

实验结果

诊断实验(Fig 3b):103 个技能敏感对上,GPT-5.6-luna 0.578→0.889(+31.1)、Opus-5 +27.3、Sonnet-4.6 +24.3、GPT-5.4-mini +23.8,而 Qwen3.6-flash 仅 +10.5、Qwen3.5-9B +2.0、Gemma-4-E4B −8.8;131 个标签中工具执行最多、验证最少,86% 失败违反已写明要求。一次性适配(Table 1):Kimi-K3 + 元技能把三弱执行者平均从 0.294 提到 0.387:Gemma-4-E4B 0.029→0.170(+14.1)、Qwen3.6-flash 0.529→0.616、Qwen3.5-9B 0.323→0.374(+5.1);GLM-5.3 平均 0.379;弱模型自我改写反而降到 0.271。消融(Fig 5):一句话指令下 Kimi-K3 得 0.565/0.115/0.314,元技能再加 +5.1~6.0 分,占平均收益一半以上。自进化(Fig 6/8):5 轮后 7 个执行者全部高于无元技能臂,第 5 轮差距为 Gemma-4-E4B +5.0、Qwen3.5-27B +4.6、Kimi-K2.5 +3.5、Qwen3.6-flash +3.0、Qwen3.5-plus +2.5、Gemma-4-26B +2.0 分;无元技能时 Gemma 每轮低于基线、Qwen3.5-9B 第 3 轮见顶回落。按失败模式(Table 2):一次性适配在 Execution/Instruction/Context 平均 +0.056/+0.055/+0.103,Verification 仅 +0.003;自进化把 Verification 提到 +0.104(高出 0.101),说明验证类失败必须依赖执行证据。案例(Fig 7):Qwen3.6-flash 无元技能时五轮全错,有元技能时 4/5 轮通过,唯一失败是改了脚本却没重跑——技能文本管不住执行者本身。

Skill adaptation with the meta-skill (mean scores over 103 pairs). Original: unrevised skills; Weak (self): each executor rewrites its own skill.
Table 1: Skill adaptation with the meta-skill (mean scores over 103 pairs). Original: unrevised skills; Weak (self): each executor rewrites its own skill.
Score gains from the meta-skill over rewriting without it, averaged over pairs with each failure label. Skill adaptation uses Kimi-K3 rewrites; Self-evolution uses round-5 skills. n counts pairs, and labels can overlap. Shading indicates the size of the gain.
Table 2: Score gains from the meta-skill over rewriting without it, averaged over pairs with each failure label. Skill adaptation uses Kimi-K3 rewrites; Self-evolution uses round-5 skills. n counts pairs, and labels can overlap. Shading indicates the size of the gain.
Per-round absolute scores of all seven executors in self-evolution (Appendix D)
Table 4: Per-round absolute scores of all seven executors in self-evolution (Appendix D)
Skill adaptation in self-evolution. Over five rounds, weak executors improve steadily with skill adaptation but barely move without it. Horizontal lines: tier averages.
Figure 2: Skill adaptation in self-evolution. Over five rounds, weak executors improve steadily with skill adaptation but barely move without it. Horizontal lines: tier averages.
Skill adaptation by Kimi-K3 with the meta-skill or a one-sentence instruction; each weak executor runs the revised skill once on all 103 pairs.
Figure 5: Skill adaptation by Kimi-K3 with the meta-skill or a one-sentence instruction; each weak executor runs the revised skill once on all 103 pairs.
Self-evolution with and without the meta-skill. Each executor rewrites its own skill from the previous round's trajectory and verifier output over five rounds, and runs every round once on all 103 pairs. Curves show the gain over the baseline that reruns the original skill; annotations mark the gap between the two arms at round 5. Results for the remaining four executors are in Fig. 8.
Figure 6: Self-evolution with and without the meta-skill. Each executor rewrites its own skill from the previous round's trajectory and verifier output over five rounds, and runs every round once on all 103 pairs. Curves show the gain over the baseline that reruns the original skill; annotations mark the gap between the two arms at round 5. Results for the remaining four executors are in Fig. 8.
Skills after the first round of self-evolution by Qwen3.6-flash on one task, with and without the meta-skill. Rows are aligned by the failure mode addressed by the displayed guidance. Marks give the task reward from round 0, the original skill, to round 5; the framed mark is the round shown.
Figure 7: Skills after the first round of self-evolution by Qwen3.6-flash on one task, with and without the meta-skill. Rows are aligned by the failure mode addressed by the displayed guidance. Marks give the task reward from round 0, the original skill, to round 5; the framed mark is the round shown.
Self-evolution gain curves for the remaining four executors (Appendix D)
Figure 8: Self-evolution gain curves for the remaining four executors (Appendix D)
查看结构化数据
任务指标本文基线提升
一次性技能适配:Kimi-K3 用元技能改写后,3 个弱执行者在 103 对上的平均得分 平均得分([0,1]) 0.387(Gemma-4-E4B 0.170) 0.294(原技能,Gemma-4-E4B 0.029) +9.3 分;单执行者最高 +14.1 分(Gemma)
消融:Kimi-K3 改写,元技能 vs 一句话通用指令(103 对) 3 个弱执行者得分 0.616 / 0.170 / 0.374(平均 0.387) 0.565 / 0.115 / 0.314(平均约 0.331) 每执行者 +5.1~6.0 分
五轮自我进化:7 个执行者(Gemma-4-E4B 到 Kimi-K2.5) 第 5 轮相对无元技能臂的增益 全部为正:+2.0 ~ +5.0 分 同一循环去掉元技能(Gemma 每轮低于基线) 符号在全部 7 个执行者上一致
Verification 标签任务(n=17)的元技能增益 平均分差 +0.104(自进化,round-5 技能) +0.003(一次性适配,Kimi-K3 改写) 执行证据带来 +0.101 额外增益

局限与改进

作者承认的局限:只评估已注入上下文的技能,检索与渐进披露不在范围内;多技能按捆绑评估,无法归因单个技能的贡献;自进化固定 5 轮且不更新参数;每对每轮只跑一次,作者自己也声明 0.02–0.05 的自进化差距只能看符号不能读大小;部分失败源于执行者自身(编辑脚本后不重跑、多约束下只保留技能强调的那条),技能文本无法修复。我的补充观察:其一,元技能由 Claude-Opus-5 协助撰写且内容固定,规则集覆盖面依赖人工归纳的四类失败模式,遇到新失败类型没有自适应能力;其二,131 个标签采用「首个可观察失败」的单标签策略,会低估复合失败,也未报告标注一致性检验;其三,$\tau=0.10$ 与弱层 <0.80 才保留的硬阈值缺乏敏感性分析;其四,协议并非处处安全——一次性适配中 Context 在 Qwen3.6-flash 上 −0.041、Verification 在 Qwen3.5-9B 上 −0.136;其五,模型池全部是特定版本的闭源/开源模型,结论对更弱或更新的模型外推性待验证。

独立分析的弱点

第一,元技能是静态的、人工诊断起源的:四类失败模式来自 103 对的一次性标注,规则集不会随新失败类型更新。改进方向:让元技能本身参与进化(元-元技能),或在更多基准上增量扩充失败模式库并做版本管理。第二,评测噪声:单次运行、无置信区间,自进化 2 分量级的增益难以统计确认。改进:每对重复 3–5 次或用 bootstrap 置信区间报告,重点报告符号一致性而非点估计。第三,技能文本只能修「说得清」的失败:验证类失败在无证据的一次性适配中平均仅 +0.003,且 Qwen3.5-9B 上 −0.136。改进:把适配对象从 SKILL.md 扩展到工具接口、上下文管理与外部校验器,多组件联合适配。第四,捆绑技能无法归因:多技能任务按整体评估,改写可能顾此失彼。改进:设计可分离单个技能贡献的消融式注入协议。第五,弱模型无证据时改写会漂移(0.271 < 0.294),甚至一次性适配中弱模型自我改写在两个执行者上低于原技能。改进:强制弱 rewriter 先积累至少一轮失败证据再放开改写,或限制其可修改的技能区域(如只允许改验证段)。

未来方向

作者提出的方向:追踪每次技能修订是否解决了触发它的那个失败(而非只看总分变化),把后续更新导向持续性难题,并保留跨尝试仍然有用的修订;把类似的失败分析指导推广到工具接口与 agent 工作流的适配。基于本文成果可延伸的研究:把技能适配与检索/渐进披露结合,形成「先检索后适配」的完整管线;验证器与技能协同进化,让校验阈值随执行者能力动态调整;跨任务迁移失败画像——同一执行者在不同任务上的失败模式统计可作为先验注入改写;把「harness 收益 = 经验质量 × 形式匹配度」形式化并给出可优化的代理指标;在真实生产 harness(CI、数据管线)而非学术基准上验证 2–5 分量级增益的工程价值;探索弱模型群体进化,例如多个弱执行者共享改写经验与失败证据,弥补单模型证据不足的问题。

复现评估

复现条件较好。作者承诺评审结束后开源评估、技能适配与自进化代码,以及任务列表与实验配置;元技能全文、改写协议、有效性检查与基线 prompt 在附录 B/C,七个执行者的逐轮绝对分数在附录 D Table 4;三个基准(SkillsBench、DocOps、Tessl)均为公开基准,判分使用各自原生 judge,无需自建评测器。算力方面完全不涉及训练,全部是推理调用:初始评测约 607×7×2≈8500 次任务运行,一次性适配约 4 个 rewriter × 103 个技能加 3 个执行者 × 103 对 × 4 个改写版本,自进化约 7×103×5≈3600 次加同窗口基线重跑,总计数万次 agent 调用,API 成本估计数千美元量级,无需 GPU 集群。难点有三:闭源模型版本漂移(GPT-5.6、Kimi-K3 等迭代后行为可能变化)、失败标注的主观性(131 个标签需重新人工核对)、单次运行噪声。综合评估:中等难度,协议清晰可复刻,数字可能有小幅偏差但结论方向稳健。

相似论文推荐