SKILLER: Language-Level Reinforcement Learning for Reusable Skill Extraction in Small Language Models
Chenhao Dang, Siyuan Xiong, Conghui He, Weijia Li
AAAI 2027
cs.AI
2026-08-11
SKILLER 用自然语言强化学习给小模型自动生成专属技能,9B 模型五项 benchmark 四项第一,单技能任务还反超了贵 167 倍的 Opus 旗舰 4.4 分。
Agent 技能(skill)是这两年 agent 框架里冒出来的一个基本件:把一段「该按什么步骤、调哪个工具、输出长什么样」的流程知识打包成可复用的文本制品,塞进 Codex、Claude Code、OpenCode 这类 agent 框架(harness)里,用来约束模型行为,让任务跑得稳定、可复现。问题是,这些技能今天基本是为旗舰闭源模型调的,而旗舰模型的推理费贵到没法规模化部署。消费级 GPU 能跑的开源小模型(Qwen3.5 这类)是个现成的省钱出口,但技能没法直接搬过去:给大模型写的指令,小模型接不住,会编造参数、跳过校验步骤、被复杂指令带偏。论文把这种现象叫 model-mismatch(模型失配)。
真正的难点落在另一头:怎么自动给某个特定的小模型生成它能消化的技能。人工写成本高、又不一定贴合小模型的脾气;现成的技能生成器(Manus、AutoSkill、EvoSkill、SkillX)又多是为大模型服务的。SKILLER 就冲着这个空档。
SKILLER 的核心动作是个反直觉设定:不更新任何神经网络权重,把「技能文本」本身当成强化学习里那个待优化的策略(policy)。整条 RL 回路里没有一个浮点数梯度,所有状态、奖励、策略更新都用结构化自然语言传递。这是论文标题里 language-level reinforcement learning 的字面意思。
回路长这样:
整条优化跑 I 步,KI 是一连串 Apply 叠出来的结果。论文观察到这些更新会渐进收窄约束:先补输入落地(input grounding),再补任务本地计算,最后补自我校验(self-validation),越往后技能越较真。还有一个 progressive skill disclosure(渐进披露)机制,防止小模型被一长串文本上下文压垮。整个生成过程离线跑一次,用的是五步 RL 调度,下游评测时小模型只跑推理,生成费用是一次性的。
主实验在五个 benchmark 上做:SkillsBench(26 个单技能任务)、SWE-Skills-Bench(117 个实例、10 个高难度技能、有执行测试)、SkillLearnBench(100 个持续技能生成实例)、GAIA(165 个多步信息检索)、EarthBench(248 个地球科学/数据处理样本)。对照基线包括不挂技能、人工技能、Manus(闭源),以及 AutoSkill / EvoSkill / SkillX 三个开源生成器。
Qwen3.5-9B 挂上 SKILLER 生成的技能后,SkillsBench 拿到 73.91(上一名 SkillX 是 60.87),SWE-Skills-Bench 82.80(Manus 62.40),EarthBench 76.08。除了 GAIA 跟 SkillX 打平(都是 49.40),其余四项都是第一。Qwen3.5-4B 这边赢面更集中:SkillLearnBench 33.00、SWE-Skills-Bench 66.70 两项第一,但在 SkillsBench(42.03)和 GAIA(43.78)上输给 SkillX,EarthBench 跟 Manus 并列。小模型容量更紧,技能的边际收益更挑任务。
| 模型 | benchmark | SKILLER | 上一名基线 |
| 9B | SkillsBench | 73.91 | 60.87(SkillX) |
| 9B | SWE-Skills-Bench | 82.80 | 62.40(Manus) |
| 9B | EarthBench | 76.08 | 71.77(AutoSkill) |
| 4B | SWE-Skills-Bench | 66.70 | 53.40(Manus) |
最抓人的对比在成本-性能那张图(Figure 1):Qwen3.5-9B 配 SKILLER 在单技能任务上以 73.91 的通过率,反超 Claude Opus 4.7 Max(挂人工策展技能)4.4 个百分点,而后者的输出单价是前者的 167 倍。4B 配 SKILLER 同样比 Haiku 4.5(挂策展技能)便宜 71 倍。还有个反常识的点:4B 配 SKILLER 在 SWE-Skills-Bench 拿到 66.70,这比 9B 挂着人工技能(52.00)、AutoSkill(44.10)、EvoSkill(45.90)、SkillX(58.80)甚至 Manus 技能(62.40)都高。一个更小的模型配上为它量身定制的技能,能跑赢更大的模型配别的生成器。
生成成本(Table 4)也讲得通:SKILLER 平均花 8.95 美元换 62.86 的平均分,而 SkillX 花 14.55 美元只到 52.60;EvoSkill 最便宜(1.95 美元)但分也最低(46.39)。结构上(Table 3),SKILLER 生成的技能平均 534 词,远短于 AutoSkill 的 1887 词,TF-IDF 与人工技能的相似度是 0.07,和人类写得一样「像」,但更短,并带最多的小脚本(平均每个任务 2.96 个,总代码量 15747 行)。
对 agent 从业者,这篇直接给了一条可落地的省钱路径:与其给旗舰模型写技能,不如花一次性离线成本,给消费级 GPU 上的小模型生成一套专属技能,推理费能降两个数量级。SKILLER 也把「技能生成」从一次性 prompt 工程变成了一个可迭代的优化过程:critic 拿参考轨迹做对照、actor 在四种有界编辑里改、回放记忆防止复发。这套机制能复制到其他 harness 和其他小模型上(代码已开源)。
更深一层,它示范了语言层面的 RL:不碰权重、纯文本传信号,就能做出梯度下降在 prompt 和技能这种离散对象上做不到的优化。这个范式不限于技能,任何拿自然语言制品当策略的场景都适用。
论文自己承认的边界很明确:技能约束的是流程,补不了事实知识和复杂数学推理。GAIA 这类多跳检索任务,瓶颈在模型查得到查不到外部知识,不在它按不按流程走,所以 SKILLER 在 GAIA 上只能追平,打不开差距。这是技能这条路线的天花板,不是实现 bug。
优化轨迹不单调:后面的更新偶尔会为了迁就某些实例,把对别的实例有用的指令收窄掉。论文说这促使他们加了快照和回滚(snapshot & rollback)机制,也说明「五步 RL 调度」这个超参没给敏感性分析,I 为什么是 5、更多步会不会更优,都没说清。
读下来还有几处存疑。一是这套结果强烈依赖一个旗舰模型当 actor/critic(实验用的是 GPT-5.4),论文没给「换一个更弱的 actor 会怎样」的消融。二是 4B 在 SkillsBench 和 GAIA 上其实输给了 SkillX,摘要里「1.8 到 13.3 个百分点提升」的口径要打个折,这是相对基线的平均,不是项项第一。三是五个 benchmark 里有三个(SkillsBench、SWE-Skills-Bench、SkillLearnBench)连同基线方法都出自同一拨 2026 年的工作,评测圈子的独立性还需要更多外部验证。