简介:Skill、RAG、MCP 是当前大模型应用开发中最容易混淆的三个概念:RAG 解决“知识从哪来”,MCP 解决“工具与数据如何接入”,Skill 解决“领域经验如何沉淀复用”。本文从架构层次、Token 消耗、输出一致性、接入成本、运维负担与复用性等维度系统对比三者差异,给出典型场景的选型建议与迁移注意事项,帮助开发者快速建立清晰的选型框架。
大模型应用开发的演进路径大致经历了四个阶段:最早是“写好 Prompt”,开发者把所有要求塞进一次性指令;后来出现 RAG(检索增强生成),为模型外挂知识库;再后来 MCP(Model Context Protocol,模型上下文协议)兴起,让模型能够 standardized 地调用外部工具与数据源;近一年左右,Skill(智能体技能,业内也称 Agent Skills)成为社区关注热点,开发者开始把成熟经验打包成可复用的“技能包”。社区中甚至出现了“Prompt 已死、Skill 当立”的说法——这类表述虽有夸张成分,但确实反映出 Skill 正在改变很多人组织上下文的方式。
概念一多,混淆随之而来。实践中常见的选型错误包括:本该用检索解决的知识问题,硬靠堆长 Prompt 解决,导致 Token 爆炸;本该沉淀为技能的固定流程,每次重写一遍,经验无法积累;本该通过协议调用真实系统的操作,靠模型“凭记忆想象”,结果不可靠。本文就将系统对比 RAG、MCP、Skill 三者(并以传统 Prompt 作为参照基线),说清它们分别解决什么问题、差异来自哪里、不同场景下该如何选择。
RAG 的核心思路是“先检索、后生成”:在模型回答之前,先从外部知识库中检索与问题相关的内容,再将其注入上下文供模型参考。一条完整的 RAG 链路通常包括文档解析、切片、向量化与索引、召回、重排、注入生成等环节。它解决的核心问题是:模型训练数据之外的知识从哪来——包括企业私有知识、时效性知识,以及通过“给依据”来降低幻觉。
MCP 是一种开放的模型上下文协议,用于标准化“模型与外部工具、数据源”之间的连接方式,典型架构是客户端—服务端模式:服务端注册一组工具并对外描述其能力,模型根据任务判断调用哪个工具、传入什么参数,服务端执行后返回结果。它解决的核心问题是:模型只能“说”,不能直接触达真实系统——协议把“说”变成“做”,让模型能够查数据库、调接口、触发流程。
Skill 是把某个领域的完整方法论——执行流程、规范标准、模板示例、辅助脚本——打包成结构化的文件集合。在多数实现中,它就是一个包含说明文档(通常是 Markdown 格式的技能清单)与资源文件的文件夹,例如:
report-skill/ # 一个"月度报告"技能包的通用示意├── SKILL.md # 技能清单:名称、描述、触发条件、执行流程├── references/ # 数据口径、图表规范等参考文档(按需加载)├── templates/ # 报告模板与示例└── scripts/ # 可选的数据处理辅助脚本
它的核心机制是渐进式披露(progressive disclosure):运行时只有技能的名称和一句话描述常驻上下文(开销极小),模型根据任务判断是否命中某技能,命中后才按需加载完整内容:
会话启动└─ 仅注入各技能的元数据(名称 + 一句话描述)用户任务到达└─ 模型匹配任务与技能描述├─ 未命中 → 常规对话处理└─ 命中 → 按需读取该技能完整文档与资源└─ 按文档中的流程与规范执行任务
传统做法是每次对话都把系统提示词、few-shot 示例、风格要求、注意事项全部塞进上下文。它的问题很典型:Token 消耗大、风格随会话漂移、调好的经验无法沉淀、复杂任务上下文承载不住。
在谈差异之前,先明确三者的共同点,避免把它们误认为互斥方案:
这是最本质的差异。用“生成月度数据分析报告”这一个任务贯穿来看:
一句话概括:RAG 补“知道”,MCP 补“做到”,Skill 补“做得又快又稳”。
RAG 需要搭建数据处理与检索链路,涉及文档解析、向量索引、召回服务等组件;MCP 需要部署并维护常驻的服务端进程,处理协议对接、认证配置;Skill 则是静态文件集合,没有运行时服务,放入约定目录即可被识别,部署依赖最轻。
RAG 的输出受召回质量波动影响,语料更新或检索抖动都会带来输出变化;MCP 的动作结果本身是确定的,但“何时调用、如何组织结果”仍靠模型自由发挥;Skill 把流程、规范、模板固化下来,不同会话、不同成员使用同一技能时,输出结构与风格高度一致,效果接近“给团队配了统一操作手册”。
RAG 涉及数据链路搭建与检索调优,复杂度中等偏高;MCP 涉及服务部署、协议、认证、接口变更处理,复杂度最高;Skill 只需编写文档、组织文件夹,复杂度最低。
RAG 需要持续做语料更新、索引重建、检索效果评估;MCP 需要保障服务可用性、处理接口兼容与版本升级,故障面最大;Skill 主要是内容维护,没有服务宕机风险,故障面最小。
RAG 的风险集中在数据隔离与召回越权;MCP 涉及对真实系统的操作,最小权限、凭证管理、调用审计的要求最高;Skill 的风险主要在内容可信度——来源不明的技能可能携带误导性说明或恶意脚本,脚本执行需要沙箱与权限控制。复用性方面:RAG 偏项目内资产,迁移需搬运语料与管道;MCP 的服务端可跨项目复用但依赖部署环境;Skill 以文件夹为载体,可纳入代码仓库版本化管理,克隆即用,天然适合沉淀为团队资产,也具备产品化潜力。
| 维度 | RAG | MCP | Skill(Agent Skills) |
|---|---|---|---|
| 定位层次 | 知识检索层 | 工具/数据接入协议层 | 经验方法论层 |
| 解决的问题 | 模型不知道“事实” | 模型够不到“系统与数据” | 模型不稳定掌握“怎么做” |
| 技术形态 | 检索管道 + 索引服务 | 服务端 + 协议 + 认证 | 文件夹 + 说明文档 |
| Token 消耗 | 中(随召回量增长) | 较高(工具描述常驻) | 低(渐进式按需加载) |
| 输出一致性 | 中(受召回质量影响) | 中(动作确定,组织靠模型) | 高(流程规范被固化) |
| 接入复杂度 | 中高 | 高 | 低 |
| 运维成本 | 索引与语料维护 | 服务运维、接口兼容 | 以文档维护为主 |
| 安全关注点 | 数据隔离、召回越权 | 最小权限、审计、凭证 | 内容可信、脚本沙箱 |
| 复用与分享 | 偏项目内 | 跨项目,依赖部署环境 | 仓库化分发,克隆即用 |
| 典型场景 | 知识问答、客服 | 自动化操作、流程触发 | 周期报告、规范执行 |
选型前先诊断瓶颈,建议按“三问”决策:
再结合团队与成本条件判断:团队运维能力有限时,可优先考虑 Skill 这类低运维方案,或托管化程度更高的 RAG 服务;Token 成本敏感、任务高频重复时,Skill 的按需加载优势明显;涉及真实系统写操作时,应先补齐 MCP 的权限与审计配套再上线,而非直接投入使用。需要说明的是,无论基于百度智能云等大模型服务平台构建应用,还是自建开源链路,三类机制的定位差异是一致的,可以按同一框架评估平台能力覆盖情况。三者不存在“谁取代谁”的关系——Skill 再成熟,也替代不了检索与执行通道。
RAG、MCP、Skill 分别工作在知识层、执行层、方法论层:RAG 解决“知道”,MCP 解决“做到”,Skill 解决“稳定地做好”。它们是分层互补关系,而非替代关系。选型的核心不是追问“哪个更先进”,而是回答三个问题:模型缺什么——缺知识、缺通道,还是缺方法?想清楚这一点,再叠加团队能力、Token 预算与合规要求做条件化判断,就能避免在错误层次上用力。随着技能包作为可沉淀、可分享、可版本化的团队资产被越来越广泛地接受,“检索取事实、协议做动作、技能管方法”的组合,正在成为大模型应用工程化的通用范式。