RAG、Agent、Skill、MCP——AI应用四大金刚,终于串起来了
你肯定听过这些词——RAG、Agent、Skill、MCP。网上讲得天花乱坠,但看完还是一头雾水:它们到底有啥区别?是怎么配合工作的?为什么一个复杂的 AI 应用要把它们全用上?
别急,这篇就是来给你把这四个概念串成一条线的。看完你就知道,这些"听起来很高级"的名词,其实解决的都是很具体的问题。
一、RAG:让 AI 回答"你的"问题
RAG 的全称是 Retrieval-Augmented Generation,中文叫"检索增强生成"。光看名字还是懵,对吧?
简单说:RAG 就是给 AI 装了一个"资料查找"的能力,让它能回答你私有的、企业内部的问题。
举个例子。你公司有几千份内部文档,员工手册、产品手册、技术文档……你想让 AI 直接回答"我们公司的年假政策是什么"。没有 RAG 之前,AI 只能靠它训练时学到的知识来猜——准确率感人。有了 RAG,AI 会先在你们的文档库里检索相关内容,然后把检索到的内容塞进 Prompt,让模型基于真实文档来回答。
这就是第 3 篇讲过的 Embedding 和向量数据库的实战应用。完整的 RAG 流程是这样的:
- 文档预处理:把你们的文档切成小块(Chunk),每块通过 Embedding 模型转成向量,存入向量数据库
- 用户提问:用户问一个问题,同样把这个问题的文本转成向量
- 相似度检索:在向量数据库里找和提问向量最相似的文档块
- 组装 Prompt:把检索到的相关文档块 + 用户问题 + 系统提示词,组装成一个完整的 Prompt
- 生成回答:LLM 基于这个 Prompt 生成答案
整个流程用图表示就是:
为什么 RAG 比微调更适合"让 AI 回答私有数据"
你可能会问:为什么不直接微调模型,让它学会回答这些问题?
原因很简单:
| 对比维度 | RAG | 微调 |
|---|---|---|
| 成本 | 低(不需要重新训练模型) | 高(需要 GPU 算力和大量数据) |
| 更新速度 | 快(新文档直接入库即可) | 慢(每次更新都要重新训练) |
| 可解释性 | 高(能告诉你答案是从哪篇文档来的) | 低(模型"记"在哪里说不清楚) |
| 幻觉风险 | 较低(答案基于真实文档) | 仍然存在(模型可能在微调中"学歪") |
| 适用场景 | 知识库问答、文档检索 | 特定风格学习、复杂任务模式 |
一句话:RAG 适合知识不断变化的场景,微调适合让模型学会某种"行为模式"的场景。
RAG 的局限
RAG 不是银弹,它有几个天然的局限:
- 检索质量依赖 Embedding 模型:如果文档格式特殊或者语义复杂,检索可能跑偏
- 上下文窗口限制:检索出来的文档块太多,可能塞不进去 Prompt
- 无法做复杂推理:RAG 本质还是"先查后答",不适合需要多步推理的任务
- 实时性有限:文档库更新后,需要重新 Embedding 才能被检索到
二、Agent:会规划、执行、观察、调整的 AI
第 5 篇聊过 Function Calling(FC),那是让 AI 调用工具的基础能力。Agent 在 FC 的基础上,往前迈了一大步:Agent 不只是调用工具,它还能规划任务、执行、观察结果、动态调整。
打个比方:Function Calling 像是一个实习生,你告诉他"去楼下买杯咖啡",他就买咖啡。Agent 像是一个项目经理,你告诉他"下周要开产品发布会",他会自己拆解成任务、安排时间表、跟进每个环节、遇到问题就调整。
Agent 的核心能力,可以用 ReAct 模式来概括:
- Re(Reasoning):推理规划。把大任务拆成小步骤,想清楚先做什么后做什么
- Act(Acting):执行操作。调用工具完成具体的子任务
- 观察(Observe):看结果。每次工具调用后,看看返回了什么
- 调整(React):根据观察到的结果,调整下一步计划
一个典型的 Agent 执行循环是这样的:
- 用户给一个大任务
- Agent 拆解成子任务队列
- 取出一个子任务,执行(调用工具)
- 观察执行结果
- 判断:是继续下一个子任务,还是修改计划
- 重复,直到任务完成
规划能力:从"单步执行"到"多步编排"
FC 时代,工具调用是"一次性"的——你问一个问题,模型决定调用什么工具,然后就结束了。
Agent 的规划能力让事情变得不一样:
用户任务:帮我分析这份 PDF 财报,并发邮件给老板汇报关键数据
Agent 拆解:
1. 调用"读 PDF"工具,提取财报内容
2. 调用"数据分析"工具,识别关键财务指标
3. 调用"生成摘要"能力,生成汇报文字
4. 调用"发送邮件"工具,把摘要发给老板
5. 如果某一步失败,回退或重试
这就是 FC 到 Agent 的本质飞跃:从"单步工具调用"到"多步任务编排"。
多 Agent 协作(简单提及)
一个 Agent 能力有限,复杂任务可以交给多个 Agent 协作完成。比如:
- 一个 Agent 负责研究(Researcher):查资料、读文档
- 一个 Agent 负责分析(Analyst):处理数据、生成洞察
- 一个 Agent 负责写作(Writer):撰写报告
- 一个 Agent 负责审核(Reviewer):检查质量
不过多 Agent 协作是另一个大话题,这篇不展开。你只需要知道:Agent 是会自主规划任务、执行步骤、并且能根据结果动态调整的 AI 系统。
三、Skill:Agent 的能力单元
Skill 就是"技能",是 Agent 能做的事的最小单位。
类比一下:一个人会做饭、会开车、会写代码,这些"会做的事"就是他的技能。AI Agent 也一样,它能搜索网页、能读 PDF、能发邮件——每个"能做的事"就是一个 Skill。
一个 Skill 通常包含:
- 能力描述:这个 Skill 能做什么
- 输入参数:调用时需要提供什么信息
- 输出格式:调用后会返回什么结果
- 调用方式:怎么触发这个 Skill
用图表示,Skill 就像是乐高积木,每个积木是一个独立的能力模块:
Skill 的注册和调用机制
Skill 是怎么被 Agent 发现和使用的呢?
- 注册阶段:开发者开发一个 Skill,按照平台规范描述它的能力、参数、格式,然后"注册"到 Agent 平台
- 发现阶段:Agent 接收用户任务时,会看看有哪些 Skill 能帮上忙
- 调用阶段:Agent 决定调用哪个 Skill,把任务参数传过去,Skill 执行并返回结果
这就是 Skill 的核心价值:把复杂的能力封装成标准化的单元,让 Agent 可以灵活组合使用。
不同平台的不同叫法
这里需要说明一个容易混淆的点:不同平台对 Skill 的叫法不一样。
| 平台 | 类似 Skill 的叫法 |
|---|---|
| 扣子(Coze) | Skill |
| OpenAI | Function / Tool |
| LangChain | Tool |
| Dify | 工具 / 插件 |
| 微软 Copilot Studio | 插件 / 连接器 |
叫法不同,本质一样:都是让 AI 能够调用某种能力。
四、MCP:AI 工具的"USB-C"
MCP 的全称是 Model Context Protocol,中文可以叫"模型上下文协议"。它是 Anthropic 在 2024 年 11 月发布的开放协议,目标是解决 AI 模型连接外部工具和数据源时的"碎片化"问题。
在 MCP 出现之前,每个 AI 工具都有自己的接口格式:
- AI 产品 A 用一套接口连数据库
- AI 产品 B 用另一套接口连数据库
- 你想让同一个工具连不同的 AI,就得写多套适配代码
这就好比每个品牌的手机都有自己的充电口,出门得带一堆线。
MCP 就是那个"USB-C"。 它定义了一套标准协议,让任何 AI 模型可以通过统一的方式连接外部工具。无论你想让 AI 查 GitHub 仓库、操作 Notion 文档,还是控制智能家居——只要工具实现了 MCP Server,AI 就能直接调用。
MCP 的工作原理
MCP 架构里有两个核心角色:
- MCP Server:工具提供方。它向外界暴露自己的能力(比如"搜索文件""创建 Issue")
- MCP Client:AI 应用端。它发现和调用这些能力
通信层用 JSON-RPC 2.0 做消息传递,定义了工具发现、调用、返回的全流程。
MCP 与 Function Calling 的区别
很多人会问:Function Calling 不也是让 AI 调用工具吗?有什么区别?
| 对比维度 | Function Calling | MCP |
|---|---|---|
| 层级 | 模型层(模型决定调用什么) | 协议层(标准化怎么调用) |
| 标准化程度 | 无统一标准,每个产品自己定义 | 统一协议,跨平台通用 |
| 工具发现 | 开发者自己配置 | 协议支持自动发现 |
| 适用范围 | 单个 AI 产品的工具集成 | 任意 AI 连接任意工具 |
可以这样理解:Function Calling 是"单对单"的适配,MCP 是"多对多"的标准。
五、四者配合:1+1+1+1 > 4
大白话讲透它们怎么协作
RAG、Agent、Skill、MCP 这四个概念,并不是各自为战,而是分工协作、各司其职:
| 组件 | 职责 | 类比 |
|---|---|---|
| RAG | 提供知识 | 图书馆管理员,帮你找到需要的资料 |
| Skill | 提供能力 | 工具箱里的各种工具,每种工具做一种事 |
| MCP | 提供标准接口 | USB-C,让工具能插上就能用 |
| Agent | 负责编排调度 | 项目经理,把人、工具、资料串起来完成任务 |
用一张图来表达它们的关系:
具体场景:让 AI 分析 PDF 财报并发送汇报
举个例子,让你完整理解这四个组件是怎么配合的:
场景:你把一份 PDF 财报上传给 AI,让它分析关键数据,然后发邮件给老板汇报。
没有这四个组件的情况下,你会写一堆定制代码,让 AI 能读 PDF、解析数据、写摘要、发邮件——每个环节都要自己对接。
有了这四个组件,流程变成:
1. 用户上传 PDF 财报
↓
2. Agent 接收任务:"分析这份财报并发送汇报邮件"
↓
3. Agent 规划任务:
- 用 RAG 能力找到财报相关内容(文档理解)
- 调用"读 PDF"的 Skill 来提取内容
- 调用"数据分析"的 Skill 来计算关键指标
- 调用"生成摘要"的 Skill 来组织文字
- 调用"发送邮件"的 Skill 来发送汇报
↓
4. MCP 提供标准接口:
- 每个 Skill 都通过 MCP Server 暴露能力
- Agent 通过 MCP Client 调用这些能力
- 不需要为每个 Skill 单独写适配代码
↓
5. RAG 确保回答基于文档:
- 如果有多份财报,RAG 检索相关内容
- 避免 AI 瞎编数据
↓
6. Agent 编排整个流程:
- 按照逻辑顺序执行每个步骤
- 处理错误和重试
- 把最终结果呈现给用户
一句话总结:RAG 给 Agent 知识,Skill 给 Agent 能力,MCP 让 Skill 标准化接入,Agent 是大脑把一切串起来。
小结
| 概念 | 全称 | 核心作用 | 类比 |
|---|---|---|---|
| RAG | Retrieval-Augmented Generation(检索增强生成) | 让 AI 能回答私有数据的问题 | 图书馆管理员 |
| Agent | AI Agent(AI 智能体) | 规划、执行、观察、调整的自主系统 | 项目经理 |
| Skill | Skill(技能) | AI 能做的具体事情 | 工具箱里的工具 |
| MCP | Model Context Protocol(模型上下文协议) | 统一 AI 工具调用的标准协议 | USB-C |
常见误区
误区 1:RAG 和微调是对立的,要选一个
实际上它们是互补的。RAG 适合知识类场景,微调适合行为模式类场景。很多生产系统会把两者结合使用。
误区 2:Agent 就是更高级的 FC
Agent 在 FC 基础上增加了规划、观察、调整能力,但不一定每个 Agent 都会用 FC。FC 是实现 Agent 能力的工具之一。
误区 3:MCP 会取代 Function Calling
不会。MCP 是协议层标准,FC 是模型能力层实现。它们解决不同层面的问题,未来会长期共存。
误区 4:Skill 越多越好
不是。Skill 太多会增加 Agent 的选择负担(叫"工具选择疲劳"),反而可能降低效果。选择 Skill 要根据任务需求精准匹配。
概念速查卡片
| 术语 | 英文 | 大白话 |
|---|---|---|
| 检索增强生成 | RAG | 给AI加知识库检索能力,让它回答私有数据的问题 |
| 智能体 | Agent | 能自主规划、执行、观察、调整的AI系统 |
| 技能 | Skill | 封装好的能力单元,AI可以灵活组合使用 |
| 模型上下文协议 | MCP | 标准化AI工具调用的开放协议,"AI界的USB-C" |
这是「老开发的 AI 笔记」专栏的第 6 篇,用开发者听得懂的话讲 AI。觉得有用的话,点赞收藏走一波,后续持续更新。