1. 先把概念掰开揉碎:Skill、MCP、插件到底各管什么
1.1 三个词被混用,是绝大多数人踩的第一个坑
我接触 AI Agent 这套东西大概是从两年前开始的,那时候大家还在纠结提示词怎么写、上下文怎么塞。到了今年,几乎每个做 Agent 的团队都在讨论 Skill、MCP 和插件,但真正让我意外的是,很多人把这三个词当成同义词在用。有人问我“你那个 Agent 用的是 MCP 还是插件”,也有人问“Skill 和插件有什么区别,是不是选一个就行”。这种问法本身就说明,概念层没打通。
先把最核心的一句话放这儿:Skill、MCP、插件不是同一维度的东西,它们解决的是三个不同层面的问题,所以根本不存在“三选一”这个命题。把它们放在一起比较,就像问“做菜到底该用刀、用火还是用锅”——答案是都要用,只是分工不同。
我自己的理解框架是这样的:Skill 解决的是“Agent 会不会做这件事”,MCP 解决的是“Agent 能不能连上外部世界”,插件解决的是“Agent 在某个具体宿主环境里怎么被调用”。这三者分别对应能力层、连接层和集成层。你如果只盯着其中一个,Agent 要么是个只会聊天的空壳,要么是个连不上数据的孤岛,要么是个装不进任何产品的半成品。
1.2 用生活化类比把三者关系讲透
我习惯用一个类比来解释:把 AI Agent 想象成一个刚入职的新员工。
Skill 就是这个员工的“职业技能”。比如他会写文案、会做数据分析、会画流程图。这些技能是他脑子里装的东西,不需要外部工具就能发挥。你给他一个任务,他靠自己的知识和训练就能完成。Skill 的本质是一段可复用的、结构化的能力描述,它告诉 Agent 在遇到某类任务时应该怎么思考、按什么步骤执行、输出什么格式。
MCP 就是这个员工的“通讯协议和工具箱接口”。他再厉害,也得能连上公司的数据库、能调用财务系统、能读取共享文档。MCP(Model Context Protocol)就是一套标准化的接口规范,让 Agent 能够以统一的方式去连接各种外部资源和服务。它不关心 Agent 会不会做某件事,它关心的是 Agent 能不能拿到做这件事所需的数据和工具。
插件就是这个员工的“工位和门禁卡”。他技能再强、接口再全,也得有个地方让他坐下来干活。插件是宿主环境(比如某个 IDE、某个办公软件、某个浏览器)提供给 Agent 的接入方式。没有插件,Agent 就只能在一个独立的对话框里运行,没法融入你日常使用的工具流。
这么一拆,你应该就能感觉到:Skill 是内功,MCP 是经脉,插件是招式。三者缺一不可,而且它们之间是互相配合的关系,不是互相替代的关系。
1.3 为什么现在突然都在聊这三个词
说白了,是因为 Agent 从“能聊天”进化到了“能干活”。早期的大模型产品,你问它答,答完就结束了,不需要 Skill、不需要 MCP、更不需要插件。但当大家开始让 Agent 真正去执行任务——比如自动整理文件、自动发消息、自动写代码、自动做报表——问题就暴露了。
我观察到的几个典型痛点:第一,Agent 不知道怎么系统地做一件事,每次都要重新教,这就是缺 Skill;第二,Agent 拿不到外部数据,只能靠训练时的记忆瞎编,这就是缺 MCP;第三,Agent 没法在你常用的软件里直接调用,你得复制粘贴来回倒腾,这就是缺插件。
所以这三个概念的火爆,本质上是 Agent 从玩具走向工具过程中必然要补齐的三块拼图。理解了这一点,你就不会再问“选哪个”了,而是会问“我现在的场景缺哪块”。
2. Skill 到底怎么写才有用:从“会聊天”到“会干活”
2.1 Skill 的本质是一份可执行的思考说明书
很多人第一次接触 Skill 这个概念,会以为它是什么高深的技术。其实拆开看,Skill 就是一份写给 Agent 看的“操作手册”。它用自然语言加上一些结构化的标记,告诉 Agent:当你遇到某类任务时,应该按什么流程走、注意哪些细节、输出什么格式。
我举个例子。假设你要做一个“小红书自动发消息”的 Skill。你不能只写“帮我发消息”,那太模糊了。你得写清楚:第一步,识别用户意图是发私信还是发评论;第二步,根据产品类型选择合适的语气模板;第三步,检查内容是否包含敏感词;第四步,确认发送对象和发送时机;第五步,执行发送并记录结果。每一步还要说明判断条件和异常处理。
这就是 Skill 的核心:把隐性的经验显性化,把模糊的指令结构化。一个写得好的 Skill,换一个 Agent 来执行也能跑通;一个写得烂的 Skill,只有写它的人自己能用。
2.2 Skill 的典型结构和我踩过的坑
我前后写过几十个 Skill,从最简单的“格式化 Markdown”到复杂的“多步骤数据分析”,总结下来一个可用的 Skill 通常包含这几个部分:
- 触发条件:什么情况下该启用这个 Skill。写得太宽会导致误触发,写得太窄会导致该用的时候用不上。
- 前置检查:执行前需要确认哪些信息已经具备,缺什么要主动问用户。
- 执行步骤:分步骤描述操作流程,每步说明输入、处理和输出。
- 异常处理:遇到什么情况该停下来、该重试、该换方案。
- 输出规范:最终结果以什么格式呈现,包含哪些必要字段。
我踩过最大的坑是“步骤写得太抽象”。早期我写 Skill 喜欢用“分析用户需求”这种词,结果 Agent 执行时完全靠猜,每次结果都不一样。后来我改成“读取用户输入,提取其中的名词和动词,判断属于查询类还是操作类”,稳定性立刻上来了。
还有一个坑是“没有边界”。有个 Skill 我忘了写异常处理,结果 Agent 遇到网络超时就一直重试,把整个流程卡死了。后来我养成了一个习惯:每个 Skill 必须至少写三条异常分支,哪怕只是“如果失败,告知用户并建议手动操作”。
2.3 不同场景下 Skill 的写法差异
Skill 不是千篇一律的。做技术类 Agent 和做内容类 Agent,Skill 的写法差别很大。
技术类的 Skill,比如“用 AI Agent 开发 Django 项目”,步骤要非常精确。你得写清楚先创建虚拟环境、再安装依赖、再初始化项目、再配置数据库,每一步的命令和预期输出都要有。这种 Skill 更像是一份运维手册,容错率低,必须严谨。
内容类的 Skill,比如“去 AI 味的文案改写”,步骤可以灵活一些,但判断标准要清晰。你得告诉 Agent 什么样的表达算“有 AI 味”——比如过度使用“首先其次最后”、比如每段都以总结句结尾、比如滥用“赋能”“闭环”这类词。然后给出改写策略:拆长句、换口语词、加具体案例、删掉空洞的过渡句。
我个人的经验是:技术类 Skill 重流程,内容类 Skill 重标准。流程可以照搬,标准需要反复调。你写内容类 Skill 的时候,最好先自己改十篇样本,把改动的规律总结出来,再写成 Skill,这样命中率会高很多。
3. MCP 不是万能钥匙:连接层的真实能力边界
3.1 MCP 解决的是“数据从哪来、工具怎么调”
MCP 刚出来的时候,很多人以为它是 Agent 的“万能接口”,接上就能为所欲为。实际用下来,MCP 的能力边界比想象中清晰得多。它本质上是一套协议,规定了 Agent 怎么向外部服务发起请求、怎么接收返回结果、怎么处理错误。它不负责“理解”数据,只负责“搬运”数据。
我拿一个实际场景来说明。假设你要做一个“自动整理会议纪要”的 Agent。它需要:读取日历拿到会议信息、读取录音转文字、读取参会人名单、写入文档系统。这四个动作分别对应四个 MCP 服务。MCP 负责让 Agent 能调用这些服务,但“怎么把录音转成结构化的纪要”这件事,是 Skill 的活,不是 MCP 的活。
所以你在设计 Agent 的时候,一定要把“连接”和“处理”分开想。MCP 管连接,Skill 管处理。混在一起想,你会觉得 MCP 怎么什么都干不了;分开想,你会发现 MCP 把最烦的对接工作标准化了,这已经是巨大的进步。
3.2 MCP 的常见接入方式和选型考量
目前 MCP 的接入方式主要有几种:本地进程、远程服务、以及通过宿主环境内置的支持。每种方式适合的场景不一样。
本地进程适合处理敏感数据,比如你公司内部的文档系统,数据不出本地,安全性高,但部署和维护成本也高。远程服务适合调用公开的 API,比如天气、地图、搜索,接入快,但依赖网络稳定性。宿主内置适合那些已经和 MCP 生态打通的平台,你几乎不用配置就能用,但可选的服