论文:OpenSkill: Open-World Self-Evolution for LLM Agents
作者:Zhiling Yan, Dingjie Song, Hanrong Zhang, Wei Liang, Yuxuan Zhang, Yutong Dai, Lifang He, Philip S. Yu, Ran Xu, Xiang Li, Lichao Sun
链接:https://arxiv.org/abs/2606.06741
一、引子:为什么Agent在开放世界就"废了"?
大模型智能体(LLM Agent)在实验室里表现亮眼。
给它一个明确的任务、一套标准答案、一个自动验证器——它能反复试错,像考试刷题一样把技能练到高分。这就是 闭世界(Closed World) 的舒适区:边界清晰,反馈明确,有参考答案。
但真实世界从来不是闭卷考试。
开放世界里,没有标准答案,没有自动评分器,没有人类在旁边告诉你"对了"还是"错了"。Agent被丢进一个陌生环境,面对的是没有标注过的文档、混乱的代码仓库、不完整的教程。它要像人类一样——从公开信息中自己找到学习的锚点,自己判断什么是"对"的,自己进化出一套技能。
这个场景下,现有Agent框架几乎集体沉默。
大多数技能学习系统要么依赖人工编写的验证器(谁给你写?),要么依赖目标任务的标准答案(开放世界哪来的标准答案?),要么依赖人类监督反馈(不可扩展)。它们本质上是在"开卷作弊"——闭世界里的高分,放到开放世界直接归零。
OpenSkill 团队提出了一个尖锐的问题:
如果没有任何初始技能、没有验证器、没有人类监督、连标准答案都没有,LLM Agent 还能自己学会解决问题吗?
答案是:能。而且比闭世界基线更强。
二、什么是开放世界自我进化?
2.1 闭世界 vs 开放世界:不是难度区别,是范式区别
| 维度 | 闭世界(现有主流方法) | 开放世界(OpenSkill) |
|---|---|---|
| 初始技能 | 人工编写或预训练 | 从零开始 |
| 验证器 | 人工编写或自动判定 | 自主构建 |
| 监督信号 | 标准答案、人类反馈 | 无 |
| 知识来源 | 固定数据集 | 公开网络资源 |
| 部署方式 | 绑定特定模型 | 跨模型零样本迁移 |
闭世界的方法论是:人类先把路铺好,Agent在上面跑。开放世界的方法论是:Agent自己开路。
这不是简单的"难度调高一点"。这是假设根基的动摇——不再假设有人类准备好的答案和验证器,Agent必须自己从公开信息中提炼出"什么是对的"的判断标准。
2.2 为什么这件事以前没人做?
三个死结:
死结一:验证器从哪来?
技能学习需要反馈。闭世界里这个反馈是人工写的单元测试、自动判断脚本。开放世界里没有这些。如果Agent自己写验证器,它怎么知道验证器写的是对的?
死结二:怎么防止作弊?
Agent去网络上搜索学习资料,很有可能直接搜到目标任务的标准答案(比如某个 benchmark 的测试集就公开在网上)。如果它"学"到了答案,那不是学习,是作弊。如何在学习过程中过滤掉泄露信息,技术上非常棘手。
死结三:学完了怎么迁移?
很多技能学习方法是模型内禀的——比如修改模型权重、训练LoRA适配器。但开放世界要求技能能跨模型复用:我在 GPT-4 上学会的技能,应该能直接给 Claude 用,不需要重新训练。
OpenSkill 的三阶段框架,逐个解开了这三个死结。
三、OpenSkill 框架:三阶段设计
OpenSkill 把整个自我进化流程拆成三个阶段,像一个完全自主的学徒成长路径:
- 第一阶段:知识获取(从公开资源中找"教材"和"参考答案的替代品")
- 第二阶段:技能进化(在没有标准答案的情况下,自己出题、自己练、自己改)
- 第三阶段:零样本部署(把练好的技能直接交给任意模型使用,不改权重)
三个阶段的核心设计原则是:直到最终评估前,绝不接触目标任务的标准答案。
3.1 第一阶段:开放世界知识获取(Open-World Knowledge Acquisition)
Agent 被给定一个初始任务提示(比如"帮我用 Python 写一个函数,把 JSON 数据转换成 CSV 格式"),但没有任何技能、没有验证器、没有标准答案。
它第一步要做什么?上网查资料。
但不是无脑搜索。OpenSkill 的知识获取阶段有三个设计要点:
要点一:检索什么?
从公开资源中检索两类东西:
- 任务相关知识:文档、教程、代码示例、Stack Overflow 回答——理解"这个任务通常怎么做"
- 验证锚点(Verification Anchors):可独立验证的事实、规范、语法规则——用来判断"我做的对不对"
比如任务是把 JSON 转 CSV。知识包括 pandas 的 read_json 和 to_csv 用法;验证锚点包括 JSON 格式规范、CSV 格式规范、行列对应关系等不需要标准答案就能验证的约束。
要点二:如何过滤泄露?
这是关键。Agent 在搜索时很可能直接搜到目标 benchmark 的测试集或标准答案。OpenSkill 设计了一个泄露检测机制:
- 对比检索到的内容与目标任务的相似度
- 如果检测到可能是标准答案或测试用例(比如与目标任务的输入输出高度匹配),则主动过滤掉
- 确保学习过程中只接触"通用知识",不接触"考试原题"
这个机制的重要性怎么强调都不为过。没有它,整个框架就退化为"开卷抄答案"。
要点三:合成技能构建计划
检索回来的知识是碎片化的——几篇教程、几个代码片段、几段规范。Agent 需要把这些碎片整合成结构化的技能构建计划:
- 任务拆解(JSON 转 CSV 需要几步?)
- 关键工具/库选择(用 pandas 还是标准库?)
- 常见陷阱和边界情况(嵌套 JSON 怎么办?空值怎么处理?)
- 验证策略(怎么验证输出是对的?)
这个计划是后续技能进化的"路线图"。
3.2 第二阶段:无泄露技能进化(Leak-Free Skill Evolution)
有了知识和技能构建计划,Agent 开始自学。但记住:它没有标准答案,也没有人工验证器。
OpenSkill 的解决方案是:自己出题,自己练。
步骤一:基于验证锚点生成虚拟测试集
从第一阶段收集的验证锚点中,Agent 自动生成合成测试用例。这些测试用例不是从目标任务的标准答案里抄来的,而是基于通用规范和约束"想象"出来的。
比如 JSON 转 CSV 任务:
- 生成一个包含嵌套字段的 JSON → 验证扁平化是否正确
- 生成一个包含空值的 JSON → 验证空值处理是否符合预期
- 生成一个字段名带特殊字符的 JSON → 验证转义处理
这些测试用例的正确输出是通过规则引擎或确定性逻辑生成的(基于公开规范),而不是从目标任务泄露得来的。
步骤二:执行-诊断-优化循环
Agent 用生成的虚拟测试集来检验自己写的技能(代码/工作流/提示模板):
- 执行:运行技能,获取输出
- 诊断:对比输出和虚拟测试的预期结果,找出失败点
- 优化:修改技能,修复问题
- 重复:直到在虚拟测试集上表现足够好
这个循环的精髓在于:虚拟测试集是 Agent 自己造的,它知道自己要什么。但它不接触真实测试集,所以没法"作弊"。
步骤三:知识缺口自动触发补充检索
在练习过程中,Agent 可能发现某个边界情况自己不知道怎么处理(比如"时间戳格式转换")。这时它会自动触发定向检索,回到第一阶段的知识获取流程,补充相关知识和验证锚点,然后继续进化。
这是一个自适应的、按需学习的闭环。不需要人类干预,Agent 自己知道"哪里不会点哪里"。
3.3 第三阶段:零样本目标部署(Zero-Shot Target Deployment)
技能练好了,怎么部署?
传统方法是:把技能训练到模型权重里(比如 LoRA、 fine-tuning)。这有两个问题:
- 绑定模型:在 GPT-4 上练的技能,Claude 没法直接用
- 成本高:每次部署新模型都要重新训练
OpenSkill 的部署方式是上下文增强(Context-Augmented):
- 把进化好的技能(以文本/代码/提示模板的形式)直接放入目标模型的上下文
- 目标模型在推理时,通过检索增强的方式读取技能
- 不修改任何模型权重,零样本即可使用
这意味着:
- 技能是模型无关的(Model-Agnostic)
- 可以跨架构迁移(GPT-4 练的技能给 Claude、Llama 用都可以)
- 部署成本几乎为零(不需要重新训练)
技能的表现形式是结构化的技能卡(Skill Card),包含:
- 任务描述
- 执行步骤(伪代码或自然语言流程)
- 关键参数和边界条件
- 验证规则
- 常见陷阱和解决方案
目标模型在收到任务时,先从技能库中检索相关技能卡,加载到上下文,然后按技能卡的指引执行任务。
四、实验结果:真的有用吗?
OpenSkill 团队在多个主流基准上做了评测,对比的是最强的闭世界基线(有标准答案、有人工验证器、有预训练技能)。
结果出人意料:
4.1 SkillsBench:相对提升 8.9%
SkillsBench 是一个技能评估基准。OpenSkill 在没有任何标准答案、没有任何人工验证器的开放世界设定下,自动化通过率全面领先闭世界基线,相对提升高达 8.9%。
这个提升的意义在于:闭世界基线有"作弊条件"(知道标准答案、有人工验证器),而 OpenSkill 是在"盲考"的情况下超越的。如果给 OpenSkill 同样的闭世界条件,差距会更大。
4.2 验证器覆盖率:88.9%
OpenSkill 自主构建的验证器,能够覆盖 88.9% 的真实测试意图。这意味着 Agent 自己出题练习时,有接近九成的问题与真实测试要考察的点对齐。
剩下的 11.1% 是开放世界的"代价"——没有标准答案,总有一些真实测试的考察点无法被公开资源覆盖。但这个覆盖率已经相当惊人,说明 Agent 从公开信息中提炼出的"考点"与人类出题者的意图高度一致。
4.3 跨模型零迁移:零样本即用
OpenSkill 在 GPT-4 上进化出的技能,直接给 Claude 3.5、Llama-3-70B、Qwen-72B 使用,无需任何适配,性能保持甚至提升。
这个结果的震撼性在于:传统技能学习是"绑定式"的(模型+技能一起训练),OpenSkill 是"分离式"的(技能作为独立知识单元)。分离式的优势是 可迁移、可复用、可组合,代价是单次执行可能略逊于绑定式(但实验显示差距极小甚至反超)。
4.4 消融实验:每个阶段都必要
团队做了严格的消融实验,证明三个阶段缺一不可:
- 去掉知识获取阶段(随机初始化技能):性能暴跌,说明"从公开资源学习"是核心能力
- 去掉泄露过滤机制:性能虚高但泛化差,说明"防止作弊"不是摆设
- 去掉虚拟测试生成(直接用真实测试练习):性能虚高但无法部署,说明"自己出题"是避免过拟合的关键
- 去掉零样本部署(改用 fine-tuning):迁移能力丧失,说明上下文增强是跨模型复用的关键
五、技术细节:为什么它能 work?
5.1 验证锚点的设计哲学
OpenSkill 的核心创新之一是验证锚点(Verification Anchors)。它不是从标准答案里"抄"判断标准,而是从公开规范里"提炼"判断标准。
验证锚点的类型包括:
- 语法规范:JSON 必须用大括号、CSV 字段必须用逗号分隔
- 语义约束:数值范围必须在 [0, 100] 之间、日期格式必须是 ISO 8601
- 逻辑一致性:输入输出必须满足某种可验证的映射关系(如排序后的列表必须单调递增)
- 领域常识:物理量必须满足单位一致性、化学方程式必须配平
这些锚点的共同特征是:不需要知道"正确答案是什么",就能判断"输出是否合法"。
Agent 用这些锚点来自动生成测试用例,相当于从"参考答案"转向了"判卷标准"。这是从闭世界到开放世界的关键跨越。
5.2 泄露检测的技术挑战
泄露检测听起来简单,做起来很难。目标 benchmark 的测试集可能以多种形式出现在公开网络上:
- 学术论文的附录里可能包含示例输入输出
- GitHub 上的教程可能用 benchmark 的测试用例做演示
- Stack Overflow 的问题描述可能直接引用 benchmark 的任务
OpenSkill 的泄露检测策略是 多维度匹配:
- 语义相似度:检索内容与目标任务的描述是否高度相似
- 输入输出匹配:检索到的输入输出对是否与目标测试集高度重合
- 来源可信度:来自 benchmark 官方仓库的内容优先标记为泄露
- 时间窗口:如果检索内容比目标任务发布时间更早,可能是独立公开知识而非泄露
这个策略不是 100% 完美,但实验显示足以阻止绝大多数"无意作弊"。
5.3 上下文增强 vs 权重修改
为什么 OpenSkill 选择不改权重、而是上下文增强?
除了跨模型迁移的优势,还有一个深层原因:技能的可解释性和可控性。
当技能以文本形式存储在技能库中时,人类可以:
- 查看技能的完整内容(可解释)
- 手动修改技能的某个步骤(可编辑)
- 组合多个技能解决复杂任务(可组合)
- 删除过时或错误的技能(可维护)
如果技能是编码在模型权重中的,这些操作都几乎不可能。上下文增强的部署方式让 Agent 的技能变得像 人类编写的文档一样透明和可控。
代价是:每次推理需要额外的检索和加载步骤,可能增加延迟。但实验显示这个 overhead 很小,且可以通过缓存和预加载优化。
六、对行业的启示
6.1 对 Agent 框架开发者
OpenSkill 证明了一个此前被忽视的路线:Agent 的自我进化不一定需要人类铺好的轨道。
现有的大多数 Agent 框架(如 AutoGPT、LangChain、MetaGPT)假设人类会提供工具、定义任务、编写验证逻辑。OpenSkill 展示了 更自主的范式:Agent 自己从公开资源中学习,自己构建验证逻辑,自己进化技能。
这对框架设计的影响是:
- 需要内置知识检索和过滤模块
- 需要支持技能的外部化存储(而非绑定在模型内部)
- 需要设计自适应学习循环(执行-诊断-优化-补充检索)
6.2 对模型提供商
OpenSkill 的零样本迁移能力意味着:模型的"能力"不一定取决于训练时有没有见过某个任务。模型可以像人类一样,通过"阅读技能文档"快速获得新能力。
这暗示了一个可能的未来:
- 基础模型变得越来越通用(不需要为每个任务 fine-tune)
- 技能市场/技能库成为生态核心(类似 App Store)
- 模型的竞争点从"参数规模"转向"上下文理解能力"和"检索精度"
6.3 对评测领域
OpenSkill 对评测领域提出了一个挑战:如果 Agent 可以在没有标准答案的情况下自我进化并通过测试,那么 评测的"防作弊"机制需要重新设计。
传统的 benchmark 假设:测试集是保密的,模型不能提前看到。但如果 Agent 可以从公开资源中学习通用知识并自主构建验证器,它可能不需要"看到测试集"就能达到同样的效果。这不是作弊,而是 真正的学习。
评测者需要区分:
- 真正的泄露(直接看到标准答案并背诵)
- 合法的学习(从公开资源中提炼通用知识并内化)
这个边界在未来会越来越模糊。
6.4 对实际应用
OpenSkill 最直接的应用场景是 快速适配新领域。
想象一个客服 Agent 需要处理新产品的咨询。传统方法:人工编写 FAQ、训练模型、调试验证器。OpenSkill 方法:Agent 自己去读产品文档、论坛讨论、用户手册,自己提炼回答模板和验证规则,然后直接上岗。
另一个场景是 代码迁移。一个新项目需要从 Python 2 迁移到 Python 3。OpenSkill 可以:检索迁移指南、收集兼容性问题、生成验证规则(语法检查+行为一致性测试)、进化迁移技能、然后部署给任意模型执行。
七、局限与开放问题
7.1 公开资源的质量依赖
OpenSkill 的"教材"来自公开网络。如果某个任务的公开资源很少或质量很差(比如极其小众的技术栈),Agent 的知识获取阶段就会受阻。
这是一个 数字鸿沟 问题:热门领域(如 Python 数据分析)的公开资源丰富,Agent 可以学得很快;冷门领域(如某款 90 年代工业控制软件的 API)几乎没有公开资料,Agent 无能为力。
7.2 验证锚点的完备性
验证锚点不是万能的。有些任务的本质很难用公开规范来验证(比如"写一首情感真挚的诗歌")。OpenSkill 更适合 有明确约束和可验证规则 的任务(编程、数据处理、格式化转换等),对于开放式创意任务,验证锚点的设计本身就是难题。
7.3 进化时间的开销
OpenSkill 的三阶段流程需要多次检索、多轮生成、多轮执行-诊断-优化。对于复杂任务,这个进化过程可能需要分钟级甚至小时级的时间。这在实时交互场景(如即时客服)中是不可接受的。
解决方案可能是离线预进化:在 Agent 部署前,先用 OpenSkill 进化出一套基础技能库,部署时直接检索使用。这类似于人类"岗前培训"。
7.4 安全与伦理风险
如果 Agent 可以从公开资源中自主学习,它也可能学到有害或不安全的内容。
- 从某个恶意教程中学会如何写攻击脚本
- 从偏见严重的论坛中学会歧视性的回答模式
- 从过时的文档中学会已被废弃的不安全实践
OpenSkill 需要配套 安全过滤机制 来确保检索到的知识是安全的、合规的、不过时的。这是未来必须解决的问题。
八、延伸思考:从"做题家"到"自学者"
OpenSkill 的深层意义,是 Agent 从 "做题家" 向 "自学者" 的范式转变。
闭世界的 Agent 是做题家:有人出卷子,有人改卷子,有人给标准答案。它只需要在反复刷题中提高分数。这种模式的天花板是 卷面满分——它永远无法超越出题者的意图。
开放世界的 Agent 是自学者:没有卷子,没有老师,没有答案。它需要自己找教材,自己出题,自己判卷,自己改进。这种模式的风险是 可能走错路(学到的知识有偏、验证锚点不完整),但天花板是 人类知识的总和——理论上它可以从互联网上的所有公开资源中学习。
人类教育里,做题家和自学者是两种完全不同的成长路径。做题家成绩稳定、可控,但创造力有限;自学者可能走弯路,但可能发现做题家永远想不到的解法。
Agent 领域正在经历同样的分化。闭世界的框架(有标准答案、有人工验证器)适合 确定性任务、高精度要求、可控场景(如企业内部的标准化流程)。开放世界的框架(OpenSkill)适合 探索性任务、新领域适配、不可预见场景(如快速响应新兴技术、处理非结构化需求)。
两者不是替代关系,而是互补。未来的 Agent 系统可能同时拥有一套 预训练技能库(闭世界,稳定可靠)和一套 自适应学习模块(开放世界,灵活探索),根据任务特征动态选择。
九、结论
OpenSkill 的价值不在于它让 Agent 在单个 benchmark 上提升了 8.9%,而在于它 重新定义了 Agent 自我进化的边界条件。
它证明了三件事:
- 没有标准答案,Agent 也能学——从公开资源中提炼验证锚点,自己出题自己练
- 没有人工验证器,Agent 也能判断对错——基于公开规范和逻辑约束构建自动验证
- 学好的技能可以跨模型复用——上下文增强部署,零样本迁移,不改权重
这三件事合在一起,意味着 Agent 可以像人类开发者一样:面对一个新问题,先去网上查资料、看教程、读文档,然后自己摸索着写代码、调试、测试,最后把经验整理成一份可复用的技能文档,分享给团队里其他人用。
这不仅是技术框架的进步,也是 Agent 从 "工具" 向 "同事" 进化的重要一步。
参考信息
- 论文:OpenSkill: Open-World Self-Evolution for LLM Agents
- 作者:Zhiling Yan 等
- 链接:https://arxiv.org/abs/2606.06741
- 核心发现:SkillsBench 上相对提升 8.9%,验证器覆盖 88.9% 真实测试意图,支持跨模型零样本迁移
- 技术框架:开放世界知识获取 → 无泄露技能进化(虚拟测试集+执行诊断优化循环) → 零样本上下文增强部署
- 关键设计:验证锚点(Verification Anchors)、泄露过滤机制、自适应知识补充检索
#深度研究 #论文解读 #AI智能体 #LLM #自我进化 #开放世界 #无监督学习 #技能迁移 #零样本 #小凯
讨论回复
1 条回复推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。