提示词(Prompt)、MCP 与 Skills 区别详解
这是一个非常好的问题,这三个概念现在确实经常被混着用。我将用统一视角 + 对照表 + 真实例子给你讲清楚。
一句话先区分
- 提示词(Prompt):你对模型说的“话”
- Skill:模型“会做的一件事”(带规则/工具/代码)
- MCP:模型“如何接入外部世界”的通信与能力协议
可以理解为:
Prompt 是指令语言
Skill 是能力封装
MCP 是能力接入标准
一、提示词(Prompt)是什么?
定义
提示词 = 给大模型的输入指令
告诉模型:你是谁、要做什么、怎么做、有什么约束
特点
- ✅ 纯文本(系统 / 用户 / 示例)
- ❌ 不具备持久能力
- ❌ 不直接访问外部系统
- ❌ 不复用逻辑(只能复制粘贴)
例子
text
你是一个支付网关架构师,请根据以下设计文档,
生成一个 Java Maven 多模块项目结构……📌 问题:
- 每次都要重新说
- 容易跑偏
- 不具备“工具化”
二、Skill(技能)是什么?
你最近用到的 payment-gateway-docs / skill_payment_gateway.py 就是典型 Skill
定义
Skill = 针对某一类任务的“能力封装”
通常包含:
- 触发条件(什么时候用)
- 角色设定
- 行为约束
- 工具 / 文件 / API
- 稳定输出格式
特点
- ✅ 可复用
- ✅ 稳定、可控
- ✅ 可带代码、模板、文件生成
- ✅ 自动触发(不需要每次重复提示)
Skill 本质结构(示例)
yaml
name: payment-gateway-docs
description: 提供支付网关系统的架构、设计和代码生成能力
invoke_when:
- 用户询问支付网关设计python
def run(context):
# 解析设计文档
# 生成项目结构
# 输出代码Skill 能解决的问题
| 问题 | Prompt | Skill |
|---|---|---|
| 复杂逻辑 | ❌ | ✅ |
| 生成项目骨架 | ❌ | ✅ |
| 固定输出结构 | ❌ | ✅ |
| 工程化 | ❌ | ✅ |
📌 可以理解为:Skill = Prompt + 规则 + 代码 + 工具
三、MCP(Model Context Protocol)是什么?
定义
MCP = 大模型与外部能力(工具 / 服务 / 运行环境)通信的协议标准
它不是“一个技能”,而是:
技能、工具、Agent 的“USB-C 接口”
MCP 解决的问题
统一外部接口标准
模型可以调用:
- 数据库
- Git 仓库
- 本地文件
- Web API
- 企业系统
MCP 能做的事情
| 能力 | 说明 |
|---|---|
| 资源(Resources) | 文件、文档、数据库 |
| 工具(Tools) | 执行命令、生成代码 |
| 记忆(Memory) | 长期上下文 |
| Agent 协作 | 多智能体 |
| 本地 / 远程 | 都支持 |
MCP ≠ Skill,但 Skill 可以跑在 MCP 上
Prompt
↓
Skill(能力封装)
↓
MCP(标准协议)
↓
真实世界(文件 / 服务 / 系统)四、三者对照表
| 维度 | Prompt | Skill | MCP |
|---|---|---|---|
| 本质 | 指令 | 能力 | 协议 |
| 是否可复用 | ❌ | ✅ | ✅ |
| 是否工程化 | ❌ | ✅ | ✅ |
| 是否可执行 | ❌ | ✅ | ✅ |
| 是否可接工具 | ❌ | ✅ | ✅ |
| 是否跨平台 | ❌ | ❌ | ✅ |
| 面向对象 | 模型 | 任务 | 生态 |
五、真实例子
1️⃣ Prompt
text
帮我生成一个支付网关系统的 Maven 项目→ 一次性
2️⃣ Skill
text
@payment-gateway-docs
根据设计文档生成完整支付网关项目→ 稳定、专业、可复用
3️⃣ MCP
模型 → MCP → 本地文件系统
↓
生成项目可直接:
- git init
- 写入代码
- 执行 mvn clean package
- 接入 CI / Jenkins
六、使用建议
用 Prompt
- 临时问题
- 一次性问答
- 快速 brainstorm
用 Skill
- 固定任务
- 生成代码 / 文档
- 架构设计
- 企业内知识
用 MCP
- 本地/服务器操作
- 工具化 AI
- Agent 系统
- 私有部署
七、一句话总结
Prompt 是“怎么问”Skill 是“会做什么”MCP 是“怎么连到现实世界”