使用ChatGPT、Claude Code、Codex等AI工具时,最近越来越容易同时遇到三个词:Prompt、Skill和MCP。
它们看起来都在告诉AI“该怎么做事”,实际解决的问题并不相同。一个最简单的理解是:Prompt负责表达这一次想做什么,Skill负责保存一套反复使用的做事方法,MCP负责让AI连接到外部系统、数据和工具。
三者并不是谁取代谁的关系。在一个完整的Agent任务里,它们甚至可能同时出现:用户先通过Prompt提出需求,AI加载对应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可能规定:
优先访问官网;
再读取GitHub README;
检查Release和Changelog;
确认支持平台、许可证和最新版本;
涉及价格时必须查询官方定价;
官网没有说明的功能不得推测;
正文必须解释适用人群和使用边界;
最终按照固定字段输出;
发布前执行真实性检查。
两者处理的是同一件事,但抽象层级不同。
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:
读取过去7天新增Issue;
排除重复和已关闭问题;
检查是否影响生产环境;
检查是否存在数据丢失、安全或崩溃风险;
按照P0至P3规则分类;
关联已有Pull Request;
生成固定格式周报。
这时完整流程就变成:
用户 Prompt ↓ “分析本周GitHub问题并生成周报” ↓ Agent识别并加载 Issue Triage Skill ↓ Skill规定分析步骤和判断规则 ↓ 通过MCP读取GitHub Issue、PR和提交 ↓ AI分析 ↓ 按照Skill要求输出周报
三者同时存在,但各自负责不同环节。
一个更直观的比喻
可以把AI想象成一名新员工。
Prompt像你今天交给他的任务:
把今天的客户反馈整理成一份报告。
Skill像公司的标准作业流程:
先去重 → 分类 → 判断严重程度 → 关联产品模块 → 提炼典型问题 → 按模板输出
MCP则像公司给他的系统权限和接口:
可以访问客服系统 可以查询数据库 可以读取Slack 可以创建Jira任务
一个员工知道任务,却没有系统权限,很多事情做不了。
有系统权限但没有工作规范,也可能把事情做得很乱。
有完整SOP却没人告诉他今天要处理什么,同样不会自动产生业务结果。
三者组合起来才更接近真正的Agent工作方式。
核心区别对比
| 对比项 | Prompt | Skill | MCP |
|---|---|---|---|
| 主要解决问题 | 告诉模型当前要做什么 | 告诉Agent一类任务应该怎么做 | 让AI连接外部系统和能力 |
| 主要形态 | 文本、图片、文件等输入和指令 | SKILL.md及脚本、资料、模板等 | 客户端、服务器和标准协议 |
| 复用性 | 可复制,但通常面向当前交互 | 强调长期重复使用 | 连接能力可以被多个任务复用 |
| 能否访问外部系统 | 本身不能提供连接能力 | 本身不等于外部连接协议 | 主要用途之一就是连接外部系统 |
| 能否规定工作流程 | 可以,但长流程维护较麻烦 | 这是主要用途之一 | 协议本身不负责规定完整业务流程 |
| 典型例子 | “帮我分析这份报告” | SEO审计流程、代码评审流程 | GitHub、数据库、文件系统连接 |
Skill能不能调用MCP
可以,而且这是两者很自然的组合方式。
例如建立一个“发布版本说明”的Skill,可以规定:
读取上一个Release之后的提交;
检查Pull Request;
按新增、修复和Breaking Changes分类;
生成Changelog;
经过确认后创建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连接任务所需的外部世界。三者各自解决一层问题,也可以在同一个工作流中互相配合。
poxiaoxi博客
精彩评论