使用ChatGPT、Claude Code、Codex等AI工具时,最近越来越容易同时遇到三个词:Prompt、Skill和MCP。

它们看起来都在告诉AI“该怎么做事”,实际解决的问题并不相同。一个最简单的理解是:Prompt负责表达这一次想做什么,Skill负责保存一套反复使用的做事方法,MCP负责让AI连接到外部系统、数据和工具。

三者并不是谁取代谁的关系。在一个完整的Agent任务里,它们甚至可能同时出现:用户先通过Prompt提出需求,AI加载对应Skill确定执行流程,再通过MCP读取数据库、搜索文件或调用业务系统。

一篇理清Prompt、Skill及MCP之间的区别

先说Prompt

Prompt通常翻译为“提示词”或“提示”。它是用户、开发者或系统发送给大语言模型的输入,用来说明当前希望模型完成什么任务。

例如:

分析这份SEO数据,找出流量下降最明显的页面,
说明可能原因,并按影响程度给出优化建议。

这就是一个Prompt。

一个比较完整的Prompt通常会包含任务、背景、限制条件和输出要求:

你是一名SEO分析人员。

根据提供的GSC数据:
1. 找出自然搜索点击下降超过30%的页面;
2. 比较同期展示量和平均排名变化;
3. 区分“排名下降”和“点击率下降”两种情况;
4. 不要根据缺失数据猜测原因;
5. 输出问题页面、判断依据和建议动作。

相比简单说一句“帮我分析SEO”,后者把任务边界说得更清楚,模型得到的执行方向也更明确。

因此,Prompt解决的核心问题是这一次怎么向AI表达任务

Prompt的局限也很明显

如果一个任务只做一次,Prompt通常已经够用。

问题出现在重复工作中。

例如,团队每周都需要生成一份网站运营报告,每次都要告诉AI:

  • 先检查数据时间范围;

  • 再比较上周和上月;

  • 分析自然搜索、直接流量和引荐流量;

  • 不能把相关性直接写成因果关系;

  • 异常数据必须标出来;

  • 最后按固定HTML格式输出。

如果每周都复制一段几千字的Prompt,不仅麻烦,也容易出现版本不一致。有人少复制了一条规则,结果就会发生变化。

这正是Skill开始有价值的地方。

Skill更像一份操作手册

Skill可以理解为提供给AI Agent使用的可复用工作流程。

OpenAI对Skill的定位是:把经常重复的工作方式保存成可重复使用、可共享的流程,让ChatGPT在处理对应任务时按照相对一致的方法执行。

按照Agent Skills规范,一个Skill至少包含一个SKILL.md文件,还可以附带脚本、参考资料、模板和其他资源。

seo-report/
├── SKILL.md
├── scripts/
│   └── analyze.py
├── references/
│   └── metric-rules.md
└── assets/
    └── report-template.html

SKILL.md可以规定:

  • 什么情况下应该使用这个Skill;

  • 任务开始前需要检查哪些输入;

  • 必须按照什么步骤执行;

  • 哪些数据不能自行推测;

  • 什么时候运行脚本;

  • 应该读取哪些参考资料;

  • 最终输出采用什么格式;

  • 完成前需要检查哪些项目。

于是,过去写在超长Prompt里的大量固定规则,可以沉淀到Skill中。

Skill不是“更长的Prompt”

两者最容易混淆的地方就在这里。

Skill内部确实会包含大量自然语言指令,所以从表面上看,它很像保存下来的一组Prompt。但Skill通常比单次Prompt多了一层“工作流程”的概念。

例如一个“生成产品评测文章”的Prompt可能是:

访问官网和GitHub,了解这个项目,
然后写一篇客观的产品介绍文章。

而对应的Skill可能规定:

  1. 优先访问官网;

  2. 再读取GitHub README;

  3. 检查Release和Changelog;

  4. 确认支持平台、许可证和最新版本;

  5. 涉及价格时必须查询官方定价;

  6. 官网没有说明的功能不得推测;

  7. 正文必须解释适用人群和使用边界;

  8. 最终按照固定字段输出;

  9. 发布前执行真实性检查。

两者处理的是同一件事,但抽象层级不同。

Prompt更像“这次我要你做什么”,Skill更像“以后遇到这种事情,都按照这套方法做”。

那MCP是什么

MCP全称Model Context Protocol,即模型上下文协议。

它是一套开放协议,用于让AI应用以相对统一的方式连接外部系统。官方文档常用“AI应用的USB-C接口”来解释它:不同设备通过USB-C形成统一连接方式,MCP则试图让AI客户端与文件、数据库、API和各种业务系统建立标准化连接。

例如,一个AI助手本身可能不知道:

  • 你的GitHub仓库里有什么代码;

  • 公司数据库里有哪些订单;

  • Slack里刚刚讨论了什么;

  • 日历中明天有哪些会议;

  • 本地文件夹里有哪些文档。

接入相应的MCP Server后,AI应用可以通过统一协议发现并使用这些能力。

所以MCP主要解决的是:

AI怎样标准化地连接外部世界。

MCP可以提供什么

MCP Server主要可以向AI应用提供Tools、Resources和Prompts等能力。

能力作用例子
Tools执行具体操作查询数据库、创建Issue、发送消息、写入文件
Resources提供上下文数据文件内容、数据库Schema、知识库资料
Prompts提供可复用提示模板生成周报、分析项目、整理会议内容

例如,一个GitHub MCP Server可以向AI暴露“读取Issue”“查看Pull Request”“创建Issue”等工具。模型不需要知道GitHub API的全部请求细节,只需要根据工具定义决定何时调用。

一个数据库MCP Server则可能提供查询工具和数据库Schema资源,让AI能够理解表结构并执行经过授权的查询。

最容易混淆的一点

MCP自己也有“Prompts”,Skill里面也有提示指令,因此三者并不是绝对互不重叠。

关键要看它们所在的层级。

MCP中的Prompt,是MCP Server可以暴露的一种协议能力,本质上仍然是可调用的提示模板。

Skill则是一套更完整的任务执行方法。它可能告诉Agent什么时候调用什么工具、先读取哪些资料、按照什么顺序处理、失败时怎么办,以及最后怎样检查结果。

换句话说:

Prompt:描述任务
Skill:组织任务流程
MCP:提供外部连接能力

这是理解三者最实用的方式,但不是严格的技术边界定义。

放到一个例子里就清楚了

假设你的任务是:

分析GitHub项目最近一周的问题,
找出需要优先处理的Bug,并生成周报。

只有Prompt

你可以直接告诉AI:

分析最近一周GitHub Issue,
按严重程度分类,并生成开发周报。

但如果AI无法访问GitHub,它只能根据你手动提供的内容分析。

加上MCP

接入GitHub相关能力后,AI可以读取真实Issue、Pull Request和提交记录。

现在它“有手有眼”了,可以获得外部数据。

但它仍然未必知道你的团队应该怎样判断优先级。

再加Skill

团队可以建立一个Issue Triage Skill:

  1. 读取过去7天新增Issue;

  2. 排除重复和已关闭问题;

  3. 检查是否影响生产环境;

  4. 检查是否存在数据丢失、安全或崩溃风险;

  5. 按照P0至P3规则分类;

  6. 关联已有Pull Request;

  7. 生成固定格式周报。

这时完整流程就变成:

用户 Prompt
↓
“分析本周GitHub问题并生成周报”
↓
Agent识别并加载 Issue Triage Skill
↓
Skill规定分析步骤和判断规则
↓
通过MCP读取GitHub Issue、PR和提交
↓
AI分析
↓
按照Skill要求输出周报

三者同时存在,但各自负责不同环节。

一个更直观的比喻

可以把AI想象成一名新员工。

Prompt像你今天交给他的任务:

把今天的客户反馈整理成一份报告。

Skill像公司的标准作业流程:

先去重 → 分类 → 判断严重程度 →
关联产品模块 → 提炼典型问题 → 按模板输出

MCP则像公司给他的系统权限和接口:

可以访问客服系统
可以查询数据库
可以读取Slack
可以创建Jira任务

一个员工知道任务,却没有系统权限,很多事情做不了。

有系统权限但没有工作规范,也可能把事情做得很乱。

有完整SOP却没人告诉他今天要处理什么,同样不会自动产生业务结果。

三者组合起来才更接近真正的Agent工作方式。

核心区别对比

对比项PromptSkillMCP
主要解决问题告诉模型当前要做什么告诉Agent一类任务应该怎么做让AI连接外部系统和能力
主要形态文本、图片、文件等输入和指令SKILL.md及脚本、资料、模板等客户端、服务器和标准协议
复用性可复制,但通常面向当前交互强调长期重复使用连接能力可以被多个任务复用
能否访问外部系统本身不能提供连接能力本身不等于外部连接协议主要用途之一就是连接外部系统
能否规定工作流程可以,但长流程维护较麻烦这是主要用途之一协议本身不负责规定完整业务流程
典型例子“帮我分析这份报告”SEO审计流程、代码评审流程GitHub、数据库、文件系统连接

Skill能不能调用MCP

可以,而且这是两者很自然的组合方式。

例如建立一个“发布版本说明”的Skill,可以规定:

  1. 读取上一个Release之后的提交;

  2. 检查Pull Request;

  3. 按新增、修复和Breaking Changes分类;

  4. 生成Changelog;

  5. 经过确认后创建Release。

其中“读取提交”“查询PR”“创建Release”等能力,可以来自GitHub连接工具,包括通过MCP暴露的工具。

Skill负责流程,MCP负责提供执行这些步骤所需的外部能力。

MCP也不是“万能插件”

MCP解决的是标准化连接问题,并不保证接入之后AI就能正确完成任务。

一个MCP Server可能提供几十甚至几百个工具,但模型仍然需要理解:

  • 什么时候应该调用哪个工具;

  • 参数应该怎样填写;

  • 调用顺序是什么;

  • 哪些操作需要用户确认;

  • 失败后应该如何处理。

工具越多,也不一定越好。大量相似工具会增加选择难度,高权限工具还会带来安全风险。

这也是为什么“把系统接上MCP”和“做出一个可靠Agent”不是同一件事。连接只是基础,任务设计、权限控制、Skill流程和结果验证仍然需要单独处理。

三者不是升级关系

把Prompt、Skill、MCP理解成“初级、中级、高级”并不准确。

MCP不会取代Prompt,因为用户始终需要表达自己的目标。

Skill也不会取代Prompt,因为Skill通常仍然需要根据用户当前任务获得具体输入。

Prompt写得再详细,也不能凭空获得一个没有连接的数据源。

MCP接入再多系统,也不能自动形成一套可靠的业务流程。

更合理的关系是:

Prompt
负责表达意图

        ↓

Skill
负责沉淀方法与流程

        ↓

Tools / Resources
负责提供执行能力与上下文
        ↑
        │
MCP可以标准化地暴露这些外部能力

实际Agent系统未必严格按照这张图实现,但用它理解三者的职责已经足够。

真正要解决的是哪一层问题

遇到AI效果不好时,可以先判断问题发生在哪里。

AI没理解你的要求,优先改Prompt。

同类任务每次结果结构不同、步骤经常遗漏,可以考虑把流程做成Skill。

AI知道该做什么,却无法读取真实业务数据或执行操作,则需要检查工具、API或MCP连接能力。

很多复杂Agent项目的问题,恰恰来自把这三个层次混在一起:用越来越长的Prompt弥补缺失的工作流程,用Skill试图解决根本不存在的数据权限,或者接入大量MCP工具后期待模型自动知道公司的业务规则。

把Prompt、Skill和MCP分开理解后,Agent系统的结构会清楚很多:Prompt给出当前目标,Skill保存可复用的方法,MCP连接任务所需的外部世界。三者各自解决一层问题,也可以在同一个工作流中互相配合。

参考资料

  1. OpenAI Prompt基础说明

  2. OpenAI Skills使用说明

  3. Agent Skills开放规范

  4. Model Context Protocol官方介绍

  5. MCP Server核心能力说明