RAG、Agent、Skill、MCP——AI应用四大金刚,终于串起来

6 阅读11分钟

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 流程是这样的:

  1. 文档预处理:把你们的文档切成小块(Chunk),每块通过 Embedding 模型转成向量,存入向量数据库
  2. 用户提问:用户问一个问题,同样把这个问题的文本转成向量
  3. 相似度检索:在向量数据库里找和提问向量最相似的文档块
  4. 组装 Prompt:把检索到的相关文档块 + 用户问题 + 系统提示词,组装成一个完整的 Prompt
  5. 生成回答:LLM 基于这个 Prompt 生成答案

整个流程用图表示就是:

ai-06-RAG-v3.jpg

为什么 RAG 比微调更适合"让 AI 回答私有数据"

你可能会问:为什么不直接微调模型,让它学会回答这些问题?

原因很简单:

对比维度RAG微调
成本低(不需要重新训练模型)高(需要 GPU 算力和大量数据)
更新速度快(新文档直接入库即可)慢(每次更新都要重新训练)
可解释性高(能告诉你答案是从哪篇文档来的)低(模型"记"在哪里说不清楚)
幻觉风险较低(答案基于真实文档)仍然存在(模型可能在微调中"学歪")
适用场景知识库问答、文档检索特定风格学习、复杂任务模式

一句话:RAG 适合知识不断变化的场景,微调适合让模型学会某种"行为模式"的场景。

RAG 的局限

RAG 不是银弹,它有几个天然的局限:

  1. 检索质量依赖 Embedding 模型:如果文档格式特殊或者语义复杂,检索可能跑偏
  2. 上下文窗口限制:检索出来的文档块太多,可能塞不进去 Prompt
  3. 无法做复杂推理:RAG 本质还是"先查后答",不适合需要多步推理的任务
  4. 实时性有限:文档库更新后,需要重新 Embedding 才能被检索到

二、Agent:会规划、执行、观察、调整的 AI

第 5 篇聊过 Function Calling(FC),那是让 AI 调用工具的基础能力。Agent 在 FC 的基础上,往前迈了一大步:Agent 不只是调用工具,它还能规划任务、执行、观察结果、动态调整。

打个比方:Function Calling 像是一个实习生,你告诉他"去楼下买杯咖啡",他就买咖啡。Agent 像是一个项目经理,你告诉他"下周要开产品发布会",他会自己拆解成任务、安排时间表、跟进每个环节、遇到问题就调整。

Agent 的核心能力,可以用 ReAct 模式来概括:

  • Re(Reasoning):推理规划。把大任务拆成小步骤,想清楚先做什么后做什么
  • Act(Acting):执行操作。调用工具完成具体的子任务
  • 观察(Observe):看结果。每次工具调用后,看看返回了什么
  • 调整(React):根据观察到的结果,调整下一步计划

一个典型的 Agent 执行循环是这样的:

ai-06-Agent.jpg

  1. 用户给一个大任务
  2. Agent 拆解成子任务队列
  3. 取出一个子任务,执行(调用工具)
  4. 观察执行结果
  5. 判断:是继续下一个子任务,还是修改计划
  6. 重复,直到任务完成

规划能力:从"单步执行"到"多步编排"

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 就像是乐高积木,每个积木是一个独立的能力模块:

ai-06-Skill.jpg

Skill 的注册和调用机制

Skill 是怎么被 Agent 发现和使用的呢?

  1. 注册阶段:开发者开发一个 Skill,按照平台规范描述它的能力、参数、格式,然后"注册"到 Agent 平台
  2. 发现阶段:Agent 接收用户任务时,会看看有哪些 Skill 能帮上忙
  3. 调用阶段:Agent 决定调用哪个 Skill,把任务参数传过去,Skill 执行并返回结果

这就是 Skill 的核心价值:把复杂的能力封装成标准化的单元,让 Agent 可以灵活组合使用。

不同平台的不同叫法

这里需要说明一个容易混淆的点:不同平台对 Skill 的叫法不一样。

平台类似 Skill 的叫法
扣子(Coze)Skill
OpenAIFunction / Tool
LangChainTool
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 就能直接调用。

ai-06-MCP.jpg

MCP 的工作原理

MCP 架构里有两个核心角色:

  • MCP Server:工具提供方。它向外界暴露自己的能力(比如"搜索文件""创建 Issue")
  • MCP Client:AI 应用端。它发现和调用这些能力

通信层用 JSON-RPC 2.0 做消息传递,定义了工具发现、调用、返回的全流程。

MCP 与 Function Calling 的区别

很多人会问:Function Calling 不也是让 AI 调用工具吗?有什么区别?

对比维度Function CallingMCP
层级模型层(模型决定调用什么)协议层(标准化怎么调用)
标准化程度无统一标准,每个产品自己定义统一协议,跨平台通用
工具发现开发者自己配置协议支持自动发现
适用范围单个 AI 产品的工具集成任意 AI 连接任意工具

可以这样理解:Function Calling 是"单对单"的适配,MCP 是"多对多"的标准。


五、四者配合:1+1+1+1 > 4

大白话讲透它们怎么协作

RAG、Agent、Skill、MCP 这四个概念,并不是各自为战,而是分工协作、各司其职:

组件职责类比
RAG提供知识图书馆管理员,帮你找到需要的资料
Skill提供能力工具箱里的各种工具,每种工具做一种事
MCP提供标准接口USB-C,让工具能插上就能用
Agent负责编排调度项目经理,把人、工具、资料串起来完成任务

用一张图来表达它们的关系:

ai-06-Integration.jpg

具体场景:让 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 是大脑把一切串起来。


小结

概念全称核心作用类比
RAGRetrieval-Augmented Generation(检索增强生成)让 AI 能回答私有数据的问题图书馆管理员
AgentAI Agent(AI 智能体)规划、执行、观察、调整的自主系统项目经理
SkillSkill(技能)AI 能做的具体事情工具箱里的工具
MCPModel 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。觉得有用的话,点赞收藏走一波,后续持续更新。