这是四篇系列的第 2 篇,回答一个最常见的问题:Skill 和 MCP 到底有什么区别?
1. 核心本质的区别
Skill = “怎么做”
- 定义: Skill 是封装好的专业知识和工作流程。它主要由自然语言编写的指令、模板和代码脚本组成。
- 作用: 它教 Agent 如何思考和规划任务。
- 例子: 告诉 Agent “在写周报时,先提取数据,再按这个格式总结,最后生成图表”。
- 侧重点: 侧重于流程编排、最佳实践和领域专长。
MCP = “能连什么”
- 定义: MCP 是一种开放标准协议,用于标准化 LLM 与外部数据(如数据库)和工具(如 API)的连接方式。
- 作用: 它赋予 Agent 感知和行动的能力。
- 例子: 让 Agent 有能力“读取 GitHub 仓库代码”或“查询 PostgreSQL 数据库”。
- 侧重点: 侧重于互操作性、连接性和执行能力。
2. 详细对比表
| 维度 | Skill (技能) | MCP (模型上下文协议) |
|---|---|---|
| 比喻 | SOP 手册 | USB 接口 |
| 主要组成 | Markdown 文档 + 脚本 (Python/Bash) | Client-Server 协议 + JSON Schema 定义 |
| 运行位置 | Agent 的沙盒环境 / 虚拟机内部 | 通常连接到外部服务或本地服务器 |
| 上下文成本 | 极低。采用“渐进式披露”,启动时仅加载元数据(约 100 tokens) | 较高。通常需要一次性加载工具的 Schema 定义到上下文,可能消耗数万 Token |
| 编写门槛 | 低。非技术人员可用自然语言编写 | 高。需要开发者编写代码配置 Server 和接口 |
| 核心价值 | 减少重复 Prompt,固化专家经验 | 解决“大模型如何连接万物”的接口标准化问题 |
3. 它们是如何协作的?
在实际的高级应用中,Skill 和 MCP 往往是互补的,而不是互斥的。
场景示例:你需要一个“自动修复 Bug”的 Agent。
- MCP 的角色(手脚): 通过 GitHub MCP Server,Agent 获得了“读取代码”和“提交 PR”的能力。
- Skill 的角色(大脑): 通过一个
bug-fixingSkill,你定义了流程:先读取报错日志,再定位相关代码文件,然后编写测试用例复现 Bug,最后修改代码并提交。
协作流程:
- Agent 加载 Skill(获取流程指导)
- Skill 指挥 Agent(规划第一步)
- Agent 通过 MCP 协议调用外部工具(执行具体动作,如读取代码)
- MCP 返回结果
- Skill 指导下一步操作(分析代码并修复)
4. 总结:什么时候用哪个?
-
用 MCP:当你需要 Agent 连接外部世界时。
比如连接你的 Google Calendar、Slack、公司数据库或控制智能家居。MCP 解决了“连接”和“认证”的问题。 -
用 Skill:当你发现自己在反复向 AI 解释同一个任务的步骤时。
比如每次都要说“请按这个格式写文档”或“分析数据前先清洗异常值”。Skill 解决了“标准化”和“上下文管理”的问题。