在人工智能(AI)应用开发中,人们常常会遇到 Skill(技能)和 MCP(模型上下文协议)这两个概念。随着AI能力的扩展,一个普遍的问题浮出水面:对于AI来说,Skill 和 MCP 是不是越多越好?通过对现有讨论的梳理,我们可以发现,答案并非简单的“是”或“否”,关键在于理解它们各自的角色以及如何平衡。
我们需要弄清楚 MCP 和 Skill 分别是什么。
MCP,即模型上下文协议,可以被通俗地理解为AI与外部世界连接的“万能插座”或“USB-C标准”。在没有统一标准之前,AI每要连接一个外部工具,比如访问数据库、调用API或读取文件,开发者都需要编写一套专用的“连接线”,导致了巨大的开发和维护成本。MCP的出现,就是为了解决这个连接混乱的问题。它定义了一套标准化的通信规范,让各种工具和服务能够像U盘一样“即插即用”,极大地提升了AI系统的扩展性和互操作性。

然而,MCP虽然解决了“连接”的问题,却也带来了新的挑战。这种挑战被形象地称为“上下文肥胖症”。在MCP的工作机制下,AI为了知道能使用哪些工具,需要在每次交互开始时,将所有已连接工具的详细说明(功能、参数等)全部加载到自己的“短期记忆”(即上下文窗口)中。当连接的工具一多,这些说明书就会占据大量的记忆空间,不仅增加了运行成本,还会因为信息过载而稀释AI的注意力,导致它在选择和使用工具时更容易出错,反而变得“更笨”。因此,盲目地增加MCP连接数量,显然不是一个明智的选择。

为了解决“有了工具但不知如何高效使用”以及“上下文肥胖症”等问题,Skill 的概念应运而生。
如果说MCP是AI的“五金工具箱”,提供了各种工具,那么Skill就是一本本详细的“操作手册”或“工作流程指南”。它不再关注“连接”,而是聚焦于“使用”。Skill通常以简单的文本文件(如Markdown)形式存在,里面封装了一套完成特定任务的标准化流程、规则和专家经验。比如,一个“代码审查”的Skill会告诉AI,应该按照什么样的步骤、遵循哪些规范来检查代码。

Skill最精妙的设计在于其“渐进式披露”或称“懒加载”机制。当AI启动时,它只会加载所有Skill的简要目录(元数据),这部分信息量极小,几乎不占用“记忆空间”。只有当用户的请求与某个Skill的功能高度匹配时,AI才会去加载该Skill的详细指令和相关资源。这种按需加载的方式,极大地节省了AI的“注意力”,让AI即使装备了成百上千种技能,也能保持高效和专注。此外,Skill还可以包含可直接执行的脚本,让AI在处理复杂逻辑时,能够调用这些确定性的程序,从而保证了结果的稳定性和准确性,避免了因纯自然语言推理而导致的不确定性。
理解了这两者之后,我们就能明白它们并非相互替代,而是相辅相成的关系。MCP负责为AI搭建连接外部世界的“桥梁”,让AI拥有“手和脚”去感知和操作。而Skill则像是AI的“大脑回路”和“肌肉记忆”,教会它如何聪明、专业地运用这些能力去完成具体工作。一个成熟的AI系统,往往是两者协同工作的结果:Agent(智能体)作为总指挥,根据任务需求,激活相应的Skill(工作流程),而Skill在执行过程中,又通过MCP去调用外部工具和数据。

那么,回到最初的问题,Skill是不是越多越好呢?答案同样是否定的。尽管Skill在资源消耗上更为高效,但无限制地增加Skill数量也会带来问题。首先是“触发冲突”,当存在大量功能描述相似的Skill时,AI可能会感到困惑,不知道该激活哪一个,导致行为不稳定。其次是安全风险,由于Skill可以用自然语言编写,一个来源不明的Skill可能包含恶意指令,诱导AI执行危险操作,如泄露敏感数据。一个杂乱无章、缺乏维护的Skill库,本身也会成为一种负担。
无论是MCP还是Skill,其价值都不在于数量的堆砌,而在于质量和管理的精细化。构建一个强大的AI系统,并非是盲目地为其接入更多的工具或安装更多的技能,而是要为其打造一个结构清晰、能力相关、安全可控的“能力栈”。核心在于,让AI拥有恰到好处的外部连接(MCP),并掌握一套经过验证、高效可靠的工作方法论(Skill),最终才能像一个真正的专业人士那样,稳定、高效地完成复杂任务。与其追求“多”,不如着眼于“精”和“适用”,这才是让AI能力持续提升的关键。