Skill和MCP的关系与区别:一场被误解的“搭档关系”
Skill是AI的能力封装单元——将特定任务的执行流程、判断标准和经验打包为可复用的模块(SKILL.md + 可选脚本/资源),告诉Agent“该怎么做、按什么顺序做”。MCP(Model Context Protocol)则是一个开放的标准化通信协议,定义了AI模型如何与外部数据源、工具和企业系统建立安全、高效的双向连接,解决的是“Agent能连接到什么、能调用什么”的问题。两者的关系不是替代,而是不同层面的互补。本文从定义、职责、形态、使用方式等维度,系统拆解它们的区别与协作方式。
📋 本文大纲
- 定义对比:能力包 vs 通信协议
- 职责分工:教“怎么做” vs 给“能做什么”
- 形态差异:静态文件 vs 常驻服务
- 使用方式:按需加载 vs 启动注册
- 典型场景对比
- 两者如何协同工作
- 一张表快速判断该用哪个
一、定义对比:能力包 vs 通信协议
Skill:以标准化目录(含SKILL.md元数据和指令,可选scripts/、references/、assets/)封装的AI能力单元。它是一份“工作说明书”,告诉Agent在遇到特定任务时应该用什么思路、按什么步骤、遵循什么规范去执行。Skill本身不执行任何操作,它只是把经验和流程“写下来”供Agent读取。
MCP:一个开放的标准协议(基于JSON-RPC 2.0),定义了AI应用(MCP Client)与外部系统(MCP Server)之间的通信规范。MCP Server可以暴露三类核心原语给Agent:Tools(可调用的工具)、Resources(可读取的数据资源)、Prompts(预定义的提示词模板)。MCP解决的是“连接”问题——让Agent不用为每个工具写定制代码,一套标准接口对接所有外部系统。
一句话总结:Skill是“说明书”,MCP是“连接线”。
二、职责分工:教“怎么做” vs 给“能做什么”
这是两者最核心的差异。
Skill 负责“怎么做才对” :Skill把团队经验、业务规则、决策逻辑、合规要求写成可复用的工作流程。它约束和引导Agent of的思考方式——例如一个代码审查Skill会强制Agent按顺序检查安全性、风格、性能和可维护性。Skill回答的是“我应该做这件事吗?该怎么做?”。
MCP 负责“能做什么” :MCP把真实世界的工具、数据源、权限边界变成Agent能调用的“能力接口”。它不教Agent任何知识,只负责把外部能力接进来。MCP回答的是“我能做这件事吗?”。
一个类比:Skill像“培训手册”——教实习生按标准流程处理问题;MCP像“USB-C接口”——让电脑能连接显示器、硬盘等各种外设。Skill增强的是Agent的“内在认知”(教AI怎么想),MCP扩展的是Agent的“外在能力”(让AI能做到)。
三、形态差异:静态文件 vs 常驻服务
Skill:静态的Markdown文件(及可选脚本/资源),随Agent按需加载,加载后即用,用完即走。本质上是一份“文档”,不需要后台进程常驻。
MCP:通过长期运行的Server进程提供服务。MCP Server启动后持续运行,等待Agent发起tools/list、resources/read等请求。它是有状态或可维持会话的协议层。
四、使用方式:按需加载 vs 启动注册
Skill:渐进式加载——Agent只在匹配触发条件时才加载对应Skill的完整内容,不会在每次对话中全部塞入上下文。这种机制有效节约了Token消耗。
MCP:启动时批量注册——Agent启动时会向所有已配置的MCP Server发送tools/list请求,拿到完整的工具清单(名称、描述、参数Schema),一次性注入到system prompt中。这意味着即使你只问“2+2等于几”,所有MCP工具的定义也已经占用了大量上下文。一个GitHub MCP Server可能消耗约18,000 tokens。
这也是为什么很多人认为Skill是对MCP“上下文臃肿”问题的一种补充——Skill充当轻量级的知识路由,确保只有当前任务需要的那几个工具定义进入上下文。
五、典型场景对比
| 场景 | 适合Skill | 适合MCP |
|---|---|---|
| 教会Agent按公司规范写周报 | ✅ 封装周报格式和流程 | ❌ 不涉及外部工具 |
| 让Agent查询生产数据库 | ❌ Skill无法直接连数据库 | ✅ MCP Server提供数据库接口 |
| 标准化代码审查流程 | ✅ 写清检查清单和顺序 | ❌ 流程编排不是MCP的职责 |
| 让Agent调用Jira创建工单 | ❌ 需要实际API调用能力 | ✅ MCP Server封装Jira API |
| 让Agent按固定步骤排查服务器故障 | ✅ 写清排查顺序和判断条件 | ⚠️ 需要配合MCP获取日志/指标 |
六、两者如何协同工作
在实际业务中,Skill和MCP常常配合使用,形成“Skill定流程 + MCP给能力”的组合。
典型协作模式:MCP Server为Agent提供外部工具接口(如GitHub API、数据库查询、Slack发送等);Skill则在SKILL.md中写明“先调用哪个工具、再调用哪个工具、参数怎么填、异常怎么处理”。Agent加载Skill后,按照Skill规定的步骤,依次调用MCP暴露的工具来完成复杂任务。
具体例子:一个“排查CI失败并修复PR”的任务——
- MCP 让Agent真正拿得到证据和操作杆:拉取workflow runs、读取job logs、查部署状态、调用工单系统
- Skill 让Agent知道团队的正确姿势:优先看哪类日志、怎样输出诊断报告、哪些改动必须走人工确认
两者结合起来,Agent既能“知道该做什么”(Skill),也能“实际去做事情”(MCP)。
七、一张表快速判断该用哪个
| 判断维度 | 选择Skill | 选择MCP |
|---|---|---|
| 任务是定义“流程和规范”还是“连接外部系统” | ✅ 流程和规范 | ✅ 连接外部系统 |
| 需要频繁修改内容 | ✅ 改SKILL.md即可 | ❌ 改Server需重启 |
| 需要调用数据库/API/文件系统等外部资源 | ❌ Skill本身做不到 | ✅ MCP Server提供接口 |
| 希望按需加载、节约Token | ✅ 渐进式加载 | ❌ 启动时一次性注册 |
| 需要跨平台复用(一个实现,多处使用) | ⚠️ 需各平台分别支持Skill格式 | ✅ MCP是开放标准协议 |
| 需要长期运行的后台服务 | ❌ 静态文件,无需常驻 | ✅ Server常驻 |
总结
Skill和MCP不是对手,而是搭档。Skill是“业务抽象”——把“怎么做”封装成可复用的流程包(SKILL.md + 脚本/资源);MCP是“技术封装”——把“能做什么”通过标准化协议暴露给Agent。Skill解决的是“知识边界”问题(让AI知道如何做好特定任务),MCP解决的是“能力边界”问题(让AI能访问外部系统)。在实际使用中,最强大的做法是两者结合:用Skill定义步骤 and 规范,用MCP提供执行这些步骤所需的工具接口。
如果你使用实在Agent 7.3.6,它既支持通过技能中心上传Skill来扩充Agent的“知识”和“流程”,也支持配置MCP Server来接入外部工具——你可以在同一个Agent中同时启用两者,让Skill编排步骤、MCP提供能力,真正实现“知道该怎么做”和“能实际去做”的完整闭环。



