MMG2Skill:把网上现成的多模态攻略,喂成 Agent 自我进化的技能包

arXiv ID:2606.01993 标题:MMG2Skill: Can Agents Distill In-the-Wild Guides into Self-Evolving Skills? 机构:南京大学 + 快手科技 提交日期:2026-06-01

动机图:人类靠看攻略学会做事,Agent 也应该如此

一句话总结

这篇论文做了一件听起来很朴素但工程上极少有人系统做过的事:让 Agent 像人一样,看一眼网上现成的图文教程,就把它压成一份能用、能改、越用越好的"技能卡"。然后他们丢出一个跨 GUI / 游戏 / 策略博弈三域的 Bench,把六个主流 VLM 拉过来比了一轮,结论也很干脆——直接把 raw guide 塞进 prompt 反而会让 Agent 变笨,但走完他们的闭环管线之后,宏平均能稳稳涨 12.8 ~ 25.3 个百分点,最猛的单格涨 33.33pp。

更有意思的是一个反常识结论:模型越强,从这套蒸馏中拿到的相对收益反而越大——这跟"小模型更需要外部知识"的直觉刚好反着来。下面我把整套故事拆开讲。


1. 这事为什么值得做

人类学一个新技能,路径通常是这样的:搜一篇教程、看几张截图、试一遍、错了之后回去翻一下哪一步漏看了、再试,慢慢就学会了。

Agent 现在的现实是:

  • 要么没有先验知识:拿到任务从零探索,环境复杂时基本是抓瞎;
  • 要么有"知识"但不会用:把整篇 wiki / 操作手册原样塞进 context,模型反而被噪声淹了;
  • 要么有"技能库"但靠人工写:之前一些 skill library 工作(如 Voyager 系)的技能是 LLM 直接生成的代码或文本,缺乏从 in-the-wild 多模态指南做语义提炼这一环。

作者把这件事正式定义为一个新问题:Guide-to-Skill Learning——给定一份原始的、面向人类的、带图带步骤的多模态指南 g,目标是产出一个 Agent 可执行、可被自身经验改写的技能 z。

注意"in-the-wild"四个字。这不是清洗过的 SOP 文档,而是 wiki 截图、游戏攻略论坛、Steam 指南、操作录屏这种参差不齐的东西。

2. 核心设计:四步闭环

框架总图:构造→执行→分析→修订的闭环

整套 MMG2Skill 是一个四阶段闭环,每一环都有明确的角色分工。

2.1 Multimodal Skill Construction(构造)

把多模态 guide g 转成一份结构化的 SKILL.md,里面塞四样东西:

  • u:程序步骤(procedural steps),人话写的可执行序列;
  • c:触发条件(conditions),什么状态下该用这个技能;
  • v:状态线索(state cues),描述执行中应该看到什么、看不到什么;
  • q:恢复知识(recovery),出错时怎么救。

这里的关键决定是用 Markdown 而不是代码。代码看着精确但脆——环境一变就改不动;Markdown 是 VLM 的母语,既能让模型读懂、又能让另一个 VLM 直接编辑,天然支持后面的自我进化。

2.2 Skill-Conditioned Execution(执行)

Agent 在跑任务时,不是把所有技能一股脑塞进 prompt,而是按条件 c 检索相关 SKILL.md,按 u 执行,过程中拿 v 做自检("现在看到的画面,跟攻略里描述的状态对得上吗?")。

论文还塞了一个挺实用的小机制:likely_success 早停。Agent 自己判断"我大概率成了"就停,免得在已经赢了的局上空跑步数。这个机制在第 4 节的实验里贡献了 25%~53% 的尝试节省、API 调用减少 23.6%~41.8%——对真要部署的人来说,这是直接的成本数字。

2.3 Analyzer(分析)

执行完一条轨迹之后,Analyzer(也是个 VLM)拿 轨迹本身 去做根因诊断:哪一步偏离了?是条件判错、状态没看对、还是步骤本身有 bug?

这里有个非常硬的约束作者反复强调:Analyzer 永远拿不到 benchmark 分数。它只能基于轨迹做反馈。这个约束决定了整套系统是 self-supervised refinement,而不是变相的"用测试集调技能"。

2.4 Refiner(修订)

Refiner 拿 Analyzer 的诊断,去 编辑 SKILL.md——加一条恢复路径、改一条触发条件、把模糊的状态线索写具体。修订是 patch 级别的,不是整页重写,这样能保留前面已经验证过的内容。

闭环走起来就是:构造一次、执行 N 次、每次失败/部分成功之后改技能、技能越用越准。

修订动态:技能 v1 → v2 → v3 在不同维度上的能力提升

3. Bench 怎么搭的

MMG2Skill-Bench 覆盖三个差异极大的域,故意挑这三个是因为它们对 grounding(把图文对齐到环境)的难度依次递增:

环境 任务示例 grounding 难度
GUI OSWorld(桌面操作) 复杂软件配置、文件编辑流 较低,截图与指南对齐相对直接
Game Minecraft / MineStudio 多步合成、生存任务 中等,3D 场景与攻略图差异大
Strategy RLCard 的斗地主 + 麻将 牌局决策 高,状态是符号+概率,攻略是文字策略

每个域都准备了一批 in-the-wild guide(来自 wiki、攻略站、社区帖等),保留原始格式不做"清洗"。

参与评估的六个 VLM:

  • Claude-Opus-4.6
  • GPT-5.5
  • Claude-Sonnet-4.6
  • Kimi-K2.6
  • Gemini-3.1-Pro
  • Qwen3.6-Plus

每个模型在每个域跑三种条件:vanilla(什么也不给)、Raw Guide(直接把原始指南拼进 prompt)、MMG2Skill(走完整闭环)。

4. 主结果:raw guide 反而会拖后腿

这个表是论文最有冲击力的一张。我把宏平均(六模型平均)整理成下面这版:

vanilla Raw Guide MMG2Skill Δ(MMG2Skill - vanilla)
GUI 基线 +显著正值(指南本身就有用) +大幅提升 +12.8 pp
Game 基线 −1.67 pp +显著提升 +25.3 pp
Strategy 基线 −1.53 pp +显著提升 +约 18 pp

最值得反复看的两行是 Game 和 Strategy 的 Raw Guide 列:直接把指南塞 prompt,平均反而比什么都不给还差。这跟很多人对"多模态 in-context"的朴素期待是反的。作者的解释是:原始指南里有大量对人类有用、对 Agent 是噪声的内容(结构化导航、相关推荐、广告链、跑题段落),而 GUI 域因为攻略和实际操作对得上、Agent 能直接照着点,所以即便 raw 也能涨;Game 和 Strategy 的攻略离实际状态太远,没有提炼就是噪声。

单格最大改进出现在 Gemini-3.1-Pro × Game 域 = +33.33 pp

4.1 模型越强,相对收益反而越大

按论文的 per-model breakdown,最强的两个模型(Claude-Opus-4.6、GPT-5.5)拿到的绝对改进最多。这跟通常"小模型更依赖外部知识"的直觉相反,作者给的解释挺有说服力:

  • 弱模型连 Analyzer / Refiner 这两步都做不好,闭环跑不起来;
  • 强模型能够准确诊断"我刚才在第 3 步看错了什么",于是技能修订的质量更高,循环越转越快。

换句话说,这套方法的天花板是 VLM 本身的自我反思能力,不是它原本的任务能力。

4.2 收益沿 grounding 难度梯度分裂

这是另一个有信息量的发现:

  • GUI 域:90%+ 的收益来自 Construction 一步——光是把 raw guide 提炼成 SKILL.md 就够了,refinement 锦上添花;
  • Game / Strategy 域:90%+ 的收益来自 Refiner 的迭代修订——首版 SKILL.md 起手并不强,靠多轮失败-诊断-改写才把技能磨准。

这条规律对工程取舍很有用:grounding 容易的场景,把构造这一步打磨好性价比最高;grounding 难的场景,必须舍得让闭环多转几圈。

5. 消融与几个值得抄的工程细节

论文做了挺细的消融,挑几个我觉得对工程同学最有参考价值的:

  1. 去掉 v(状态线索) → Game 和 Strategy 掉得最厉害。说明"执行中拿什么自检"比"步骤写得多详细"还重要。
  2. 去掉 q(恢复知识) → 长任务和稀有错误场景掉幅明显。Agent 不怕走错,怕走错了不知道怎么回。
  3. Refiner 改成"全文重写"而不是 patch → 收益打折,并且会反复"忘掉"之前已经修对的地方。这条很现实——别让 LLM 重写整个 SKILL.md,让它只改局部。
  4. Analyzer 直接用任务奖励信号当反馈(也就是放开"不能看分数"的约束)→ 短期涨一点点,但泛化变差。这进一步坐实作者的设计选择:自监督路径才是健康的。

6. 我的看法

这篇论文的几个真正"新"的地方,我尽量诚实地标出来:

  • 新但不算颠覆:把人类教程蒸馏成 Agent 技能这个想法,Voyager 系列、AutoSkill 系列都做过。MMG2Skill 的差异化在 多模态 in-the-wildVLM 自蒸馏闭环 这两点上——前者强调输入是网上现成的脏数据,后者强调改技能的不是人也不是奖励信号,是 VLM 自己看轨迹诊断。
  • 真正硬核的设计是"Analyzer / Refiner 不准看 benchmark 分数"这条自我约束。这条约束非常容易被偷偷违反,一旦违反整篇论文的定位就从"自我进化技能蒸馏"滑成"用 dev set 调 prompt 模板"。
  • 可能站不住的地方:六个模型在三个域上的实验,每个域的任务数其实不大;尤其 Strategy 域只用了斗地主+麻将两类牌局,结论的可推广性需要更多场景验证。
  • 工程上最值钱的两个 takeaway
  • SKILL.md 用 Markdown 不用代码——保留可编辑性远比保留精确性重要;
  • 早停 likely_success 直接节省 25%~53% 尝试,这是任何想做 Agent 部署的团队都该抄的小机制。

如果只允许我从这篇里带走一句话,我会带这句:给 Agent 灌外部知识不是"塞进 prompt"那么简单,必须有一个让 Agent 自己重写知识的环节,否则知识就是噪声。

7. 适合什么人读

  • 在做 GUI Agent / 游戏 Agent / 桌面助手的人——直接抄整套闭环;
  • 在搭 Agent skill library 的人——SKILL.md schema 和 patch 式 refinement 这两个设计可以直接复用;
  • 在评估 VLM 反思能力的人——这篇 Bench 里 Analyzer 的诊断质量本身就是一个值得单独研究的能力维度。

不太适合纯做 RL agent 训练 / 没有 VLM 在 loop 里的同学——本文整套机制重度依赖 VLM 的 in-context 反思能力,换 small policy network 跑不起来。


论文:https://arxiv.org/abs/2606.01993