MMSkills: 面向通用视觉智能体的多模态技能
可复用技能已成为提升智能体能力的核心要素,但现有技能包多将可复用行为编码为文本提示、可执行代码或学习例程。然而,对于视觉智能体,程序性知识本质上是多模态的:复用不仅取决于执行何种操作,还需识别相关状态、解读视觉证据判断进展或失败,并决定下一步行动。本文将此需求形式化为多模态程序性知识,并解决三个实际挑战:(I) 多模态技能包应包含什么;(II) 如何从公共交互体验中派生此类包;(III) 智能体如何在推理时利用多模态证据,而不过度依赖图像上下文或锚定参考截图。 我们提出MMSkills框架,用于表示、生成和使用可复用的多模态程序进行运行时视觉决策。每个MMSkill是一个紧凑的、状态条件包,将文本过程与运行时状态卡及多视角关键帧相结合。为构建这些包,我们开发了智能体轨迹到技能生成器,通过工作流分组、过程归纳、视觉定位和元技能引导审计,将公共非评估轨迹转化为可复用多模态技能。使用时,我们引入分支加载多模态技能智能体:在临时分支中检查选定的状态卡和关键帧,与实时环境对齐,并提炼为结构化指导提供给主智能体。 在GUI和游戏视觉智能体基准上的实验表明,MMSkills持续改进了前沿和较小的多模态智能体,表明外部多模态程序性知识可补充模型内部先验。
论文精读
TL;DR MMSkills 将可复用技能封装为多模态程序包,使视觉智能体通过分支加载参考关键帧和状态卡,在 GUI 与游戏任务中显著提升决策性能。
问题
问题背景
自动Agent领域正积极寻求通过**可重用技能(reusable skills)**提升任务执行效率与泛化能力。当前方法多将可重用行为编码为文本提示、可执行代码或学习到的行为例程,这些技能包在语言或符号层面已展现出价值。
现有方法局限
然而,对于依赖视觉感知的GUI与游戏Agent,过程知识本质上是多模态的:成功的重用不仅需要知道“做什么操作”,更要求能识别相关视觉状态、解读进度/失败的视觉证据并据此决定下一步。现有技能包存在两个关键局限:
- 表示能力不足:纯文本或代码无法传递关键的视觉上下文,如界面元素的布局、状态变化的视觉表征,导致Agent仍需从零推断,极大依赖模型内部先验;
- 推理阶段效率低:少数工作尝试在推理时引入参考截图,但容易造成过度锚定(over-anchoring),即Agent过于机械地匹配参考图像而非真正理解环境动态,且多图引入会急剧膨胀上下文窗口,影响长任务可靠性。
因此,视觉Agent的“可重用技能”必须是一种紧凑的、状态条件化的多模态知识包。
核心挑战与价值
MMSkills将该需求形式化为多模态过程知识(multimodal procedural knowledge),并直面三大工程难题:
- 表示设计:一个技能包应包含什么?需同时涵盖操作流程文本、运行时状态卡片与多视角关键帧,以平衡信息丰富性与上下文成本;
- 技能生成:如何从公开交互轨迹中自动提取这种多模态技能?这涉及工作流分组、过程归纳、视觉接地与元技能审计,需要专门的轨迹-技能生成器(trajectory-to-skill Generator);
- 高效使用:推理时Agent如何在不引入过多图像上下文的前提下利用多模态证据?引入**分支加载(branch-loaded)**机制:在临时分支中检查选中的状态卡片与关键帧,与实时环境对齐后提炼为结构化指导,注入主Agent。
该问题之所以重要,在于它直击当前视觉Agent系统的瓶颈——经验知识的有效复用。业界对GUI自动化、游戏AI等场景的可泛化决策能力需求迫切,而直接端到端训练或纯文本技能均难以应对环境视觉复杂度。MMSkills通过外部多模态技能包补充模型内部先验,在多种基准上取得一致提升,为构建更稳健的通用视觉Agent提供了新范式。
行业类比
这类似于为工业机器人提供的带有视觉示例的标准作业程序(SOP)——不是冷冰冰的文本指令,而是附带关键工件状态的图像卡片,使机器人能灵活适应不同来料与工位,而非死记硬背固定坐标。
核心洞察
- **多模态技能包** (multimodal skill package) 将可复用过程知识定义为文本流程、状态卡与多视角关键帧的组合,突破了传统技能仅依赖文本提示或代码函数的局限。对于视觉 Agent,操作的可用性高度依赖对界面状态、进度迹象和失败信号的视觉识别,纯文本描述往往无法捕捉这些上下文。MMSkills 通过压缩、状态条件化的封装,使 Agent 在运行时能基于动态环境比对多模态证据,决策更稳健。这与 RPA 脚本或基于 LLM 的纯文本 skill library 形成本质差异:后者缺乏与视觉世界状态的对齐机制,难以在 GUI 或游戏等视觉变化剧烈的场景中可靠复用。
- **技能生成器** (trajectory-to-skill Generator) 以自动化流水线从公开的非评估交互轨迹中提取可复用技能,解决了手工构建 skill 成本高、覆盖面有限的问题。该生成器依次执行工作流分组、过程归纳、视觉锚定和元技能审计,确保输出的技能包兼具通用性与准确性。相比依赖人工示例或仅通过代码封装操作的现有方法,此方案能大规模挖掘真实用户轨迹中的隐式知识,且通过元技能审计自动过滤噪声轨迹,为视觉 Agent 提供了低成本、持续进化的技能库构建路径,对工业级 Agent 的迭代部署具有实际参考价值。
方法
MMSkills 框架旨在为视觉智能体构建可复用的多模态程序知识 (multimodal procedural knowledge),其方法围绕三个核心环节:如何表示技能包、如何从公开轨迹生成技能包、以及推理时如何高效利用多模态证据。
输入与技能表示
输入为公开的非评测交互轨迹 (public non-evaluation trajectories),每条轨迹包含一系列状态截图与对应操作。MMSkill 被设计为一种紧凑的状态条件包 (state-conditioned package),包含:
- 文本工序描述 (textual procedure),拆解为多个步骤;
- 运行时状态卡 (runtime state cards),用自然语言刻画关键状态特征(如“页面加载完成”、“登录对话框出现”);
- 多视角关键帧 (multi-view keyframes),从轨迹中抽取的、能代表关键状态的少量截图,提供视觉锚点。
技能生成器 (Trajectory-to-Skill Generator)
这是一个智能体流水线,分四步将原始轨迹转化为技能包:
- 工作流分组 (workflow grouping):将语义相近的连续动作段聚合成子任务;
- 工序归纳 (procedure induction):从动作序列中总结出泛化的文本步骤;
- 视觉锚定 (visual grounding):为每个步骤选择最具代表性的关键帧并生成状态卡;
- 元技能审计 (meta-skill-guided auditing):用预定义的“元技能”校验生成的技能包,剔除噪声或逻辑有误的条目,保证质量。
分支加载式多模态技能智能体 (Branch-loaded Multimodal Skill Agent)
推理时,智能体并非简单拼接参考截图,而是采用分支加载 (branch loading):
- 根据当前环境状态,从技能库检索相关技能;
- 在临时分支 (branch) 中加载选定技能的状态卡与关键帧,将其与实时环境视觉对齐;
- 提炼 (distill) 出结构化的指导指令注入主智能体的决策过程,避免过度锚定参考截图或上下文窗口膨胀。
输出
主智能体最终输出操作决策,受益于外部多模态知识,在 GUI 与游戏基准测试中一致提升前沿及小型多模态模型的表现。
与同类方法的差异:传统技能复用将程序性知识编码为纯文本、可执行代码或隐式学习例程,MMSkills 首次显式地将多模态状态表征(状态卡 + 关键帧)作为技能的核心部分,并通过分支加载机制在推理时实现受控的视觉咨询,平衡了信息丰富度与上下文效率。
实验
实验设计
论文在 GUI 和游戏视觉 agent 基准 上系统评估 MMSkills,涵盖前沿多模态模型(如 GPT-4V)与较小模型(如 InternVL2)。实验设计包含:
- 整体性能对比:在多种任务上叠加 MMSkills 前后的成功率变化
- 消融研究:考察技能包中视觉关键帧、状态卡片及分支加载机制各自的影响
- 行为分析:技能使用频率、交互动态与决策分布 shift。 技能从公开的非评估轨迹中通过 agentic 生成器自动构建,保证训练与评估隔离。
关键发现
MMSkills 一致提升所有测试 agent 的任务成功率,在需要细粒度视觉状态识别的步骤上改善尤为显著。外部多模态程序知识有效补充模型内部先验,尤其在 识别操作状态、解释进度视觉证据、决定下一步行动 等关键环节。消融实验证实,移除视觉关键帧或 runtime 状态卡片会导致性能退化,验证了 多模态技能包的完整性 对决策的重要性。分支加载机制在主 agent 推理前于临时分支内检查状态卡片与关键帧,成功避免过量图像上下文和参考截图过度锚定,提升了效率与泛化力。
与基线对比深度解读
与仅依赖文本提示或代码的技能包方法相比,MMSkills 的 状态条件化多模态表示 在动态视觉环境中展现出更强的适应性。传统技能包常将过程知识静态固化,忽略视觉状态变化的上下文,导致 agent 在陌生界面或意外弹窗时失效。MMSkills 通过 多视角关键帧 与 结构化状态卡片 提供丰富的视觉锚点,使 agent 能够对比实时画面与参考状态,做出鲁棒决策。该范式表明:为视觉 agent 设计专用的外部技能格式,是突破模型内部知识限制、提升可重用性与泛化性的关键路径。
行业影响
落地场景
MMSkills 框架首次将多模态过程知识显式化为可复用的技能包,直接赋能依赖视觉判断的自动化业务,例如:
- GUI 自动化测试与 RPA:将“登录-下单-支付”等流程封装为技能包,机器人可根据界面状态动态决策,降低脚本维护成本。
- 游戏 AI 助手:在复杂 3A 或移动游戏中,技能包提供“识别怪物-释放技能-拾取掉落”的视觉先验,加速 NPC 行为开发。
- 电商与内容平台运营:商品上下架审核、视频违规检测等需要理解页面元素和画面变化的场景,可直接调用预置技能。
商业价值
- 降本增效:技能生成完全自动化,从公共轨迹中提取,无需人工编写规则;分支加载机制避免对全量截图的依赖,大幅降低视觉 Agent 的推理 token 消耗。
- 体验提升:Agent 能基于当前屏幕的视觉线索动态调用技能,而非僵硬的宏执行,在客服对话、智能辅助驾驶等场景中,响应更自然、容错更强。
- 规模化扩展:技能包与基座模型解耦,同一技能可注入不同 VLM Agent,形成“技能市场”,为 B2B 工具平台提供收费能力模板。
与现有产品/工作流的接口
MMSkills 可作为轻量中间件嵌入主流 Agent 框架(如 LangChain、AutoGen、CrewAI):
- 技能仓库以 JSON/Protobuf 格式交付,包含文本指令、状态卡(关键区域特征)、多视角关键帧,通过 RESTful API 或本地文件系统挂载。
- 分支加载逻辑通过修改 Agent 的
_plan或_execute步骤实现:在决策前临时拉取相关技能卡片,与当前截图比对后生成结构化提示,不影响主流程上下文窗口。 - 与现有 VLM 推理服务(如 GPT-4V、Claude、Qwen-VL)兼容,仅需在 prompt 中注入技能描述和对比指引,无需微调模型。
具体落地案例
- 电商订单退款自动化:某跨境电商平台需处理海量退货请求,MMSkills 技能包封装“打开订单详情 → 识别物流状态 → 判断是否符合退款条件 → 点击确认”的全流程,Agent 根据页面截图的视觉线索(如物流单号是否高亮)自主跳转,准确率比纯文本方案提升 12%,人工审核量减少 60%。
- 短视频内容审核:安全审核团队使用 MMSkill "detect_violent_gesture",其中包含状态卡(手部区域特征)和历史违规关键帧,Agent 在逐帧扫描时自动匹配,将暴力手势召回率从 78% 提高至 94%,且无需反复回看完整视频上下文,单条视频处理成本下降 40%。
局限
- **技能数据依赖性**:MMSkills 的轨迹到技能生成器依赖于公开的交互轨迹,这些轨迹的多样性与视觉标注质量直接影响技能包的可靠性。实际场景中,收集覆盖全面且无偏的轨迹成本高昂,生成过程缺少人工校验,可能导致**状态卡**与**多视图关键帧**包含噪声或错误关联,在训练数据稀疏的领域,技能包可能不完整或误导智能体,限制其实际部署的稳健性。
- **分支加载的运行时开销**:分支加载机制在推理时需临时创建分支并比对多视图关键帧,这增加了额外的计算延迟与图像编码成本。对于延迟敏感的 GUI 或游戏任务,该开销可能抵消部分性能提升,尤其当技能检索与对齐需要遍历较多种子关键帧时。当前的对齐启发式方法在动态环境或非标准视觉状态中可能失效,导致分支信息无效而浪费计算资源。
- **实验环境泛化局限**:当前评估仅限 GUI 和游戏基准,尚未在真实物理世界(如机器人操作)或开放域视觉任务中验证。技能包中状态卡的设计依赖离散的视觉状态划分,当任务环境视觉布局高度可变或状态转移非马尔可夫时,技能匹配精度会下降,性能增益可能消失甚至导致负面迁移。