
你有没有遇到过这种情况:请了一个特别厉害的老师来辅导,老师讲得头头是道,可你回去做题还是不会。问题出在哪儿?
有一种可能是,老师讲的是"我是怎么想到这个解法的",而你需要的是"你到底哪里想错了"。这是两件完全不同的事情。
这正是当下 AI 智能体(能自己完成多步骤任务的大模型程序)领域里一个挺尴尬的现状。研究者们发现,让一个能力较弱的 AI 智能体变强,光靠给它看"标准答案"或者"它自己的错题本",效果都不太好。2026年8月,一篇叫做《SKILL-KD》的论文提出了一个新思路:与其单独看学生做错了什么,或者单独看老师做对了什么,不如把两者放在一起对比,专门找出"学生和老师之间那个具体的、能落地的差距",然后把这个差距变成一条可执行的规则,交给学生用。
这篇论文来自浙江大学、北京大学和阿里巴巴的联合团队,题目直译过来是"技能知识蒸馏",听起来有点绕,我们慢慢拆开讲。
先搞清楚:这里说的"技能"到底是什么
在这篇论文的语境里,AI 智能体(agent):能够自主进行多步骤推理、调用工具、与环境交互来完成任务的大模型系统,比如能自己上网搜索、操作表格、玩文字游戏的 AI 程序
不是靠单次问答解决问题的,而是需要走很多步:搜索资料、调用工具、拆解任务、检查中间结果对不对。这些"怎么走这几步"的套路,就是论文里说的技能(skill):可复用的、用文字描述的操作规则,比如"当表格里出现货币符号时,先解析成数字再计算",这类规则不需要重新训练模型,只需要写进提示词里给模型看
技能这个东西一直是 AI 智能体研究的热门方向。此前的做法大体分两条路:一条是让智能体自己复盘,把自己走过的弯路总结成经验,存到一个"记忆库"里,下次遇到类似问题就翻出来看;另一条是找一个更强的模型做示范,把强模型的成功案例总结成技能,直接喂给弱模型用。
这两条路听起来都挺合理,但论文作者指出了一个容易被忽略的问题。
核心问题:证据不等于答案
先说第一条路,让智能体自己总结失败经验。这里有个逻辑漏洞。
如果一个学生做错了一道题,仅仅盯着这道错题看,能看出"哪里错了",但不一定能看出"应该怎么做才对"。论文原话是,失败的轨迹可能显示智能体走错了哪一步,但不会揭示是什么缺失的知识或策略本来能带来正确的那一步。
举个具体的例子想象一下。假设一个学生解方程解错了,卷子上写着"移项时符号弄反了"。这句话是对的,但它只告诉你"你错在哪儿",没有告诉你"移项到底该怎么处理符号"这个更深层的规则。真正缺的知识点,可能压根不会在错题卷面上体现出来,因为学生自己就不知道这个知识点存在,又怎么能在总结里写出来呢?
这就是为什么论文说自我复盘存在天花板:它能发现的问题,永远局限于"学生已经能意识到的问题",那些学生根本没意识到自己不会的东西,是复盘不出来的。
再看第二条路,直接照抄强模型的示范。这条路的问题在于"太implicit",也就是太隐晦了。
一份优秀的解题过程,对写这份过程的强模型来说是顺理成章的,因为它有足够的知识储备去支撑每一步的跳跃。但如果直接把这份过程原封不动地总结成一条规则给弱模型看,弱模型可能压根接不住,因为规则要么写得太抽象套不上具体情况,要么隐含了弱模型根本不具备的前置知识。
这就好比让一个刚学做饭的新手看米其林大厨的菜谱视频。大厨轻描淡写地说一句"炒到差不多就行",这句话对大厨来说是几十年手感的浓缩,可对新手来说完全是一句空话,因为"差不多"这个判断标准,新手压根没有建立起来。如果不去弥合这个差距,直接把大厨的做法抄给新手,新手大概率还是做不出那道菜。
论文管这个现象叫做"隐式的教师示范"(teacher trajectory may be too implicit to be internalized)。
那要怎么办:把"对比"本身当成学习材料
SKILL-KD 的思路是,既然单看学生的错、单看老师的对都不够,那就把两条轨迹放在一起比。
具体流程是这样的。给定一个任务,先让学生模型(论文里叫 student,能力较弱、参数被冻结不做训练的那个模型)自己去做一遍。
冻结(frozen):指模型的参数在整个过程中不发生任何更新,不做微调、不做强化学习训练,唯一改变的是喂给它的提示词内容
如果学生做对了,这事儿就翻篇了,不需要任何操作。如果学生做错了,系统会让教师模型(teacher,能力更强的那个模型)去做同一个任务,产出一条对照轨迹。
接下来就是关键的一步:不是把教师的轨迹直接总结成规则塞给学生,而是引入一个叫做"整合智能体"(consolidation agent)的角色,让它把学生的失败轨迹和教师的成功轨迹放在一起对比,专门去找两者之间那个"能落地的差距"(actionable discrepancy),然后把这个差距浓缩成一条文字形式的技能补丁(skill patch)。
这里有个细节挺有意思:论文特意强调,教师模型也不一定每次都能做对。就算教师这次也失败了,对比两条都失败的轨迹依然有价值,因为可以看出两者在哪一步开始分道扬镳,这个分叉点本身就是有用的信息。数据显示,在学生失败的案例里,教师只有 46.1% 的情况下能成功,但即便教师失败,仍然有 38.5% 的被采纳补丁是从教师失败的轨迹里提炼出来的。这说明整合智能体真正关心的不是"谁做对了",而是"哪里出现了有意义的分歧"。
光有补丁不够,还得验证补丁真的有效
这里论文提出了整篇工作里我觉得最巧妙的一个设计:自适应技能蒸馏(Adaptive Skill Distillation)。
补丁写出来之后,不能想当然地认为它就是对的,得拿去让学生重新做一遍这个任务,看看学生这次能不能做对。
如果学生做对了,这条补丁就正式收编进技能库。如果学生还是做错,整合智能体会看着学生这次新的失败轨迹,重新写一版补丁,再让学生试一次。这个过程最多循环 n 轮(论文里默认设为 3 轮)。
这个设计背后的逻辑其实很朴素:一条规则写得好不好,光靠人(或者另一个模型)拍脑袋判断是不够的,唯一靠谱的检验方式是让真正要用它的那个人去试一遍。
这就像教练教一个新手学游泳。教练示范了一遍蛙泳的动作要领,讲得清清楚楚,可这不代表新手听完就能游起来。真正靠谱的做法是让新手下水试一次,教练站在旁边看他哪里做得不对,再针对性地调整讲解方式,再试一次。如果教练只是讲完就假定学生学会了,从不下水看效果,那这套教学方法的可靠性完全无从谈起。
论文用实验数字验证了这个循环的价值。在 Group 1 的设置下(学生模型是 Qwen3.5-4B,教师模型是 Qwen3.7-plus),第 0 轮(也就是学生第一次自己尝试,还没用上任何补丁)的训练集平均成功率是 58.9%,经过第一轮补丁验证之后直接跳到 67.7%,提升了近 9 个百分点。这说明"让学生试一次再看效果"这一步贡献了绝大部分的改进,后面第二轮、第三轮的提升就明显放缓了,分别是 70.8% 和 72.7%。这符合边际收益递减的规律:大部分能解决的问题,第一次校准就能搞定,剩下的都是难啃的骨头,需要更多轮次的打磨。
技能库越用越乱怎么办:防漂移的整合机制
讲到这里还有一个问题没解决。如果每次失败都生成一条新补丁,久而久之,这个技能库会变成什么样子?
论文给出的答案是:会变得又臭又长,还可能自相矛盾。这个现象论文里叫做技能漂移(skill drift):指技能库随着不断打补丁逐渐变得冗余、局部过拟合,或者新补丁覆盖掉了旧补丁里本来有用的内容,导致整体质量下降而不是提升
论文具体拆解出了三种漂移的表现形式,读起来都挺真实。
第一种叫"案例特定漂移"(case-specific drift)。举个例子,在 DocVQA(一个从文档图片里读取信息回答问题的任务)里,有一条关于"数字要不要带单位"的规则,被反复修改:先是遇到"10毫克"这种情况就加上单位,后来遇到问题里已经写明了单位(比如"多少千克")就改成去掉单位,再后来遇到货币又改一版。每次修改单独看都合理,但问题是,如果整合智能体看不到这条规则之前经历过哪些具体案例,它就只能根据眼前这一个新案例去调整边界,边界就会像墙头草一样跟着最后一个案例摇摆。
第二种叫"技能膨胀漂移"(skill-bloat drift)。在 SpreadsheetBench(表格操作任务)里,如果整合智能体看不到历史证据,最后攒出来的技能库会有 50 条规则、2930 个单词,里面充斥着诸如"处理 P6:Q6 这个单元格"这种极度具体、只对这一次任务有用的补丁。这些补丁单独看都没错,但堆在一起,库就变得又大又难用。
第三种叫"破坏性更新漂移"(destructive-update drift)。这种更隐蔽:一条早先记录了"如何解析货币、如何做分层计算限额"的具体规则,后来被一条新补丁的措辞悄悄替换掉了,新补丁强调"要写可执行代码而不是伪代码",这个新要求本身没错,但它把原本记录着具体计算逻辑的老规则给冲淡了,等于好心办了坏事。
面对这三种漂移,SKILL-KD 的解法是给技能库配一本"带证据链的修改日志",也就是漂移感知的技能整合(Drift-Aware Skill Consolidation):不只记录每条技能规则的当前内容,还完整保留每一次修改的操作类型(新增、修改、删除还是跳过)、修改理由,以及这次修改是基于哪几条具体的师生对比轨迹做出的
这个机制配了两个工具给整合智能体用:一个是"追溯链接工具",可以随时把某条历史规则背后的原始对话记录调出来重新看;另一个是"打补丁工具",用来正式执行新增、修改、删除或跳过的操作。
这套机制运作起来,有点像一个经验丰富的病历管理员。普通的病历系统可能只记录"病人现在吃什么药",但一个好的病历管理员会保留完整的既往病史:这个药是什么时候加的、当时是为了治什么症状、后来症状变化了没有。如果医生要调整用药方案,不看既往病史,直接根据眼前这次复诊的症状拍脑袋改药,很容易把之前控制得好好的另一个病症给耽误了。有了完整病史做支撑,医生才能判断这次调整是真的该改,还是仅仅针对这一次的偶然情况。
论文用一个消融实验验证了这套机制的价值。去掉编辑日志和追溯链接这两个组件之后(也就是只留下打补丁的动作,但看不到历史),在 SpreadsheetBench 上的分数从完整版的 24.3 掉到 14.6,在 LiveMath(数学推理任务)上从 54.8 掉到 27.4,几乎腰斩。这说明"记得住来龙去脉"这件事,不是锦上添花,而是决定这套系统能不能长期稳定运作的关键。
实测效果:五个任务,两组师生搭配
论文在五个基准测试上做了验证,覆盖面还挺广:SearchQA(基于搜索的问答)、SpreadsheetBench(表格操作)、DocVQA(文档图片问答)、LiveMath(数学推理)、ALFWorld(虚拟环境里的具身交互任务,比如"把苹果放进冰箱"这种指令)。
师生搭配设置了两组。第一组是"同门师兄弟"式的搭配:学生是 Qwen3.5-4B,教师是 Qwen3.7-plus,都属于通义千问家族,架构和训练风格比较接近。第二组是"跨门派"搭配:学生是 Qwen3.6-35B-A3B,教师是 ChatGPT-5.5,两者来自完全不同的模型家族,分词器、预训练数据、行为习惯都不一样。
结果如下表所示(分数是百分比,数字越高越好):
| 方法 | SearchQA | SpreadsheetBench | DocVQA | LiveMath | ALFWorld | 平均 |
|---|---|---|---|---|---|---|
| 学生自己(无技能) | 68.1 | 9.3 | 86.9 | 22.4 | 30.6 | 43.5 |
| EvoSkill | 68.6 | 17.9 | 79.7 | 23.4 | 67.9 | 51.5 |
| Trace2Skill | 68.5 | 19.3 | 88.0 | 27.2 | 64.9 | 53.6 |
| SkillGen | 69.2 | 13.2 | 88.8 | 21.0 | 70.1 | 52.5 |
| SkillOpt | 71.2 | 23.9 | 89.0 | 52.0 | 81.3 | 63.5 |
| **SKILL-KD** | **79.2** | **24.3** | **89.3** | **54.8** | **86.6** | **66.8** |
(这是第一组,学生 Qwen3.5-4B、教师 Qwen3.7-plus 的结果)
在第二组(学生 Qwen3.6-35B-A3B、教师 ChatGPT-5.5)里,SKILL-KD 的平均分是 74.6,同样是所有方法里最高的,比排第二的 SkillOpt(68.6)高出 6 个百分点。
值得单独说一下 ALFWorld 这个任务上的结果。这个任务的测试集用的是训练时完全没见过的新环境,相当于一个"举一反三"的考验。SKILL-KD 让 4B 学生模型的分数从 30.6 飙升到 86.6,提升了整整 56 个百分点。这么大的提升幅度,说明学出来的技能规则确实是可迁移的通用套路(比如"先找到目标物体,再找加热设备,再放置"这种模式),而不是死记硬背某个具体房间里东西摆在哪儿。
拿另一组数字来对比感受一下这个提升有多大:无技能状态下,学生模型平均每做 10 个 ALFWorld 任务只能做对 3 个;用上 SKILL-KD 之后,10 个任务里能做对将近 9 个。这意味着原本走 3 步就迷路的智能体,学会了一整套"先干嘛后干嘛"的行动策略。
拆开揉碎地看:到底是哪个环节在起作用
论文还做了几组细致的消融实验,专门回答"这套系统里每个模块到底贡献了多少"这个问题。
第一组对比了不同的技能获取方式:只用教师轨迹(Teacher-only)、只用学生失败轨迹(Student-only)、只做一次对比不做迭代(Pairwise)、把多条轨迹打包一起处理(Batch)。结果发现,只用教师轨迹这种做法平均分只有 58.3,是所有方案里最差的,恰好印证了前面说的道理:光看强模型怎么做,不结合弱模型具体错在哪儿,转化出来的规则往往对不上号。
| 方法 | 平均分 | 相对提升 | 规则总数 | 词数总量 |
|---|---|---|---|---|
| 无技能 | 43.5 | +0.0 | 0 | 0 |
| 只用学生轨迹 | 60.1 | +16.6 | 96 | 6821 |
| 只用教师轨迹 | 58.3 | +14.8 | 80 | 5683 |
| 打包处理 | 59.4 | +15.9 | 46 | 3849 |
| 单次对比不迭代 | 59.0 | +15.5 | 85 | 6966 |
| **完整 SKILL-KD** | **66.8** | **+23.4** | **38** | **3010** |
这张表最有意思的地方在于最后两列。完整版的 SKILL-KD 用了最少的规则数(38条)、最少的词数(3010词),却拿到了最高的分数。这说明这套系统不是靠"堆规则"取胜,而是真正找到了少而精的关键规则,反而是那些没有经过充分验证的方法,攒出来一堆又长又乱的规则,效果还不如精简版。
这就好比整理书架。一种做法是把家里所有看过的书全塞进书架,越堆越多,但真正要用的时候翻半天找不到;另一种做法是定期筛选,只留下真正常翻的那几十本,摆放清晰。表面上书少了,但找书的效率和实际用处反而更高。SKILL-KD 走的就是后一条路,它不追求技能条数越多越好,追求的是每条技能都被验证过、都确实有用。
写在后面
读完这篇论文,最让我意外的一个数据点是那个 46.1%:教师模型在学生失败的题目上,自己也只能做对不到一半。这其实推翻了一个我下意识的假设,我一直以为"教师蒸馏学生"这套框架默认教师是全知全能的裁判,实际上教师也会犯错,而这篇论文完全接纳了这一点,甚至把教师的失败轨迹也当成有效素材来用。这是一个挺务实的设计,承认了强模型也有边界,学习信号不来自于"谁绝对正确",而来自于"两者的分歧点在哪"。
另一个值得单拎出来的细节是那三种技能漂移的分类,案例特定漂移、技能膨胀漂移、破坏性更新漂移。这套分类框架其实可以套用到很多"知识积累系统"上,不只是 AI 技能库,公司内部的 wiki 文档、团队的最佳实践手册,甚至个人的读书笔记系统,长期不加整理都会滑向这三种病态。这篇论文提供的解法(保留证据链、追溯历史再决策)算是给这类通病开了一张具体的处方。
论文没有回答的一个问题是:当技能库积累到成百上千条规则、无法整个塞进提示词的时候该怎么办。目前的做法是把整个技能文件都喂给模型看,这在规则量不大的时候没问题,但如果规模继续扩大,检索和路由的问题迟早会浮现。这大概是留给后续工作的一个明确方向。
Q&A
Q1:SKILL-KD 和之前的技能学习方法最大的区别是什么?
A:之前的方法要么只从学生自己的失败经验里总结教训,要么直接照搬教师模型的成功示范,SKILL-KD 的核心区别在于它专门对比学生失败轨迹和教师轨迹之间的差距,把这个"能落地的差距"提炼成技能补丁,而且会反复用学生模型重新测试这条补丁是否真的有效,无效就继续修改,而不是一次性总结完就算数。
Q2:SKILL-KD 需要重新训练模型吗?
A:不需要。SKILL-KD 全程不改动学生模型的参数,学生模型是完全冻结的,所有的改进都通过在提示词里追加一份文字形式的技能库来实现,这也是它能在不同模型家族之间(比如通义千问和 ChatGPT)通用的原因,因为它不依赖模型内部的权重结构。
Q3:技能库会不会越用越乱,越加规则效果越差?
A:这正是论文重点解决的问题,叫做技能漂移。SKILL-KD 用一套带证据链的编辑日志机制来应对,每条技能修改都会记录背后的具体案例和修改理由,整合智能体在做新的修改决策时会先回溯历史证据,判断该新增、修改、删除还是直接跳过,这样技能库能保持精简但依然有效,实验中完整版本用了最少的规则数却拿到了最高分数。
好文章,需要你的鼓励
ARCHead是一种专门压缩大语言模型输出层的方法,通过量化低秩核心与激活度量修正,将LM-head存储压缩至BF16的约25%,质量损失极小。
这项研究发现AI投票推理在多答案问题上会系统性失效,提出用因果数学规则直接验证候选答案的CALVER方法,准确率比投票提升约11至19个百分点,且差距随尝试次数持续扩大。
这项来自港科大与腾讯视频的研究提出WorldCycle框架,通过可逆动作循环构造无标注自验证奖励,将视频世界模型的长程漂移误差降低最高44%,复合动作准确率提升约四倍。
哥本哈根大学团队构建了首个同时覆盖三种引用粒度、屏蔽信息泄露、包含全量段落候选库的法律信息检索数据集LegalPincite,用于评估法律判决段落精确检索任务。