现有 Agent Skills 大多告诉模型“怎么做”,但对于视觉 Agent 来说,真正关键的往往是“应该看到什么状态,以及看到之后该如何决策”。一个桌面 Agent 可能知道要点击确认按钮,却没有意识到按钮仍是灰色;一个游戏 Agent 可能知道要跳过障碍,却需要判断当前画面是否已经到了起跳时机。

为解决这个问题,来自上海交通大学和小红书的研究团队联合推出了 MMSkills:一种面向通用视觉 Agent 的多模态技能框架。MMSkills 将可复用技能从纯文本步骤扩展为由 文本流程、运行时状态卡片和多视角关键帧 组成的多模态程序性知识,并通过 branch loading 在运行时高效调用这些视觉证据。

  • 论文地址:https://arxiv.org/abs/2605.13527

  • 项目主页:https://deepexperience.github.io/MMSkills/

  • 代码 & Demo:https://github.com/DeepExperience/MMSkills

  • Skill Source:https://huggingface.co/datasets/zhangkangning/mmskills

  • 视频对比:https://deepexperience.github.io/MMSkills/cases.html

为什么视觉 Agent 需要“多模态技能”?none !important

近年来,Agent Skills 已经成为提升智能体能力的重要方式。无论是 Web Agent、GUI Agent,还是开放环境中的游戏 Agent,研究者都希望将成功经验沉淀为可复用技能,让模型在相似任务中少走弯路。 但一个关键问题是:现有技能库大多仍然把技能表示为文本、代码或动作图

这在语言任务或工具调用任务中可能已经足够,但对于视觉 Agent 来说,任务成功并不只取决于“知道下一步要做什么”。Agent 还必须判断当前界面或场景是否已经进入正确状态:按钮是否可用、弹窗是否完成加载、目标对象是否已经变化、当前画面是否意味着任务完成或失败。

换句话说,视觉任务中的技能不应只是“操作说明书”,还应该包含可复用的视觉过程知识。

从 Text Skills 到 Multimodal Skillsnone !important

以桌面 GUI 任务为例,文本技能可能会告诉 Agent:“切换到目标工作表,插入图表,设置标题”。但真实执行时,Agent 还需要判断:

  • 当前是否已经打开正确的软件?

  • 目标工作表是否处于激活状态?

  • 图表设置面板是否已经出现?

  • 当前按钮是可点击、不可点击,还是已经完成设置?

这些判断很难完全靠文字穷举。相反,如果技能能够同时给出关键状态的截图、局部焦点区域、操作前后的状态变化,Agent 就能更自然地将历史经验与当前画面进行对齐。 这正是 MMSkills 的核心动机:将 reusable skills 重新定义为多模态程序性知识。在 MMSkills 中,一个技能包由三类信息组成:

  1. none !important

    none !importantTextual Procedure:描述可复用的操作流程;none !important

    none !important
  2. none !important

    none !importantRuntime State Cards:描述什么时候使用、什么时候不使用、需要观察哪些 visible cues、如何验证进展或完成;none !important

    none !important
  3. none !important

    none !importantMulti-view Keyframes:用 full-frame、focus crop、before/after 等多视角关键帧展示关键状态“长什么样”。none !important

    none !important

因此,MMSkills 不是“文本技能 + 几张示意图”,而是一个面向运行时决策的状态化技能单元:它告诉 Agent 在什么状态下使用技能、该看哪里、看到什么证据后继续、跳过或验证。

图 1:一个具体的 MMSkills 示例。多模态技能包将文本流程、运行时状态卡片和多视角视觉证据组合起来;对于同一个图表创建任务,纯文本指导可能错过当前激活工作表状态,而分支加载的 MMSkills 会将技能证据与实时屏幕对齐,并向主 Agent 返回状态感知的指导。

Demo:同一个任务,三种 Agent 行为none !important

下面展示三个 OSWorld 桌面任务中的行为对比。每个 case 均比较 No skillsText-only skills 和 MMSkills 三种 settings。No-skills 是没有任何技能的基础 Agent;Text-only skills 是只提供文本流程的技能;MMSkills 则是提供完整多模态技能包并使用 branch loading 的版本。

1. Calc:创建合并表头

案例 1:任务要求在 Sheet2 中创建三组合并表头。No-skills 与 Text-only 均未稳定完成单元格选择和合并流程;MMSkills 依次选择目标区域,完成合并并写入全部标签。

No Skills

Text-only Skills

MMSkills

2. GIMP:移动指定文本图层

案例 2:任务要求左移文本框且避免误选背景图层。No-skills 与 Text-only 容易从错误视觉锚点拖拽;MMSkills 先定位目标文本/对象图层,再完成移动。

No Skills

Text-only Skills

MMSkills

3. Calc:创建并移动聚簇柱状图

案例 3:任务要求创建 Sales & COGS 聚簇柱状图并移动到 Sheet2。No-skills 与 Text-only 在数据范围、标题和目标工作表之间反复失败;MMSkills 完成数据选择、图表创建、标题输入和目标工作表移动。

No Skills

Text-only Skills

MMSkills

技能包如何自动生成?none !important

如果多模态技能需要人工编写,那么它很难扩展到真实任务规模。为此,MMSkills 设计了一个从公开交互轨迹中自动提炼技能的 Generator。

这套生成流程只使用非测试数据,避免直接复制 benchmark 测试样例。整体上,它将公开轨迹转化为可复用技能库,大致包括以下阶段:

  • Stage 1:任务聚类。 对任务进行 embedding 与聚类,将大规模轨迹划分为语义更集中的任务簇;

  • Stage 2:簇内技能规划。 在每个 cluster 内规划 atomic skills,并形成领域级 skill planning table;

  • Stage 3:技能合并与泛化。 对不同 cluster 产生的技能进行去重、合并和泛化;

  • Stage 4:文本草案生成。 先生成技能的文本流程与状态卡片草案;

  • Stage 5:视觉 grounding 与审计。 再读取真实关键帧,完成视觉 grounding 与质量审计。

这个流程的重点不是保存原始 demonstration replay,而是从轨迹中抽取可复用的“诊断性状态”:哪些状态对技能复用有意义,哪些画面可以帮助识别这些状态,哪些视觉证据可以验证进度或完成。

运行时为什么需要 Branch Loading?none !important

多模态技能包虽然更丰富,但也带来一个直接问题:不能把所有文字、状态卡片和图片一股脑塞进主 Agent 上下文

如果直接加载完整技能包,主 Agent 会面临两个风险:

  • 上下文压力显著增加,参考图和当前截图会争夺注意力;

  • Agent 可能被相似参考图“锚定”,围绕技能示例而不是当前真实环境进行规划。

因此,MMSkills 提出了 branch-loaded multimodal skill agent

当主 Agent 判断某个技能可能有用时,它不会直接把完整技能包加载进主对话,而是临时打开一个 skill branch。这个 branch 做两件事:

  1. none !important

    none !importantView Selection:根据当前截图、历史动作、技能文本和状态卡片,选择真正需要的关键状态与视角;none !important

    none !important
  2. none !important

    none !importantBranch Planning:将选择后的视觉证据与当前环境对齐,返回结构化指导,例如 applicable、subgoal、plan、do_not_do 和 verify。none !important

    none !important

主 Agent 最终接收的是压缩后的决策支持,而不是完整图片包。这样既保留了多模态技能的视觉 grounding 能力,也避免主线交互被参考图片污染。

图 2:MMSkills 框架概览。多模态技能包存储可复用文本流程、运行时状态卡片和多视角关键帧;meta-skill-guided Generator 将公开非测试轨迹转换为可复用的多模态技能库;推理时,主视觉 Agent 使用 branch loading 在临时分支中检查被选择的技能证据,并在行动前获得紧凑的结构化指导。

实验:GUI 与游戏任务上均带来稳定提升none !important

MMSkills 在 GUI 与游戏类视觉 Agent 任务上进行了系统评测,包括:

  • OSWorld:真实 Ubuntu 桌面任务;

  • macOSWorld:macOS 环境下的跨系统 GUI 任务;

  • VAB-Minecraft:Minecraft 生存模式下的物品获取任务;

  • Super Mario Bros from LMGame-Bench:基于截图的复古游戏控制任务。

模型覆盖前沿多模态模型与较小规模开源模型,包括 Gemini 3.1 Pro、Gemini 3 Flash、Qwen3-VL-235B-A22B-Thinking、GLM-5V-Turbo、Kimi-K2.6 和 Qwen3-VL-8B-Instruct。

1. OSWorld:所有模型家族均受益

在 OSWorld 上,MMSkills 对所有模型家族都带来提升。论文中的完整 OSWorld 结果如下:

表 1:OSWorld 应用级成功率。所有数值均为百分比;“Calc”“Impress”“Writer”分别表示 LibreOffice 应用。

这种提升在较小模型上尤其明显。例如 Qwen3-VL-8B-Instruct 在 OSWorld 上从 10.78% 提升到 25.40%,在 VAB-Minecraft 上也从 23.28% 提升到 38.79%。这表明外部多模态程序性知识并不是简单重复大模型已有能力,而是在模型内部 procedural priors 不足时提供了有效补充。

2. 跨系统 GUI 与游戏任务:技能范式可以迁移

在游戏任务中,MMSkills 同样展现出迁移性。VAB-Minecraft 需要长程规划、合成配方理解、工具使用和失败恢复;Super Mario Bros 则包含反复出现的视觉状态,例如开放地面奔跑、躲避敌人、障碍物前跳跃等。这些任务都天然适合通过状态化视觉技能进行复用。

表 2:辅助 GUI 与游戏类视觉 Agent 结果。macOSWorld 报告各领域和整体成功率;VAB-Minecraft 报告成功率和平均分;Super Mario Bros 报告 total performance 和 total reward。

消融:状态卡片、关键帧和分支加载都很关键none !important

为了验证 MMSkills 的各个部分是否必要,论文进行了两类消融实验。

第一类关注技能包内容:移除 state cards、移除 images,或仅保留 text-only skills。结果显示,状态卡片和多视角视觉证据都能独立贡献收益。状态卡片帮助 Agent 判断当前状态是否适用,关键帧帮助 Agent 将文本条件 grounding 到真实画面。

第二类关注运行时机制:比较是否使用 branch loading,以及是否进行 view selection。结果显示,直接加载完整多模态技能包反而会伤害性能,说明未过滤的图片和状态描述会污染主上下文;而 branch loading 与 view selection 结合时效果最好。

图 3:MMSkills 组件和 branch loading 的消融结果。柱状图报告相对于 no-skill baseline 的百分点提升;Panel (A) 移除技能包中的运行时状态卡片或视觉关键帧,Panel (B) 比较 direct loading 与 branch loading,以及是否使用 view selection。

这说明 MMSkills 的收益不是来自“多给模型一些信息”这么简单,而是来自更合理的信息组织和加载方式。

不只是成功率:MMSkills 改变了 Agent 的行为模式

论文进一步分析了 Agent 的低层行为变化。结果显示,MMSkills 不只是让 Agent 多调用一次技能,而是显著改变了主流程的行为风格。

以 OSWorld 为例,加入 MMSkills 后:

  • Agent 的低层动作数量减少;

  • 无效点击和重复动作减少;

  • 更容易在合适时机发出 DONE;

  • 原本更容易陷入点击循环的模型,行为变化更明显。

在 Qwen3-VL-235B 上,点击动作比例从 75.8% 降到 63.7%,精确重复动作从 21.8% 降到 6.2%。这说明 MMSkills 让 Agent 从探索式试错,转向更 grounded、更 state-aware 的执行方式。

图 4:MMSkills 在 OSWorld 上引发的行为模式变化。Panel (A) 报告执行动作类型分布,Panel (B) 比较每个任务的低层 primitive 数量,Panel (C) 通过精确重复动作、重复动作类型和最长同类动作序列来衡量重复行为。

这个结果也解释了为什么多模态技能比纯文本技能更稳定:它不仅告诉 Agent “做什么”,还帮助 Agent 判断“现在是不是该做”“做到哪里了”“是否已经完成”。

总结none !important

MMSkills 的核心观点很直接:对于视觉 Agent,技能不应只是文本步骤或代码片段,而应是包含视觉状态、决策条件和验证证据的多模态程序性知识。 围绕这一观点,论文的核心贡献可以概括为四点:

  • 首次系统提出 multimodal skill package 概念,将视觉 Agent 的可复用技能建模为由文本流程、运行时状态卡片和多视角关键帧组成的多模态程序性知识;

  • 设计了一个 agentic trajectory-to-skill Generator,从公开、非测试交互轨迹中自动提炼多模态技能包,而不是直接保存原始 demonstration;

  • 提出 branch loading 运行时机制,在临时分支中选择并对齐技能中的视觉证据,再向主 Agent 返回结构化决策支持;

  • 在 GUI 与游戏类视觉 Agent 任务上进行系统评测,验证外部多模态程序性知识能够稳定提升不同模型家族的任务表现,并改变 Agent 的交互行为模式。

从更长远看,这项工作指向了一种新的 Agent Skills 范式:Agent 不仅需要记住“操作步骤”,还需要记住“关键状态长什么样”,并在运行时将经验中的视觉证据与当前环境对齐。

当 Agent 开始真正“看图用技能”,视觉智能体的经验复用也许会变得更接近人类学习任务的方式。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐