Google 推出 WikiSkill:用三层架构让 AI Agent 技能持续进化

2 阅读

WikiSkill 是什么

WikiSkill 是 Google Research 最近提出的一个 AI Agent 技能进化框架。它的核心想法很简单:别让 Agent 每次都从零开始试错,而是把过去的经验变成可积累、可复用的知识,再从这些知识里长出真正有用的技能。

Loomy

这个框架最特别的地方在于用了三层结构:

  • Raw Layer:存所有原始执行轨迹,比如 Agent 在任务中每一步做了什么、成功还是失败。这些数据不可变,是后续分析的事实基础。
  • Wiki Layer:把原始轨迹提炼成结构化的知识,比如常见错误模式、有效策略模板。这一层会持续增长,而且永不回滚——哪怕某个技能被否决了,里面总结的经验也不会丢。
  • Skills Layer:存放当前正在用的可执行技能,比如一段具体的代码或操作指令。这一层可以更新、也可以回滚,但每次变更都有记录。

整个系统靠一个四步循环跑起来:Agent 执行任务 → Wiki Maintainer 分析轨迹更新知识库 → Skill Proposer 基于知识提出新技能 → 验证门控决定是否接受。一轮轮下来,Agent 的能力就慢慢“进化”了。

有意思的是,实验发现,一个 90 亿参数的 Qwen-3.5 模型,加上 WikiSkill 后,在多个任务上的表现超过了 270 亿参数的 Qwen-3.6 裸模型。这说明,知识积累有时候比模型大小更管用

四步进化循环怎么转

WikiSkill 的运作依赖一个清晰的迭代流程,每轮都包含四个关键步骤:

  1. Inference Agent 执行 rollout:用当前 Skills Layer 里的技能在训练集上跑一遍,生成完整的执行轨迹,存进 Raw Layer。这些轨迹包括输入、中间步骤、输出,以及是否成功。

  2. Wiki Maintainer 更新知识库:它会从 Raw Layer 里采样一批轨迹(尤其是失败案例),做根因分析。比如发现 Agent 总是在处理 Excel 时忘了先刷新公式,就会在 Wiki Layer 的 patterns/ 目录下新建一个模式文件,描述这个问题和可能的解决思路。同时,更新 logs.mdskill-impact.md,记录这次分析的结论。

  3. Skill Proposer 提出技能更新:它读取 Wiki Layer 的索引、历史影响记录和原始轨迹,用 ReAct(Reason + Act)的方式思考:“既然我们知道这个问题存在,能不能写个具体的操作步骤来解决?”然后提出一个原子性的技能补丁——要么创建新技能,要么修改现有技能,但一次只动一个点。

  4. Gating 验证与门控:候选技能会被放到验证集上测试。如果整体分数提升,就接受并更新到 Skills Layer;如果没提升甚至变差,就回滚,但 Wiki Layer 的知识保留不变。

这个循环的关键在于知识和技能的解耦。技能可以试错、可以失败,但知识一旦沉淀就不会消失。下次 Proposer 再提方案时,就能看到之前哪些路走不通,避免重复踩坑。

知识为什么能“复利”

WikiSkill 最聪明的设计之一,是让知识具备“复利效应”。这主要靠两个机制实现:

首先是 Wiki Layer 永不回滚。传统方法里,如果一个技能更新导致性能下降,整个状态可能被重置,连带把有用的洞察也删了。但在 WikiSkill 里,即使技能被拒绝,Wiki 里记录的模式、日志和影响分析依然保留。这意味着系统越跑越“聪明”,而不是原地打转。

其次是 skill-impact.md 的审计追踪。这个文件详细记录了每次技能提案的 diff(改动内容)、验证分数变化、以及最终是否被接受。比如某次提案试图用“先搜索再推理”的策略,结果在数学题上得分下降了 5%,这条记录就会被记下来。下次 Proposer 再考虑类似方案时,可以直接看到这个负面结果,从而绕开无效路径。

这种设计让 Agent 的学习过程更像人类专家:不是靠蛮力试错,而是基于已有认知做有方向的探索。长期来看,知识库会越来越厚,技能提案的质量也会越来越高。

技能真的能跨模型迁移吗?

论文里专门验证了这一点,结果挺让人意外:其他模型进化出来的技能,有时比自己进化的效果还好

比如,用 Qwen-3.5-9B 进化出的一套数学解题技能,直接拿给 Llama-3-8B 用,性能提升比 Llama 自己进化出来的技能还高。这说明 WikiSkill 提炼的不是模型专属的“黑箱技巧”,而是具有一定通用性的策略模式。

背后的原因可能是:技能发现(从经验中总结规律)和技能执行(在推理时应用规律)其实是两种能力。大模型可能更擅长执行,但小模型通过结构化知识引导,反而能提炼出更清晰、更可迁移的策略。

这也打开了一个新思路:未来或许会出现“技能市场”,不同团队用不同模型进化出优质技能,然后共享复用,就像开源代码库一样。

实际能用在哪些地方?

WikiSkill 不是纯理论玩具,它针对的是 Agent 在复杂任务中常见的痛点。以下是几个典型场景:

智能办公自动化:比如处理 Excel 表格时,Agent 经常因为单元格公式未刷新而读到旧值。通过 WikiSkill,系统可以沉淀出“在读取前先调用 recalculate()”的工作流,并作为技能固化下来。后续遇到类似表格任务,直接调用即可。

长文档问答:面对几百页的 PDF,Agent 容易在长上下文中迷失。进化后的技能可能包含“先提取目录结构 → 定位相关章节 → 分段检索 → 整合答案”的多步导航策略,显著提升定位准确率。

数学竞赛题求解:把解题过程拆解为“识别题型 → 调用对应定理 → 构造辅助线/变量 → 验证边界条件”等步骤。每次失败案例都会丰富 Wiki 中的反例库,帮助 Proposer 生成更鲁棒的解题模板。

网络信息检索:复杂查询往往需要多轮搜索。进化出的标准操作程序可能是:“初始关键词 → 扩展同义词 → 多源交叉验证 → 过滤矛盾信息 → 结构化输出”。这套流程一旦形成,就能稳定提升召回率和准确性。

虚拟环境中的具身任务:比如在模拟厨房里完成“煮咖啡”任务,Agent 可能反复尝试错误顺序(先倒水再开火)。通过沉淀“检查设备状态 → 按物理逻辑排序动作 → 避免循环操作”等模式,任务成功率会逐步提高。

和微软 SkillOpt 有什么区别?

微软之前也提出了 SkillOpt,同样是让 Agent 技能可进化,但思路不太一样。

SkillOpt 把技能文档当作一个可训练的外部状态,用类似深度学习优化器的方式迭代更新——比如设定“编辑预算”作为文本学习率,控制每次修改的幅度。它依赖一个六阶段流水线(Rollout → Reflect → Aggregate → Select → Update → Evaluate),并通过拒绝编辑缓冲区保存负样本。

而 WikiSkill 更强调知识的持久性和结构性。它明确分出三层,Wiki 层独立存在且永不回滚,知识积累是跨迭代复利的。SkillOpt 则没有独立的知识层,更多是直接对技能文档做增量编辑。

在编辑策略上,WikiSkill 要求每次提案只针对单个技能,做原子性补丁;SkillOpt 支持 add/delete/replace 等结构化编辑,但可能一次改多个点。

两者都用验证集做门控,但 WikiSkill 的优势在于:即使技能被拒,知识仍在,后续迭代能站在更高起点上。这使得它在长期进化中可能更具优势。

小模型逆袭的关键是什么?

实验中最引人注目的结果,是 Qwen-3.5-9B + WikiSkill 超过了 Qwen-3.6-27B 裸模型。这背后其实揭示了一个重要趋势:当模型规模接近瓶颈时,系统设计比参数数量更能决定上限

大模型虽然强,但它在每次推理时都是“孤立”的——上次失败的经验不会自动带到下次。而 WikiSkill 给小模型装了一个“外挂大脑”,让它能站在自己过去所有尝试的肩膀上思考。

更重要的是,这个外挂是结构化的。不是简单存 log,而是提炼成可读、可查、可推理的知识模式。这让 Proposer 能高效地从海量经验中找到真正有价值的信号,而不是被噪声淹没。

换句话说,WikiSkill 把“经验”转化成了“智慧”,而不仅仅是“数据”。这正是小模型能逆袭的核心。

开源与后续

目前 WikiSkill 的技术论文已发布在 arXiv(编号 2608.27454),但官方尚未开源代码。不过框架本身设计清晰,三层目录结构(raw/、wiki/、skills/)和核心组件(Maintainer、Proposer、Gating)都很容易复现。

对于开发者来说,可以尝试在自己的 Agent 项目中引入类似机制:先记录所有轨迹,再定期做模式挖掘,最后生成可验证的技能补丁。哪怕不用完整的 WikiSkill,光是“知识永不回滚”这一条,就能避免大量重复试错。

长远看,这类框架可能会成为 Agent 系统的标配——毕竟,真正的智能不是一次性的爆发,而是持续的积累与进化。