返回博客列表

WikiSkill 深度解读:Google Research 把 Agent 经验编译进持久知识层,让 Skill 越用越强还能跨模型迁移

2026-08-30T12:00:00+08:00
WikiSkillAgent SkillGoogle Research自进化 Agent持久知识库技能迁移arXiv 2608.27454

WikiSkill 深度解读:Google Research 把 Agent 经验编译进持久知识层,让 Skill 越用越强还能跨模型迁移

看完你会怀疑之前做 Agent Skill 的方式可能一直是错的。先收藏,做 Agent 工程早晚用得上。

本文提纲

  1. 问题:现有 Skill 进化方案的知识散落在优化历史里,无法系统化复用
  2. WikiSkill 三层知识架构:Raw → Wiki → Skills,灵感来自 Karpathy 的 LLM Wiki 设想
  3. 四大进化组件:Inference Agent、Wiki Maintainer、Skill Proposer、Gating & Rollback
  4. 实验一:5 个模型 × 5 个 benchmark,WikiSkill 全面胜出,大模型收益更大
  5. 最有意思的发现:9B 带进化 Skill 吊打裸 27B;跨模型迁移 Skill 比自进化更强
  6. 消融实验与案例分析:持久 Wiki 是核心,Agent 推理时访问 Wiki 反而有害
  7. 和 Warp Skills、Claude Skills 体系的关联与区别
  8. 对工程落地的启发:为什么你的 Agent Skill 仓库应该加一个 Wiki/

问题:为什么之前的 Skill 进化方案总是差点意思

Agent Skill 这个概念大家应该都不陌生了——把领域知识、工作流、脚本打成可复用的文件系统模块,Agent 跑任务时按需加载,不需要改模型参数。Claude Code Skills、Warp Improver 体系、我们之前报道过的 OpenOPC 技能都属于这条路线。

但 Skill 有个老大难问题:怎么让 Skill 自己越变越好?

过去的方案大致三种:

  • EvoSkill:保存历史所有 proposal + 评估结果,下次进化时参考
  • Trace2Skill:从成功/失败轨迹里抽经验,合并进 Skill 更新
  • SkillOpt:用被拒绝的编辑反馈 + epoch 级元引导做优化

Google Research 的作者点出了它们的共同软肋:学到的洞见散落在优化历史里,没有形成独立、持续演化的知识表示。 每次进化都像是在"重新发现轮子",因为上一轮学到的模式没有被系统地沉淀下来供下一代 Skill 构建者直接使用。

论文引用了 Karpathy 2026 年的"LLM Wiki"观点——把经验编译进持久、可复利的知识库。WikiSkill 把这个想法落地成了具体的工程框架。


WikiSkill 三层知识架构

WikiSkill 的第一个创新是把 Agent 工作区严格分成三层。简单理解就是"数据 → 知识 → 行动"的层层递进。

graph LR
    subgraph "Three-Layer Knowledge Architecture"
        R[Raw Layer\nraw/\nImmutable Traces\nObservations+Tool Calls+Reasoning]
        W[Wiki Layer\nwiki/\nPersistent KB\nPatterns Anti-patterns Applicability]
        S[Skills Layer\nskills/\nExecutable Procedural\nSKILL.md + Scripts]
    end
    R -->|Wiki Maintainer\nConsolidates| W
    W -->|Skill Proposer\nGuides updates| S
    S -->|Inference Agent\nInjects at runtime| T[Task Rollout Execution]
    T --> R

    classDef raw fill:#FF6B6B,color:#000000
    classDef wiki fill:#4ECDC4,color:#000000
    classDef skill fill:#45B7D1,color:#000000
    classDef exec fill:#FFEAA7,color:#000000
    class R raw
    class W wiki
    class S skill
    class T exec
目录 内容 特性
Raw Layer (raw/) 原始执行轨迹 完整 step-by-step 交互:推理、工具调用、工具输出、最终答案 不可变,写后只读,像仓库的 git log
Wiki Layer (wiki/) 结构化知识库 模式(patterns)、反模式(anti-patterns)、适用条件(applicability conditions) 持久、跨轮迭代复利,不会被 rollback
Skills Layer (skills/) 可执行过程知识 每个 Skill 是一个目录:SKILL.md(frontmatter 含唯一名称+简短描述 + 过程指令 + 适用条件) + 资源脚本 可被 gating 回滚,是过程知识的"发布版本"

三层的核心关系是:

  • Raw 层是"证据",不做解释,只忠实记录
  • Wiki 层是"经验总结",从证据里提炼出通用模式和禁忌,永远只增不减
  • Skills 层是"可执行的操作手册",根据 Wiki 的积累来编写和优化

为什么一定要有 Wiki 这一层?因为直接从 Raw 轨迹生成 Skill 会反复犯同样的错误——没有统一的知识层,Skill 提案者每次都像第一次做这件事。Wiki 的存在让第 20 轮进化能站在之前 19 轮的肩膀上。


四大进化组件:Wiki 是怎么被维护的,Skill 是怎么被提出来的

在每一轮进化迭代中,WikiSkill 跑四个独立 Agent 组件,组成一个闭环。

组件一:Inference Agent — 带 Skills 跑 rollout,但被禁止访问 Wiki

推理 Agent 带着当前活跃的 Skills 在训练任务上跑 rollout,产出 Raw 轨迹。

反直觉设计:推理时刻意不让 Agent 访问 Wiki。论文的消融实验证实了这个设计——如果推理 Agent 在任务执行时能查 Wiki,最终 Skill 质量反而下降。这是因为模型会养成"过度依赖 Wiki 查经验"的惰性,不再认真通过 Skill 学习内化出好的执行习惯。

组件二:Wiki Maintainer — 把轨迹合并进 Wiki

这是整个系统最"知识工程"的角色。它做的事:

  1. 读取本轮 Raw 轨迹,分析成功和失败的模式
  2. 去重和合并:已存在的 Wiki 条目在证据支持下迭代,而不是重复写新条目
  3. 结构化分类:新发现的模式归到 patterns,踩了的坑归到 anti-patterns,什么情况下该用某条知识归到 applicability conditions
  4. 这个 Agent 不能回滚:Wiki 是持久层,写入就保留

这一步的产物是知识库"越来越厚",且支持是被验证过的——每条 Wiki 条目背后都可以追溯到真实轨迹证据。

组件三:Skill Proposer — 基于 Wiki + Traces 做 ReAct 提案生成 Skill 更新

Skill 提案者可以同时看 Wiki 和本轮 Raw 轨迹,用 ReAct(Thought-Action-Observation)模式提出 Skill 的编辑提案(新增、修改、删除某个 skill 或其内容)。Wiki 在这里的作用是告诉提案者"已经知道什么、试过什么、哪些方式行不通",提案者不需要从零开始猜,相当于站在前 N 轮的集体经验之上。

论文还特别提到 Skill Proposer 可以用"Wiki-informed"的方式——当它想提一个新过程知识时,先查 Wiki 里有没有相关模式的支撑或反例,避免白费力气。这和我们直接让模型 rewrite SKILL.md 的无脑进化方案形成了本质差距。

组件四:Gating and Rollback — 只保留验证集上有提升的 Skill 更新

Skill 提案不是直接生效。Gating Agent 在验证集上跑一次更新后的 Skills,如果分数提升就保留,否则回滚 Skill。但注意:Wiki 不回滚——哪怕这次的 Skill 更新失败了,Wiki Maintainer 写入的模式和反模式依然保留,下一轮提案者可以利用"上次这样改不行"这条知识,提出不同的更新方向。

sequenceDiagram
    participant IA as Inference Agent
    participant Raw as Raw Layer
    participant WM as Wiki Maintainer
    participant Wiki as Wiki Layer
    participant SP as Skill Proposer
    participant Skills as Skills Layer
    participant Gate as Gating Agent
    participant Val as Validation Set

    IA->>Skills: Inject active skills (NO wiki access)
    IA->>Raw: Write execution traces
    Raw->>WM: Feed new traces
    WM->>Wiki: Consolidate patterns + anti-patterns (persist, no rollback)
    Wiki->>SP: Provide accumulated knowledge
    Raw->>SP: Provide raw traces
    SP->>Skills: Propose skill edits (add/update/delete)
    Gate->>Val: Run agent with new skills on D_val
    Val-->>Gate: Score change Δ
    alt Δ > 0
        Gate->>Skills: Accept + commit update
    else Δ ≤ 0
        Gate->>Skills: Rollback skills
        Note over Wiki: Wiki remains unchanged (critical)
    end

这张图就是论文的灵魂:Skills 可能会被回滚,但 Wiki 永远向前,持续积累。系统就像一个不断变聪明的组织——即使某一次尝试失败了,这个失败本身变成了知识库中一条可复用的教训,帮助下次做得更好。


实验一:5 Benchmark × 5 Model,WikiSkill 全面压竞品

测试集

Benchmark 领域 说明
LiveMathematicanBench 数学推理
SealQA Web 搜索问答
SpreadSheetBench 表格操作
OfficeQA 长文档 QA
ALFWorld 具身交互任务

覆盖了从纯文本推理到多轮工具使用到具身环境的不同能力维度。

模型

Qwen-3.5-4B、Qwen-3.5-9B、Qwen-3.6-27B、Gemma-3-12B、Gemini-1.5-Flash,从 4B 到 27B 跨三个模型家族。

对比基线

No Skills(裸 Agent,没有任何 Skill 辅助)、EvoSkillTrace2SkillSkillOpt,加上 WikiSkill。

核心结果

论文给出了一个很强的结论:WikiSkill 在绝大多数模型-benchmark 组合中优于三个 SOTA 方案和 no-skill baseline,且模型越强提升越明显。

Qwen 家族内的缩放效应(按论文原文数据):

  • Qwen-3.5-4B:WikiSkill 相对 no-skill 平均提升 +12.3%
  • Qwen-3.5-9B:提升 +17.5%
  • Qwen-3.6-27B:提升 +23.9%

这个发现很有意思:Skill 进化和模型缩放是互补的,不是替代关系。 越大的模型,越能从"经过进化的好 Skill"中拿到收益。这反过来也意味着,把 Skill 做好对于小模型更有经济意义——因为好的 Skill 能让小模型越级打。


最炸裂的两个发现

发现一:9B + 进化 Skill 吊打裸 27B

论文直接给出了对比:

配置 平均准确率
Qwen-3.6-27B,无 Skill 39.4%
Qwen-3.5-9B,WikiSkill 进化 Skill 47.4%

9B 模型比 27B 模型小了整整 3 倍的参数量,但通过 WikiSkill 进化出的一套 Skill,综合表现反超 8 个百分点。换算到本地推理成本上——9B Q4 量化不到 6GB,消费级 Mac 就能流畅跑;27B Q3 需要 12GB+ 内存,在同一台机器上慢得要死。如果 9B 能跑出更好的结果,谁还会用 27B 裸模型做 Agent 任务?

发现二:跨模型迁移 Skill,可能比模型自己进化更好

这是整篇论文中最令人意外的结果。作者把 A 模型在某个任务上进化好的 Skill,让 B 模型直接用(不重新进化),看效果。

以 ALFWorld 为例:

  • Qwen-3.5-9B 用自己进化的 Skill:63.4%
  • Qwen-3.5-9B 直接用 Qwen-3.6-27B 进化好的 Skill70.2%(+6.8 pp)

27B 模型发现的 Skill,让 9B 模型直接用,效果比 9B 自己从零进化还强。这说明——

技能发现(Skill Discovery)和技能执行(Skill Execution)是两种可以分离的能力。

大模型因为推理能力更强,更擅长"发现正确的过程知识"并将其写成可执行 Skill;写好之后,小模型一样可以按步骤执行,而且效果不差。这个结论对团队落地具有非常现实的意义:完全可以用最强模型(GPT-4o/Claude Opus 级)在私有任务集上进化 Skill 库,然后在便宜的小模型上部署使用。 这把 Skill 从"模型附带品"变成了真正的"可交易资产"。


消融实验:持久 Wiki 是核心;推理时给 Wiki 反而害了模型

论文做了两组关键消融:

消融 1:Persistent Wiki vs 无 Wiki(只用 traces)

对比两种变体:

  • WikiSkill Full(完整方案,有持久 Wiki)
  • No Wiki(去掉 Wiki 层,Skill Proposer 只能看历史 traces 而没有结构化知识库)

结果是** No Wiki 版本性能显著下降**。作者在论文图中明确展示了 Wiki 的持久积累让 Skill 进化曲线始终高于没有 Wiki 的对照组。这验证了最初的假设:把经验编译成结构化、可复利的知识表示,对 Skill 进化的质量至关重要。

消融 2:Inference Agent 推理时允许访问 Wiki

对比:

  • 正常配置:推理 Agent 只能用 Skills,不能查 Wiki
  • Allow Wiki Access:推理时也给 Agent 开放 Wiki 查询

结果反直觉——开放 Wiki 访问后最终 Skill 质量反而下降。原因是模型在推理时"走捷径":本来应该通过内化的 Skill 流程学会正确执行,现在变成了"遇事不决查 Wiki",结果技能本身的掌握程度下降,对 unseen task 的泛化就更差了。

这对工程实践的暗示非常直接:Wiki 应该给 Skill 维护者看,不应该给执行端的 Agent 直接看。执行端的 Agent 必须严格通过 Skill 层与知识交互,才能保证 Skill 本身是经过验证且自包含的。


案例分析:Wiki 如何一步步引导 Skill 进化

论文 5.3 节有一个非常漂亮的 anatomy 案例,展示了多轮进化中 Wiki 和 Skill 的联动动态。我用文字版还原一下:

  • 第 0 轮:没有 Skill,没有 Wiki。Agent 在 100 个训练任务上裸跑,产出 100 条 traces,其中 30 条成功。
  • Wiki Maintainer 写入第一轮 Wiki:从成功的 30 条里抽了"Task 类型 A 通常先调用 X 工具"、"参数 P 不填默认值 Q 会失败"等模式;从失败的 70 条里提炼了"直接调用 Shell 命令处理 CSV 时容易溢出"等反模式。
  • Skill Proposer 看 Wiki + traces,提出第一个 Skill:CSV-Agent,里面写着用 X 工具处理 CSV 的标准流程,并明确注明不要用默认 Q 参数。
  • Gating 验证通过(验证集分数上升),CSV-Agent Skill 被接受。
  • 第 2 轮:推理 Agent 带着 CSV-Agent 再跑 100 个任务,成功率从 30% 提升到 55%。新的失败里暴露了一种之前没见过的"CSV 带 Unicode 字符"的场景。
  • Wiki Maintainer 追加一条新 anti-pattern 和 对应 pattern,不回滚之前的 Skill
  • Skill Proposer 这次能直接从 Wiki 中看到 "CSV Unicode 是已知坑",提出对 CSV-Agent 的编辑:在步骤 2 增加字符清洗预处理。
  • Gating 再次通过,新版本 Skill 正式生效。

多轮之后,你可以想象:Wiki 从空变成了一个关于这个数据集所有"已知正确做法、已知坑、已知适用场景"的完备参考,而 Skills 从空变成了针对该任务类型的一套精简、验证过的操作手册。两者共同成长,且互相支撑。


和 Warp / Claude Skills 体系的关联

这篇论文读下来,我会联想到近期两篇非常有启发的实践文章:

Warp 自改进 Agent(Anthropic 博客,2026.8.26) 中的双层 Skill 架构——内层 Base Skill 执行,外层 Improver Skill 观察反馈提议编辑——恰好是 WikiSkill 思路在生产系统中的一个实例。不过 Warp 方案里没有独立的 "Wiki" 持久层,经验是散落在 AGENTS.md 和改进提案里的。WikiSkill 给了 Warp 一个更完善的下一步:给 Improver 提案者加一个结构化的共享 Wiki。

Claude AI-Native SDLC Playbook(Anthropic,2026.8.21) 中提出的制品链 intent.md → spec.md → plan.md → diff+tests,和 WikiSkill 的三层架构是可以对应上的:intent/spec 属于经验沉淀层(Wiki 类),plan/diff 属于可执行层(Skills 类)。不同的是 Playbook 针对的是软件工程流程,WikiSkill 针对的是 Agent 任务执行。

把这三个东西放在一起看,会发现 2026 年下半年的 Agent 工程有一个明确的趋势:Agent 能力不再只靠模型本身,而是靠持久化的知识体系。


对工程落地的几条真实启发

这篇论文不是那种"原理很美好,工程用不上"的纯研究,里面的设计可以直接抄到你的 Agent 项目里:

  1. 给你的 skills/ 目录加一个同级的 wiki/ 目录。 不要只存 SKILL.md 这种最终产物,所有验证过的模式和反模式写进 wiki/,格式统一(例如每条 pattern 至少有适用条件、反例、轨迹证据引用)。
  2. Skill 进化流程里,永远允许失败的提案留下教训。 团队里常见的误区是:一个 PR 被合入才叫贡献,一个 PR 被拒就当没发生过。WikiSkill 告诉你——"这次这样改验证集分数下降了"本身就是高价值知识,必须写进 Wiki,让下次提案者不会再走同样的死胡同。
  3. 执行端 Agent 不要直连大百科。 文档和 Wiki 是给 Skill 维护者看的,不是给执行时的 Agent 查的。执行端只暴露经过验证、版本化、可回滚的 Skill 接口。这样才能保证 Skill 的质量是可度量的。
  4. 攒一个"大模型发现、小模型执行"的 Skill 共享库。 如果你的团队有 Claude Opus/Claude Code 访问权,先用它在私有任务集上跑 skill 进化,把出来的 skill 库给便宜的 8B/9B 模型用。论文已经证明这通常比小模型自己进化更好,且推理成本差几倍。
  5. 别再用"重写 SKILL.md"当进化手段了。 Trace2Skill 这种直接从轨迹生成 Skill 的模式,没有持久知识做支撑,在论文里被 WikiSkill 稳定压制。正确模式是:先把轨迹沉淀到 Wiki 的结构化知识,再基于 Wiki + 轨迹生成 Skill。

参考文档与链接

论文里有一个结论让我印象最深:"9B 带 Skill > 27B 裸奔"。你的 Agent 系统现在是哪种模式?觉得有用点个赞,欢迎评论区聊聊你们是怎么做 Skill 进化的。


作者: itech001
来源: 公众号:AI人工智能时代(the-ai-era)
网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top

关注公众号,获取更多 AI 技术干货!

分享给朋友