首页 > 教程攻略 > ai资讯 >从上下文中自动提取Skill!清华等提出 Ctx2Skill,上下文学习新方案

从上下文中自动提取Skill!清华等提出 Ctx2Skill,上下文学习新方案

来源:互联网 时间:2026-06-11 13:44:53

从复杂文档中提炼规则、流程与约束,让大模型真正掌握可复用的技能,Ctx2Skill 提供了一种无需人工标注的自动化学习方案。

一句话讲清楚?

Ctx2Skill 想解决的是一个很现实的问题:当大模型面对一份很长、很复杂、甚至完全超出参数记忆的文档时,能不能自己从里面提炼出“可复用技能”,以后遇到同类问题直接按技能办事,而不是每次重新硬读一遍上下文。

这篇论文来自清华大学、DeepLang AI、UIUC、复旦大学、香港中文大学等机构。论文题目是《From Context to Skills: Can Language Models Learn from Context Skillfully?》,提出的框架叫

Ctx2Skill

它的目标不是再做一个更花哨的 RAG,也不是让模型多背一点知识,而是把“上下文学习”这件事往前推一步。

传统做法呢?是把上下文一股脑塞进提示词里,让模型边读边答。而 Ctx2Skill 选择了一条不同的路:它先让模型把上下文里的规则、流程、约束、判断标准提炼成自然语言技能;等到后续答题时,模型再带着这份“技能集”去处理任务,而不是临时抱佛脚。

更有意思的是,这套方法不依赖人工标注,也不需要外部环境给出执行反馈。整个技能发现过程靠的是多智能体自博弈:一个模型负责出题,一个模型负责解题,一个模型负责判题。Reasoner 解不出来,就推动它去补技能;Reasoner 全答对了,就推动 Challenger 出更刁钻的题。

听起来有点像“自己给自己出卷子,自己批改,自己总结错题本”。但论文真正难的地方在于:这种自博弈很容易失控。出题方越出越偏,解题方越学越窄,最后技能集看起来很厚,泛化能力反而变差。为了解决这个问题,作者又加了一个

Cross-Time Replay (跨时间重放)

机制,从不同迭代阶段里挑出最平衡的技能集,而不是盲目相信最后一轮。

Ctx2Skill 的直观目标:从复杂上下文中提炼规则和流程,变成模型可复用的自然语言技能。

为什么“从上下文中学技能”越来越重要

大模型今天已经很会“读上下文”了。你给它一段文档、一段规则、一段代码说明,它常常能现场回答得有模有样。

但问题也就在这里:很多真实任务里的上下文,不是几段说明,而是好几万字的长文档、多表格、多步骤流程、领域规则和隐含约束混在一起的“大杂烩”。比如:

• 企业内部 SOP,里面有大量例外情况;
• 医疗、法律、金融场景里的规则手册;
• 科研论文或技术报告里的复杂方法;
• 一个软件系统的接口说明、配置要求和调试经验;
• 一个游戏、仿真系统或业务系统的运行规则。

这类任务要求模型做的不是“检索一句话”,而是理解一整套操作规范,然后举一反三,迁移到新问题上。

论文把这种能力叫做

context learning (上下文学习)

:模型要直接从给定上下文中学到相关知识,而这些知识可能并不存在于它的参数记忆里。

作者指出,已有的路线有两个明显的瓶颈。

第一,人工标注技能太贵。要把一份复杂上下文提炼成技能,标注者必须真正读懂整份材料,还要判断哪些规则重要、哪些步骤可复用、哪些例外不能漏。这个过程的认知负担很高,规模化成本也很难接受。

第二,很多上下文学习任务缺少外部反馈。写代码可以跑测试,数学题可以对答案,游戏环境可以执行动作。但如果模型从一份长文档中抽出一条“技能”,我们很难自动判断它是否忠实、完整、可用。没有反馈,就很难自动优化技能。

Ctx2Skill 的切入点就是:既然没有人工标注,也没有外部反馈,那能不能让模型自己制造反馈?

Ctx2Skill 的核心:用自博弈逼出技能

Ctx2Skill 里最核心的设计,是一个面向技能优化的 self-play loop。它不是简单让模型“总结一下文档”,而是让不同角色围绕同一份上下文不断对抗。

主要角色有三个:

Challenger

:根据上下文生成任务和评分标准;

Reasoner

:根据上下文和当前技能集尝试回答任务;

Judge

:按评分标准判断答案是否通过。

另外还有两类辅助角色:Proposer 和 Generator。Proposer 负责诊断问题,Generator 负责把诊断转成具体技能修改。

这套流程可以拆成六步。

第一步,Challenger 出题。

它拿到原始上下文和自己的 Challenger 技能集,生成若干任务,以及每个任务的评分标准。注意,评分标准很关键,因为后续的反馈都来自于此。

第二步,Reasoner 解题。

Reasoner 拿到上下文、任务和自己的 Reasoner 技能集,生成答案。

第三步,Judge 判题。

Judge 逐条检查评分标准。论文采用的是“全或无”的任务求解定义:只要某个任务有一个评分标准没过,这个任务就不算解决。

第四步,结果分流。

没答好的任务进入失败集合,答好的任务进入成功集合。

第五步,失败推动 Reasoner 学技能。

Reasoner 侧的 Proposer 分析失败案例,判断当前技能集缺了什么知识、规则或流程;Generator 再把这个诊断转成新的自然语言技能。

第六步,成功推动 Challenger 变强。

如果 Reasoner 已经能解决某些任务,Challenger 侧也会总结成功案例,更新自己的出题策略,下次更精准地探测 Reasoner 的薄弱点。

Ctx2Skill 的完整流程:自博弈循环负责产生和改进技能,跨时间重放负责从历史技能候选里挑出更稳的版本。

这才是 Ctx2Skill 和普通自动总结最不一样的地方:它不是只训练答题者,而是连出题者也一起训练。

一套是

Reasoner 技能集

,用来帮助模型理解上下文、解决任务。

另一套是

Challenger 技能集

,用来帮助出题方生成更有效的测试任务和评分标准。

这就形成了一个动态对抗系统。Reasoner 不断补自己的短板,Challenger 也不断升级自己的“考法”。如果只让 Reasoner 更新,任务很快会变得太容易;如果只让 Challenger 变难,Reasoner 又可能被压垮。论文的设计是让两边都进化。

可以把它理解成一个“自动化错题本系统”。区别在于,普通错题本只记录你错了什么,而 Ctx2Skill 还会让出题老师一起进化:当你掌握了旧知识点,老师会换一种角度继续考你。

技能不是向量,而是一份 Markdown

很多人一听“技能”,可能会想到模型参数、LoRA、工具调用脚本,或者某种隐藏向量。但 Ctx2Skill 里的技能非常朴素:就是自然语言 Markdown。

技能会被放进系统提示中,和上下文、任务一起输入模型。这样做有三个好处。

第一,可读。人可以直接检查模型到底总结了什么。

第二,可编辑。如果技能不对,理论上可以人工修。

第三,可迁移。自然语言技能不绑定某个模型内部结构,强模型生成的技能有机会给弱模型用。

这也是论文后面做“技能迁移”实验的原因:如果 GPT-5.1 生成的技能可以帮助 GPT-4.1,那说明技能里确实包含了可复用知识,而不只是某个模型自己的提示词偏好。

最大风险:自博弈会把系统带偏

自博弈听上去很优雅,但它有一个天然风险:对抗会越来越极端。

论文把这个问题叫

Adversarial Collapse (对抗性崩溃)

。它大概会这样发生:

• Challenger 为了难倒 Reasoner,生成越来越刁钻、越来越长、越来越偏的任务;
• Reasoner 为了应对这些任务,开始补越来越具体、越来越局部的技能;
• 技能集变厚了,但学到的是“应付当前出题风格”的技巧;
• 换到真实未见任务上,泛化反而下降。

这很像刷题刷偏了:你可能越来越擅长某个老师的怪题,却不一定真正掌握了知识。

所以 Ctx2Skill 没有直接采用最后一轮技能,而是设计了 Cross-Time Replay。

这个机制会在 self-play 过程中收集两类探针任务。

Hard Probe

:每轮里最难的失败任务;

Easy Probe

:每轮里最简单的成功任务。

等自博弈结束后,系统会拿历史上每一轮的 Reasoner 技能集,重新在 Hard 和 Easy 两类探针上测试。最后选择同时兼顾困难任务和简单任务的技能集。

它不是追求“Hard 分数最高”,也不是追求“Easy 分数最高”,而是看两者的乘积。这样一来,牺牲简单任务去硬啃困难任务的技能集会被惩罚;只会做简单题、不敢碰难题的技能集也会被惩罚。

这个设计很朴素,但可以说是整篇论文里最有工程味的一处:它承认自博弈会带来偏差,然后用历史回放去做选择,而不是相信“迭代越多越好”。

跨时间重放的迭代选择分布显示,早期迭代经常被选中,后期技能不一定更好。

实验基准:CL-bench 有多难?

论文主要在 CL-bench 上做评估。这个基准专门考察模型在复杂上下文里的学习能力。

CL-bench 的规模不小:500 个上下文、1899 个任务、31607 条验证标准。平均每个上下文包含 3.8 个任务,每个任务有 16.6 条标准。平均输入长度是 10.4K tokens,最大达到 65.0K tokens。

任务分成四类:

类别上下文数任务数平均长度
领域知识1906638.3K
规则系统14056612.2K
程序执行1004718.5K
经验模拟7019916.7K

还有一个细节很重要:51.1% 的任务是多轮顺序任务,需要依赖前面任务的回答。这意味着模型不能只做局部匹配,而要维持跨步骤状态。

评估也很严格。一个任务通常有很多条 rubric,只要有一条没过,就不算解出。论文里也观察到,rubric 级别通过率远高于任务级别通过率,说明很多答案不是完全不会,而是经常漏掉某些细节。

这正是技能提炼可能发挥作用的地方:把容易漏的规则、步骤、约束提前整理出来。

主结果:提升不夸张,但很稳定

论文把 Ctx2Skill 和两类基线比较:

Prompting

:直接让模型一次性根据上下文生成技能;

AutoSkill4Doc

:把上下文分窗口提取技能,再重组;

Ctx2Skill

:多智能体自博弈生成和选择技能。

在三个骨干模型上,Ctx2Skill 都带来了整体提升。

模型基础Ctx2Skill提升
GPT-4.111.1%16.5%+5.4
GPT-5.121.1%25.8%+4.7
GPT-5.218.2%21.4%+3.2

如果只看相对提升,GPT-4.1 从 11.1% 到 16.5%,大约是 48.6% 的相对增幅。这个数字很醒目,但也要冷静看:CL-bench 本身很难,绝对求解率仍然不高。

所以这组结果不能解读成一次性能飞跃。它更像是在一个极难基准上证明:把文档先整理成技能,确实比直接硬读更稳。

同时也必须看到,今天的大模型在长上下文、强约束、多步骤任务里仍然很容易漏细节。Ctx2Skill 提高了天花板,但还远没把这类问题打穿。

不同任务类别里,程序任务执行的收益尤其明显。例如 GPT-4.1 在程序执行类任务上从 10.4% 提升到 17.6%,提升 7.2 个百分点;GPT-5.2 也从 19.1% 提升到 25.4%,提升 6.3 个百分点。

这很符合直觉:流程类、规则类任务最适合被整理成“如果遇到 A,就按 B 步骤做;注意 C 例外”的技能。

按子类别看,Ctx2Skill 在 CL-bench 的大多数子任务上都比基础模型更强,其中工作流编排等类别提升尤其明显。

生成的技能质量如何?

性能提升之外,论文还评估了生成技能本身的质量,维度包括简洁性、忠实性、清晰性、有效性、可复用性。

这里的结果很有意思。Ctx2Skill 不只是让下游任务分数变高,技能质量评分也超过 Prompting 和 AutoSkill4Doc。

骨干模型PromptingAutoSkill4DocCtx2Skill
GPT-4.181.886.289.8
GPT-5.190.791.593.6
GPT-5.287.989.792.0

最明显的优势在清晰性和可复用性。换句话说,自博弈不是简单把文档压缩一遍,而是在不断被任务检验的过程中,把技能写得更像“可操作说明”。

这也是这篇论文值得关注的地方:它把“总结上下文”变成了“经任务压力检验的技能编辑”。两者差别很大。

消融实验:Challenger 比想象中重要

消融实验能看出哪些组件真正有用。以 GPT-4.1 为例,完整 Ctx2Skill 的总体分数是 16.5%。

去掉什么分数下降
完整方法16.5%-
无跨时间重放14.7%-1.8
无技能解耦15.9%-0.6
无 Challenger 演化13.8%-2.7
无 Easy 探针15.7%-0.8
无 Hard 探针15.2%-1.3

影响最大的是“去掉 Challenger 技能演化”,下降 2.7 个百分点。GPT-5.1 上这个下降达到 3.3 个百分点。

这说明出题方不是一个辅助模块,而是整个系统的压力来源。Challenger 如果不进化,Reasoner 很快就会在固定考法里局部收敛;只有 Challenger 持续升级,失败案例才会不断暴露新的缺口。

第二重要的是跨时间重放。去掉后,GPT-4.1 下降 1.8 个百分点,GPT-5.1 下降 2.8 个百分点。这个结果支持了前面的判断:自博弈会产生后期过拟合,最后一轮不一定是最好的。

还有一个细节:Hard 探针比 Easy 探针更重要,但两者都不能少。只有 Hard 会让系统追难题,只有 Easy 又容易保守;组合在一起才像一个健康的回放集。

自博弈动态:技能会变多,但不一定越多越好

论文还分析了 self-play 过程中任务、答案和技能集的变化。

以 GPT-4.1 为例,任务级解决率从 Iter-1 的 18.2% 上升到 Iter-5 的 23.3%,看起来 Reasoner 在变强。但失败率始终超过 76%,说明 Challenger 仍然能制造足够压力。

GPT-5.2 的现象更有戏剧性:任务解决率从 Iter-1 的 36.1% 下降到 Iter-4 的 23.0%,之后略微回升到 23.7%。这就是论文说的对抗性崩溃。强模型的 Challenger 可能更会“刁难”,导致任务复杂度上升过快。

任务长度也支持这个判断。GPT-5.2 的 Challenger 任务平均长度从 69.1 词涨到 139.1 词,增长 101%。相比之下,GPT-4.1 增长 28%,GPT-5.1 增长 30%。

技能集字数同样一路上涨。GPT-5.1 的技能集中位数从 Iter-1 的 1235 词涨到 Iter-5 的 6447 词。但跨时间重放最后选中的版本中位数是 3682 词,而不是最长版本。

这件事有一个很直接的启发:在智能体系统里,记忆和技能不是越多越好。过长的技能集会带来噪声、冗余和过拟合。真正有价值的是“恰好足够”的技能。

技能迁移:强模型写的技能更通用

论文还做了跨模型技能迁移实验。

结果显示,GPT-5.1 生成的技能迁移给 GPT-4.1 后,GPT-4.1 的性能是 16.1%,只比使用自己技能的 16.5% 低 0.4 个百分点。

反过来,GPT-4.1 的技能迁移给 GPT-5.1 后,GPT-5.1 的性能是 23.1%,低于使用自己技能的 25.8%,差距 2.7 个百分点。

这说明强模型生成的技能更容易被弱模型复用;弱模型生成的技能虽然有帮助,但可能不够完整、不够抽象,不能充分释放强模型能力。

这个结果很有实际意义。未来如果企业要为复杂文档构建技能库,可能不需要每次都用最贵的模型执行任务,但可以用更强的模型离线生成技能,再让更便宜的模型在线使用。

和普通 RAG 有什么区别?

Ctx2Skill 不应该被理解成 RAG 的替代品。它更像是 RAG 前后的一个“技能层”。

RAG 解决的是“把相关内容找出来”。Ctx2Skill 解决的是“把内容里的规则和流程变成可复用操作说明”。

举个例子,如果上下文是一份报销制度,RAG 可以帮你找出“交通费”“发片”“审批”的相关段落。但 Ctx2Skill 更像是整理出一份技能:

• 先判断费用类别;
• 再检查是否需要发片;
• 再看金额是否超过审批阈值;
• 如果跨部门,则走特殊流程;
• 如果是补充报销,还要检查前次记录。

这种技能不是某一句原文,而是多段规则的组合。对复杂任务来说,这比单纯检索更接近人类处理文档的方式。

这篇论文的局限

如果把 Ctx2Skill 放进真实产品,首先会担心成本。

它更适合离线把高价值文档做成技能库,而不是每次用户提问时现场跑一轮自博弈。每个上下文都要多轮 self-play,还要生成任务、解题、判题、更新技能,再做跨时间重放。论文设置中 N 为 5,M 为 5,也就是每个上下文至少要经历多次多智能体调用。

第二,它依赖 Judge 质量。如果 Judge 对评分标准理解错了,反馈就会带偏技能演化。论文中 Judge 使用 GPT-5.1,并与 CL-bench 协议保持一致,但现实场景里 Judge 本身也可能需要校验。

第三,技能是自然语言,优点是可读,缺点是仍然可能含糊。对于强形式化任务,可能需要把技能进一步转成可执行规则、测试用例或工作流。

第四,提升幅度稳定但不是压倒性。CL-bench 上绝对求解率仍然较低,说明长上下文复杂推理远没有被解决。

我更看重它的方向,而不是某个分数

这篇论文最值得关注的,不是 GPT-4.1 提升了多少百分点,而是它提出了一种让模型“主动把上下文加工成技能”的路径。

过去我们常见的长上下文使用方式,是把材料塞进去,然后问模型问题。Ctx2Skill 代表另一种思路:先让模型通过自我测试发现上下文里的可复用结构,再把这些结构沉淀成技能。

如果把它放到智能体系统里,这个思路很自然:

• 新接入一个复杂工具,先让智能体读文档并自测;
• 新进入一个业务场景,先让智能体生成场景技能;
• 遇到失败任务,再把失败转成技能更新;
• 定期回放历史任务,防止技能越来越偏。

这其实已经接近“组织知识库自动技能化”的雏形。

尤其喜欢 Cross-Time Replay 这个设计。很多智能体记忆系统都有一个通病:只会往里加,不会判断什么时候该停、该回退、该选择早期版本。Ctx2Skill 用 Hard/Easy 探针给出了一种简单可执行的选择标准。它提醒我们,长期学习系统最难的不是记住更多,而是避免被自己的学习过程带偏。

结语

Ctx2Skill 把上下文学习从“读完就答”推进到“读完、出题、自测、沉淀技能、再答”。

它的实验说明,在 CL-bench 这种长上下文、多规则、强约束任务上,技能化确实能提高模型表现;它的分析也说明,盲目自博弈会崩,需要跨时间回放这样的机制来做平衡选择。

如果未来的 AI Agent 真要长期服务一个团队、一个产品、一个业务系统,它不能每次都从零开始读上下文。它需要把经验沉淀成技能,也需要知道哪些技能仍然可靠,哪些技能只是对过去错误的过拟合。

从这个角度看,Ctx2Skill 的价值不只是“提高几个百分点”,而是给了我们一个更像学习系统的框架:自己出题,自己失败,自己总结,但也要学会回头看。

资源链接

论文页面
https://arxiv.org/abs/2604.27660

相关下载