论文链接:SKILLER: Language-Level Reinforcement Learning for Reusable Skill Extraction in Small Language Models 代码仓库:github.com/DANG-ai/SKILLER 发表时间:2026年8月(投稿 AAAI 2027) 机构:Chenhao Dang、Siyuan Xiong、Conghui He(通讯)、Weijia Li(通讯) 领域标签:cs.AI / Agent 技能学习 / 语言级强化学习


一、论文背景

1.1 Agent Skill 是什么

如果你用过 Claude Code 或类似的编程智能体,你可能会注意到一个叫"Skill"的东西。它本质上是一份岗位操作手册:一个 Markdown 文件(通常叫 SKILL.md),里面写着"做这类任务时,请按以下步骤执行、调用这些工具、遵守这些约束"。它不是普通的 prompt,而是打包了程序性知识、工具调用约定和领域专业知识的标准化格式,在智能体系统(论文中称为 harness,即包裹模型的智能体循环框架)中持续约束模型的行为空间,让任务执行可重复、高质量。

与 MCP 等工具协议的区别在于:MCP 给智能体"新的手"(可调用的连接),Skill 给智能体"新的操作手册"(如何使用这些手做事的 know-how)。Anthropic 在 2025 年将其开放为标准格式,技能成了版本化、可复用、可组合的一等公民。

1.2 为什么要给"小模型"做技能

技能的价值主张很直接:强闭源模型(如 GPT-5.4)推理成本高昂,用它跑 Codex、OpenClaw 这类 harness 完成真实任务,账单很快变得不可承受。而消费级 GPU 就能部署的开源小模型(9B、4B)能力提升很快——如果能用技能约束住它们的行为空间,让"小模型 + 好手册"逼近"大模型裸奔",成本可以砍掉几个数量级。

1.3 核心困难:技能不是写给谁都能用的

但这里有一个被论文反复强调的关键洞察:技能是 executor-specific(执行者特定)的。一份给 GPT-5.4 看的操作手册,直接塞给 9B 小模型往往无效甚至有害——论文实验里,人类专家编写的技能在 Qwen3.5-9B 上把 SkillsBench 从无技能基线提升了不到 9 分,闭源系统 Manus 生成的技能甚至在一些场景低于无技能基线。原因不难理解:手册里写着"理解需求后设计测试用例再编码",大模型知道怎么做,小模型不知道;给小学生的教案必须写得比给研究生的更细、更机械、更可执行。

问题在于,人工为每个小模型定制技能不可扩展,而现有的自动技能生成方法(详见第二部分)都假设执行者能力较强,或者依赖不接地气的信号(如纯 LLM 自评)来迭代技能,导致技能质量与具体执行者的真实失败模式脱节。这就引出了本文的研究问题:如何自动为指定的小模型生成真正适配它的可复用技能?

二、论文定位和关联工作

2.1 技能学习的谱系

(1)技能库与终身学习线:Voyager(2023)。Voyager 是技能学习方向的开山之作,在 Minecraft 中让 GPT-4 自主探索、把成功的可执行代码存入技能库供复用与组合。它的技能是代码,服务于特定游戏环境;且技能获取靠"探索—成功即入库",没有针对特定执行者的系统性优化。

(2)口头强化学习线:Reflexion(2023)。提出"verbal RL":智能体失败后用自然语言写反思,注入下次尝试的上下文。但 Reflexion 的反思只存在于单次任务记忆中,没有持久化、版本化的技能工件。

(3)文本梯度优化线:TextGrad / GEPA(2024–2025)。TextGrad 把 PyTorch 自动微分的概念搬到文本空间,用 LLM 互相批评产生自然语言"梯度"来优化 prompt、代码等工件。这条线证明了文本工件可以被优化,但优化目标多为单轮生成质量,优化信号缺乏环境接地的因果归因——它知道"不好",却很少知道"从哪一步开始错了"。

(4)Agent Skill 工程线:Anthropic Skills / 各类 harness。把技能工程化为标准格式与渐进披露机制(防止长上下文淹没),但技能内容主要靠人写或靠强模型一次性生成,缺少面向弱执行者的迭代适配。

2.2 同期技能生成方法(论文的 baseline)

  • Manus:闭源系统的技能生成,代表"强模型直接写技能"路线;
  • AutoSkill:开源自动技能生成;
  • EvoSkill:进化式技能迭代;
  • SkillX:技能进化方法,是本文最强的开源 baseline。

这些方法的共同局限:技能生成信号要么不接地(自评),要么不针对具体执行者的失败模式,要么采用无界的整体重写导致技能越改越糟。

2.3 本文定位

SKILLER 处在这几条线的交汇点上:用 RL 的系统性迭代(区别于一次性生成),优化文本技能工件(承接 TextGrad),但优化信号来自真实环境执行 + 官方验证器 + 参考轨迹因果对比(区别于自评信号),且优化目标是特定小执行者的适配(区别于所有前序工作)。

维度之前路线SKILLER 的突破
优化对象模型权重(传统 RL)或单轮 prompt(TextGrad)可版本化、可复用的技能文本包
反馈信号自评 / 标量奖励 / LLM 互评验证器标量奖励 + 文本诊断 + 参考轨迹因果对比
执行者适配假设执行者较强显式以小模型为环境,针对其失败模式优化
编辑方式整体重写为主四种有界局部编辑 + 快照回滚

三、问题定义

3.1 从具体场景到抽象结构

具体问题是:给一个 9B 小模型 π,怎么写出它用得好的技能?直接定义"什么是好技能"很困难。论文的核心抽象是:别定义好技能,直接把技能优化问题变成一个以技能文本为策略的强化学习问题。

这个抽象的精妙之处在于一个数学事实:技能 𝒦ᵢ 条件化了冻结模型的动作分布——

$$\pi_{\mathcal{K}_i}(a_t \mid h_t, \mathbf{x}) \triangleq \pi(a_t \mid h_t, \mathbf{x}, \mathcal{K}_i)$$

模型权重冻结不动,但改变技能文本就改变了整个系统的策略。技能文本就是策略参数,改文本就是更新策略。既然如此,策略优化的一切理论工具(actor-critic、环境反馈、回滚)都可以原样搬过来,只是全部在语言空间进行。

3.2 形式化定义

  • 给定:任务实例 𝐱(指令、输入、工具、输出契约);冻结的小模型 π;环境 ℰ(小模型 agent loop + 官方验证器);可选的参考轨迹 τ*(成功解法,仅优化期用,绝不出现在运行时)
  • 环境转移:(τᵢ, rᵢ, 𝐯ᵢ) = ℰ(𝐱, 𝒦ᵢ; π),其中 rᵢ ∈ [0,1] 是标量奖励(二元成功或规范化测试通过率),𝐯ᵢ 是验证器文本诊断
  • 求:𝒦* = argmax E[r],即最大化期望奖励的技能文本
  • 约束:小模型权重完全不动;参考轨迹不得泄漏为运行时依赖或预计算答案(防止作弊);技能必须可复用(对同技能族的新实例零样本可用)

3.3 为什么这个抽象合理

它把"写好技能"这个模糊的工程问题,转化为一个有明确优化目标(期望奖励)、有明确环境反馈(验证器)、有明确优化变量(技能文本)的标准优化问题——而所有 RL 基础设施(探索、诊断、回滚、经验复用)都可以在文本层面重建。

四、问题解法

SKILLER 的解法可以概括为一句话:强模型当大脑(actor + critic),小模型系统当环境,验证器当奖励函数,自然语言当梯度。整个优化循环类比深度学习训练如下:

深度学习训练SKILLER
可训练参数 θ技能文本 𝒦ᵢ
前向传播小模型 + 技能在环境中 rollout(30 步工具调用上限)
损失rᵢ(标量)+ 𝐯ᵢ(文本诊断)
梯度计算Critic 因果诊断 → 修改建议 𝐠ᵢ
参数更新 ΔθActor 的有界文本编辑 Δᵢ
优化器状态 / 动量Replay Memory ℳᵢ(文本化优化历史)
checkpoint 恢复技能快照回滚

4.1 环境与状态:四元组状态设计

每一轮优化开始时,系统收集状态 𝐬ᵢ = (𝐱, τᵢ, τ*, 𝐯ᵢ):

  • 𝐱 任务实例:技能要解决的"考题";
  • τᵢ 当前轨迹:小模型挂载技能后的实际执行过程——它暴露执行者"卡在哪";
  • τ 参考轨迹*:强模型或人类的成功解法——它提供"应该怎么做"的特权证据(仅优化期对比用);
  • 𝐯ᵢ 验证器诊断:每个测试的结果与错误消息,把"失败"锚定到任务的接收标准上。

环境 ℰ 封装了 benchmark 的工具接口、工作区与官方验证器。小模型在"观察工作区 → 选工具动作 → 读结果 → 反思"的循环中执行,且环境运行在渐进披露机制下——技能包不是一股脑全塞进上下文,而是按需加载,防止小模型被长文本淹没。

4.2 Critic:从"失败了"到"从哪一步开始错的"

Critic(GPT-5.4 承担)接收状态四元组与 Replay Memory,输出自然语言修改建议 𝐠ᵢ。它按四个操作工作:

  1. Evaluate:评估当前执行表现如何;
  2. Compare:对比当前轨迹 τᵢ 与参考轨迹 τ*;
  3. Locate Error:定位最早因果分歧点——当前轨迹的动作序列第一次偏离成功策略的位置;
  4. Generation:生成有界的修改建议。

定位最早分歧点是整个设计中最锋利的一刀。软件任务里,最终测试失败往往源于更早的文件选择、工具调用或验证程序选择——如果只修补下游症状(测试失败的直接报错),技能会陷入"按下葫芦浮起瓢"。Critic 还会把失败系统性归类为四类:缺失程序指导、工具误用、输出契约违规、基础设施故障,并识别技能中已经支持成功行为的内容(供保留,不许 actor 破坏)。

4.3 Actor:四种有界编辑 + 辅助脚本合成

Actor(同为 GPT-5.4)接收修改建议,产出编辑 Δᵢ,作用于技能包后得到新技能。编辑被限制为四种显式有界操作:

操作功能
Insert插入新的行为约束或步骤
Replace替换技能中现有内容
Create创建新文件(典型如辅助脚本)
Delete删除被证明有害的内容

有界编辑的意义类似"受控学习率":把 critic 的诊断变成机械可执行的修复,避免整体重写把已有效的部分也改坏。Actor 的另一个关键能力是合成任务本地辅助脚本:当小模型难以稳定执行冗长易错的流程时,actor 会把这段流程写成确定性脚本,让小模型"调用"而不是"照着做"——把程序性推理从自然语言卸载到可执行代码。Actor 严格遵守防作弊约束:参考轨迹的证据只能蒸馏为"依赖运行时输入的指导",直接照搬 oracle solver 内容的更新会被拒绝。

4.4 Replay Memory 与快照回滚

Replay Memory ℳᵢ 不是原始 token 转移的存储,而是文本化的优化历史,保留三类证据:带验证器诊断的失败签名(避免重复失败)、critic 诊断摘要(积累归因知识)、已接受编辑及其结果(保护已有效行为)。系统在每轮优化前后存储技能快照,后续更新导致性能回退时回滚到最近一次通过的快照——这是文本世界的 checkpoint 恢复。

4.5 训练调度

所有任务统一采用 5 步 RL 调度(i = 0,…,4):初始化时用任务指令与参考轨迹细化基线技能;随优化推进,编辑 Δᵢ 逐步注入更细粒度的约束(输入接地 → 任务本地计算 → 自验证)。附录的学习动态分析显示轨迹非单调——SkillLearnBench 上 Step 2 达到最佳检查点后增益趋平,而 SWE-Skills-Bench 上 5 步持续增长(早期解决粗粒度执行失败,后期注入细粒度约束)。

五、评估指标与实验证据

5.1 指标体系

  • 主指标:五个基准的任务成功率/测试通过率(%),全部由各 benchmark 的官方验证器计算,3 次运行取平均——衡量的是"技能能否让冻结小模型真实完成任务";
  • 辅助指标:技能结构分析(词数、TF-IDF、脚本数、代码行数)与优化成本(token 用量、美元成本);
  • 消融指标:状态组件、critic 四操作、actor 三能力的逐一移除实验。

5.2 五个基准的角色分工

  • SkillsBench(26 个单技能任务):技能直接使用的基准场景;
  • SkillLearnBench(100 实例):技能从少量实例学习后泛化到新实例;
  • SWE-Skills-Bench(10 技能 / 117 实例):软件工程任务,人类专家技能得分 52.00——检验能否超越人类水平;
  • GAIA(83 实例生成 / 其余零样本测试):通用助手任务,检验零样本迁移;
  • EarthBench(124 实例生成 / 其余测试):地球科学领域任务,跨域零样本迁移。

5.3 主结果(Qwen3.5-9B 为执行者)

方法SkillsBenchSkillLearnBenchSWE-SkillsGAIAEarthBench
No-skill1.4523.8326.2044.5859.68
Human-authored10.1430.0052.00––
Manus(闭源)57.9727.5662.4046.1871.24
AutoSkill53.6225.6144.1044.9871.77
EvoSkill50.7224.2245.9048.1962.90
SkillX60.8727.7858.8049.4066.13
SKILLER73.9132.1182.8049.4076.08

4B 执行者上 SKILLER 同样全面领先(SkillsBench 42.03、SkillLearnBench 33.00、SWE-Skills 66.70)。绝对增益:9B 提升 4.3–20.4 分、4B 提升 1.8–13.3 分。三个最关键的结论:

  1. 超人类技能 30.8 分:SWE-Skills 上 82.80 vs 人类 52.00,证明自动生成的技能可以大幅超越人类专家;
  2. 跨规模超越:4B + SKILLER(66.70)在 SWE-Skills 上超过所有 9B baseline 配置(含 9B + Manus 62.40)——好技能能让更小的模型打赢更大的模型;
  3. 技能不是万能的:人类技能在 SkillsBench 上仅 10.14,Manus/AutoSkill 在部分场景甚至低于 No-skill——执行者失配的技能是有害的,这正是"executor-specific"命题的证据。

5.4 零样本迁移

在 GAIA/EarthBench 各保留一半样本做零样本测试(9B):SKILLER 技能 GAIA 49.59(No-skill 37.00)、EarthBench 72.31。4B 上 Manus 与 SkillX 的技能在 GAIA 上跌破无技能基线,而 SKILLER 技能仍稳健提升——证明学到的行为约束是可泛化的脚手架而非过拟合的记忆。

5.5 消融实验(9B)

状态组件:去掉任务实例 𝐱 后 SkillsBench 崩塌至 1.45;去掉参考轨迹 τ* 降至 58.71;去掉验证器诊断 𝐯ᵢ 降至 60.87。接地信息(𝐱, τᵢ)是一切的前提,且 τ* 比 𝐯ᵢ 更重要——过程证据比结果反馈提供更丰富的局部编辑目标。

Critic 四操作:去掉 Generation 后 SkillsBench 从 73.91 暴跌至 36.44、SWE 从 82.80 暴跌至 24.90——将诊断转化为有界编辑的能力是 critic 的决定性功能;去掉 Locate Error 降至 58.71/64.46。

Actor 三能力:去掉辅助脚本合成后 SWE 从 82.80 跌至 52.30——脚本是语言反馈与可靠动作之间的核心桥梁;去掉 Preserve(保留有效内容)后 SkillsBench 降至 59.18——无约束的迭代会破坏既有能力。

5.6 技能结构与成本

SKILLER 技能指令简洁(词数 534,TF-IDF 熵与人类持平 0.07),但脚本数最多(2.96 个/技能 vs 人类 1.48)——印证"程序性推理卸载到确定性代码"的设计。优化成本 8.95 美元/技能包(低于 SkillX 的 14.55),换来平均分 62.86(SkillX 52.60)。

六、效果优势的根源解释

本部分回答:为什么 SKILLER 是结构性必然地更好,而不是凑巧更好?按因果链逐层分析对每个 baseline 的优势根源。

6.1 对"强模型直接写技能"(Manus / Human):失配根源

Baseline 的根本局限:强模型写技能时的隐含假设是"执行者和我一样强"。它生成的技能是人类/大模型粒度的指导(“设计合适的测试策略”),缺少小模型需要的机械展开(“先读取 X 文件,逐个函数生成边界用例,运行 pytest 并读取第 N 行错误”)。这不是内容错误,而是粒度失配——技能的粒度必须匹配执行者的能力,而书写者无法凭空知道自己没经历过的执行者的失败模式。

SKILLER 的结构性改变:把小模型系统放进环境位,技能的每一次更新都必须先通过"小模型 + 当前技能"的真实 rollout 检验——执行者的失败模式以轨迹 τᵢ 的形式直接进入优化信号。信息流变了:从"我以为你需要什么"变成"你上一次在这里卡住了"。

因果链:执行者在环 → 技能更新以真实失败轨迹为条件 → 粒度自动匹配执行者能力 → 体现为 SkillsBench 73.91 vs Manus 57.97、且 4B 上 Manus 技能跌破无技能基线而 SKILLER 仍稳健。

反事实:消融中去掉状态里的当前轨迹 τᵢ,SkillsBench 从 73.91 崩至 2.44——没有执行者失败证据,强模型立刻退化成"凭想象写技能",比不写还糟。这条因果链是消融实验直接验证的。

6.2 对开源技能迭代方法(AutoSkill / EvoSkill / SkillX):归因与局部性根源

Baseline 的根本局限:这类方法有迭代,但更新信号不接地或归因粗糙——依赖 LLM 自评或最终结果反馈来指导技能重写。最终结果只告诉你"失败了",不告诉你"从哪一步开始失败";而自评信号没有环境校验,容易产生似是而非的修改方向。同时,整体重写的更新方式意味着每次迭代的方差极大:修好了 A 可能同时改坏了 B。

SKILLER 的两个根本性改变:

(1)因果归因——最早分歧点定位。验证器的文本诊断 𝐯ᵢ 被文本化后,critic 不停在"知道失败",而是对比 τᵢ 与 τ* 定位最早的因果分歧点,把"结果反馈"升级为"过程证据"。消融显示:去掉 Compare 后 SWE 从 82.80 降至 64.50,去掉 Locate Error 降至 64.46。这在软件任务上尤为关键——后期测试失败可能源于更早的文件或工具选择,只修症状会让技能陷入打地鼠循环。

(2)有界编辑——局部性保护。四种编辑原语 + Preserve 约束 + 快照回滚,把更新限制在诊断证据支持的局部范围内。机制上,这相当于给优化加了信任域:每步只改有证据的部分,已验证有效的行为被显式保护。消融中去掉 Preserve 后 SkillsBench 降至 59.18——无界迭代会单步摧毁多轮积累的能力。

因果链:验证器诊断文本化 → critic 因果归因(分歧点而非症状)→ actor 局部化编辑(而非整体重写)→ 优化轨迹方差降低 + 已有效能力受保护 → 体现为相对最强开源 baseline SkillX 的 4.3–20.4 分全面优势,以及技能结构上"指令简洁但脚本丰富"(程序性推理卸载,进一步降低小模型的执行方差)。

6.3 零样本迁移优势的根源

SKILLER 技能在保留集上仍领先,而 baseline 技能在 4B 上甚至有害。根源在于技能内容的性质差异:整体重写或自评驱动的技能容易把特定实例的答案细节(而非依赖运行时输入的程序性指导)写进技能——这在小模型上尤其致命,因为弱执行者缺乏区分"记忆"与"程序"的能力,会机械照抄。SKILLER 的防作弊约束(oracle 内容直接照搬即拒绝)+ 参考轨迹只蒸馏为运行时依赖的指导,从机制上保证了技能学到的是行为脚手架而非实例记忆。

6.4 一条总因果链

环境反馈文本化(r + v + τ 对比)→ 强模型获得可机械执行的因果归因 → 有界编辑实现低方差局部更新 → 快照回滚保证单调不退 → 技能粒度与内容同时匹配弱执行者(程序卸载为脚本)→ 五基准全面领先 + 零样本迁移稳健*。

每一环都有对应的消融数据支撑(Generation 消融 -37 分、τᵢ 消融 -71 分、Scripts 消融 -30 分),这让优势解释不是叙事而是被实验钉死的因果结构。

七、必要知识反推

假设一个毫无背景的人要做这项工作,他最少必须知道什么?

7.1 领域知识层

  • Agent harness 的运作机制:模型如何循环执行"观察—行动—反思"、工具调用的结构、技能如何挂载进上下文、渐进披露如何控制上下文成本——不知道这些就无法定义"技能条件化策略"的实验载体;
  • Agent Skill 的工程格式:SKILL.md 式结构、指令与脚本的分工——不知道这些就无法设计四种编辑操作的作用对象;
  • 小模型的能力边界:9B/4B 模型在多步工具调用中的典型失败模式(程序性指导缺失、工具误用、契约违规、基础设施故障四类分类本身就是这项领域知识)——不知道这些,critic 的诊断就没有分类学。

7.2 方法论知识层

  • 强化学习基础:策略、环境、奖励、actor-critic 分工、replay buffer、checkpoint 回滚——本文的全部机制设计都是这些概念在文本空间的映射,没有 RL 训练素养就想不到"把执行者当环境"这个抽象;
  • 文本工件优化脉络:Reflexion 的口头 RL、TextGrad 的文本梯度、prompt 优化的失效模式(自评不接地、重写方差大)——不知道前人失败在哪,就无法定位"因果归因 + 有界编辑"这两个创新点的必要性;
  • 技能学习前序工作:Voyager 的技能库、SkillX 等同期方法的机制与缺陷——这是实验对照系统的方法论基础。

7.3 工程知识层

  • Benchmark 验证器体系:五个基准各自的验证器如何输出标量分与文本诊断——奖励函数设计直接依赖于此;
  • 强模型 API 的成本与能力特性:GPT-5.4 作为 actor/critic 的调用成本、温度设置(executor 0.2 / actor-critic 0.3)、长上下文管理——离线优化可行性取决于这些工程细节;
  • 实验设计:3 次运行平均、生成/测试划分(GAIA 83 实例生成其余零样本测试)、消融矩阵的构造。

7.4 知识融合的关键节点

  • 节点一:“技能文本 = 策略参数”:需要同时精通 RL(知道策略优化框架)和 prompt/技能工程(知道技能条件化生成)才能看到这个同构——这是全文的奠基性洞察;
  • 节点二:“验证器诊断是免费的文本梯度”:需要既了解 benchmark 验证器(工程知识)又了解 TextGrad 式文本优化(方法论知识),才会意识到官方验证器的错误消息就是现成的、接地的优化信号,无需训练单独的 reward model;
  • 节点三:“程序性推理应该卸载为脚本”:需要同时理解小模型的失败模式(长流程执行不稳定)和软件工程惯例(能写成脚本的不要写成文档),才会让 actor 具备 Create 脚本的能力——消融证明这是第二大贡献来源。

八、论文中可以提取的通用性灵感

8.1 强弱协作范式:强模型当优化器,弱模型当被优化系统

核心思想:昂贵的能力(推理、诊断、规划)只需在离线优化阶段使用,在线执行全部交给廉价系统——优化的产物是让弱系统变强的"配置"而非权重。

论文证据:GPT-5.4 仅在离线技能生成阶段使用(成本 8.95 美元/技能包),部署时只有 9B 小模型;4B + SKILLER 技能打赢 9B + 人类技能。

推广场景:边缘设备部署前的提示词/配置离线优化;低成本客服机器人上线前的流程手册自动定制;游戏 AI 的难度脚本针对低端硬件自动调优;教学系统的教案针对不同水平学生自动生成。

8.2 机制类:有界局部更新优于无界重写

核心思想:迭代优化复杂工件时,把每步更新限制在有证据支持的局部范围内,配合快照回滚,能避免"修好 A 改坏 B"的震荡。

论文证据:四种编辑原语贡献一致提升;去掉 Preserve 后 SkillsBench 从 73.91 降至 59.18;快照回滚防止后续优化丢弃已成功技能。

推广场景:代码重构(局部 patch 优于大重写);组织制度修订(增量条款 vs 推倒重来);文档迭代维护;数据库 schema 演进。

8.3 信号利用类:免费的诊断文本是最被浪费的优化信号

核心思想:系统里现成的错误消息、测试报告、日志,本质上都是接地的文本梯度——比标量分数和 LLM 自评信息量大得多,却常被丢弃。

论文证据:验证器诊断 𝐯ᵢ 直接进入 critic;去掉后 SkillsBench 降 13 分;论文无需训练任何 reward model。

推广场景:CI/CD 失败日志驱动开发流程优化;售后工单文本驱动产品改进;学生错题归因驱动教学策略调整。

8.4 因果归因类:定位最早分歧点,而不是修复最终症状

核心思想:长流程失败时,可见的错误几乎总是下游症状;对比"实际轨迹"与"成功轨迹"找到第一个分歧点,才是修复的正确锚点。

论文证据:Critic 的 Compare + Locate Error 操作;去掉后 SWE 从 82.80 降至 64.50/64.46——软件任务上症状修补的代价最大。

推广场景:故障排查(回溯到第一个异常日志);流程审计;医疗诊断(找首发病因而非对症治疗);调试器的 blame 定位。

8.5 适配类:手册的粒度必须匹配执行者,没有普适的好手册

核心思想:任何"指导性内容"(prompt、文档、教程、制度)都没有脱离执行者的绝对质量,好坏只相对特定执行者成立;为执行者定制指南必须让执行者的失败进入优化回路。

论文证据:人类技能 10.14 vs SKILLER 73.91(同为技能,执行者不同则天壤之别);Manus 技能在 4B 上跌破无技能基线。

推广场景:新人 onboarding 手册按岗位背景定制;API 文档按用户水平分层;针对不同基础学生的分层教学。

8.6 程序卸载类:能用确定性代码的,不要让弱模型用自然语言执行

核心思想:对能力有限的执行者,把易错的长流程从"指导它照做"改为"给它一个可直接调用的工具",是把可靠性从概率性(模型每次执行可能有偏差)转为确定性(脚本每次结果一致)。

论文证据:SKILLER 技能脚本数 2.96 个/技能(人类 1.48);去掉脚本合成后 SWE 从 82.80 跌至 52.30——降幅最大的消融之一。

推广场景:给初级工程师的 runbook 应附带自动化脚本;RPA 流程封装;家庭智能化场景的"一键"流程;法律合规检查的自动化清单。

附录:方法全景速查表

RL 要素SKILLER 对应物
优化变量(策略)文本技能 𝒦ᵢ(+ 任务本地辅助脚本)
环境 ℰQwen3.5-9B/4B + OpenCode agent loop + 官方验证器
Actor / CriticGPT-5.4(仅离线阶段)
状态(𝐱, τᵢ, τ*, 𝐯ᵢ) 四元组
奖励r ∈ [0,1] + 文本诊断 𝐯ᵢ
动作Insert / Replace / Create / Delete 四种有界编辑
经验回放文本化 Replay Memory(失败签名/诊断史/已接受编辑)
安全机制快照回滚、oracle 内容拒绝、渐进披露
调度5 步 RL 调度,渐进注入更细粒度约束