C
ChaoBro

MMSkills:上海交大把视觉 Agent 的能力拆成了"技能包",多模态智能体的新范式

MMSkills:上海交大把视觉 Agent 的能力拆成了"技能包",多模态智能体的新范式

过去两年,AI Agent 的发展思路基本上是这样的:找一个强大的大模型,给它加上工具调用能力,然后指望它能自己搞定一切。

这个思路的问题在于:当任务变复杂时,单靠一个"万能大脑"是不够的。

就像你不会让一个全科医生去做心脏手术一样,你也不应该让一个通用 Agent 去处理所有视觉任务。

上海交大的 MMSkills 提出了一个不同的思路:把 Agent 的能力拆成一个个独立的"技能",按需组合,灵活调用。

什么是多模态"技能"?

MMSkills 里的"技能"(Skill),不是传统意义上的 API 调用,而是一个完整的感知-决策-执行单元

每个技能包含三个要素:

  1. 触发条件:什么情况下应该调用这个技能
  2. 输入模态:需要什么样的视觉输入(截图、图标、页面结构等)
  3. 输出行为:执行什么样的操作(点击、输入、滚动等)

举个例子,"找到搜索框并输入关键词"是一个技能,"识别验证码并填写"是另一个技能,"从表格中提取特定列的数据"又是一个技能。

这些技能可以独立训练、独立测试、独立更新,然后在需要的时候被 Agent 组装成一个完整的工作流。

为什么这个思路有价值?

第一,可组合性。 就像乐高积木一样,你可以用有限的技能组合出无限的工作流。新增一个任务,不需要重新训练整个模型,只需要组合已有的技能或添加一个新技能。

第二,可调试性。 当 Agent 出错时,你可以精确地定位是哪个技能出了问题,而不是对着一个端到端的黑盒模型束手无策。

第三,可迁移性。 一个在电商网站上训练出来的"搜索商品"技能,可能稍作调整就能用在其他网站上。技能层面的迁移,比模型层面的迁移更灵活、成本更低。

技术细节

MMSkills 的架构有几个值得关注的设计:

技能注册表(Skill Registry)。 这是一个结构化的技能库,每个技能都有标准化的描述和元数据。Agent 在执行任务时,会先从注册表中检索相关的技能,然后按需组合。

多模态对齐。 技能不仅需要理解视觉信息,还需要理解文本指令。MMSkills 在视觉和语言之间建立了细粒度的对齐机制,确保技能能正确理解用户的意图。

动态技能选择。 面对一个新任务,Agent 不是随机尝试,而是基于任务描述和历史经验,从注册表中选择最合适的技能组合。这个选择过程本身也是一个学习过程。

和 Agent Skills 生态的关系

你可能注意到了,最近 GitHub 上涌现了大量 Agent Skills 项目——academic-research-skills、scientific-agent-skills、tech-leads-club/agent-skills 等等。

MMSkills 和这些项目的关系是:前者聚焦视觉/多模态领域的技能化,后者更多关注编码和研究领域的技能化。 但它们共享同一个核心理念——把 Agent 的能力从"模型内置"变成"外部可插拔"。

这不是巧合。当 Agent 从"尝鲜"走向"生产",能力的模块化、可组合性和可维护性就变得至关重要。

挑战

MMSkills 的思路很清晰,但也面临一些挑战:

技能爆炸。 随着应用场景的增加,技能数量可能急剧膨胀。如何管理成千上万个技能?如何避免技能之间的冲突和冗余?

跨技能协调。 当多个技能需要协同工作时,如何确保它们之间的信息传递是准确和高效的?

技能评估。 如何衡量一个技能的好坏?单纯的成功率可能不够——有些技能可能在大多数情况下表现良好,但在关键的边缘场景下会失败。

趋势判断

MMSkills 的出现不是孤立的。它和 CLI-Anything(让所有软件 Agent 原生)、agentmemory(持久化 Agent 记忆)、FORGE(自进化 Agent 记忆)一起,指向了一个更大的趋势:

Agent 正在从一个"聪明的大模型"变成"一个由多个专业组件组成的系统"。

这个转变的意义可能比我们想象的更大。因为当 Agent 的架构从单体走向模块化,它的可扩展性、可靠性和可定制性都会发生质的飞跃。

这不是说大模型不重要了——恰恰相反,大模型是这个系统的"调度中心"和"粘合剂"。但调度中心本身不需要知道每一个细节,它只需要知道如何指挥各个专业技能协同工作。

这可能是 Agent 走向大规模应用的正确路径。