# 提示词（Prompt）、MCP 与 Skills 区别详解

URL: https://caijiao.org/posts/48
Source: docs/posts/48.md
Description: 深入解析 Prompt、Skill 与 MCP 的概念、区别及应用场景，附真实例子和对照表。

这是一个非常好的问题，这三个概念现在确实经常被混着用。我将用**统一视角 + 对照表 + 真实例子**给你讲清楚。

## 一句话先区分

- **提示词（[Prompt](/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](/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 是“怎么连到现实世界”**
