掘金 人工智能 23小时前
走进AI(1):细说RAG、MCP、Agent、Function Call
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入剖析了Agent、RAG、Function Call和MCP这四大技术如何弥补大语言模型(LLM)在知识时效性、操作现实世界和记忆能力上的天然缺陷。Agent作为决策中枢,负责任务规划、工具调用和自我反思;RAG则扮演实时搜索引擎的角色,通过检索增强生成,为LLM提供最新或专有数据;Function Call赋予LLM“机械手”的能力,使其能够调用外部API操作现实世界;而MCP则通过模型上下文协议,解决了LLM的记忆管理问题,实现长期记忆和个性化服务。文章详细阐述了这四种技术的工作原理、应用场景及其协同作用,揭示了AI从“书呆子”向“实干家”的进化路径。

🤖 **Agent:AI的“决策中枢”** Agent的核心能力包括任务规划、工具调用和自我反思。它能将复杂的用户指令分解为一系列可执行步骤,并协调RAG、Function Call和MCP等组件来完成任务。例如,在规划旅行时,Agent可以先用RAG查询景点信息,再利用MCP了解用户偏好,最后通过Function Call预订门票和餐厅。

📚 **RAG:AI的“实时搜索引擎”** RAG(检索增强生成)通过连接外部知识库,解决了LLM知识截止的问题。它允许LLM访问最新或私有的数据,通过检索相关信息并将其整合到生成过程中,提供更准确和时效性的回答。RAG适用于需要最新信息或特定领域知识的场景,但其效果依赖于检索库的质量和时效性。

🛠️ **Function Call:AI的“机械手”** Function Call(函数调用)使LLM能够与外部工具和API进行交互,突破了纯文本的限制,使其能够执行实际操作。通过将自然语言指令转化为结构化的API调用,LLM可以实现查询天气、发送邮件、控制智能家居等功能。这是AI从“能说会道”转向“真办实事”的关键能力。

🧠 **MCP:AI的“记忆增强”** MCP(模型上下文协议)旨在解决LLM有限的上下文窗口问题,实现长期记忆和个性化服务。它通过短期上下文缓存和长期记忆存储(如向量数据库),能够记录用户的偏好、历史交互信息等,使得AI服务更加连贯和个性化。MCP的双重身份——模型上下文协议和接口规范,也促进了AI生态系统的标准化和模块化发展。

一、RAG、MCP、Agent、Function Call分别是什么意思


1. 大语言模型(LLM)的“天赋缺陷”

LLM(如GPT-4、Claude、Gemini)本质上是一个 「超级文本预测器」,它的核心能力是:

✅ 根据输入的文字,预测最合理的下一段文字。

但它有三大硬伤:

缺陷1:知识截止性

缺陷2:无法操作现实世界

缺陷3:短期记忆有限


2. 四大技术如何补足LLM?

(1)Agent(智能体)—— AI的“决策中枢”

核心作用:把用户指令拆解成可执行步骤,协调其他组件完成任务。

Agent的三大核心能力

1. 任务规划(Planning)

2. 工具调用(Tool Use

3. 自我反思(Self-Reflection)

Agent的典型架构

用户输入 → Agent大脑(LLM) → 决策                          ↓           RAG Function Call MCP             ↓        ↓         ↓          查资料   调API     读记忆

(2)RAG(检索增强生成)—— AI的“实时搜索引擎”

核心作用:让LLM能访问最新或专有数据,避免“知识截止”问题。

RAG的工作流程

    用户提问:“2024年欧洲杯冠军是谁?”检索模块:
      去数据库/互联网搜索“2024欧洲杯 冠军”返回相关段落(比如:“西班牙2-1英格兰夺冠”)
    生成模块:LLM把检索结果整合成自然语言回答。

RAG的两种用法

RAG的局限性


(3)Function Call(函数调用)—— AI的“机械手”

核心作用:让LLM能操作外部工具,突破“纯文本”限制。

典型应用场景

用户指令Function Call 调用的API
“明天上海天气怎么样?”天气API(如OpenWeatherMap)
“帮我发邮件给老板”Gmail/SendGrid API
“关掉客厅的灯”智能家居API(如Home Assistant)

Function Call的执行流程

    LLM识别用户意图(“这是一个天气查询请求”)LLM生成结构化参数({ "location": "上海", "date": "2024-07-30" })系统调用天气API,返回数据({ "temp": 28℃, "rain": true })LLM把API结果转换成人类语言:“明天上海28℃,有雨,记得带伞!”

为什么不能直接用API?

因为普通用户不会写代码!Function Call的本质是 “把自然语言翻译成API调用”。


(4)MCP(模型上下文协议)—— AI的“记忆增强”

核心作用:突破LLM的上下文窗口限制,实现长期记忆和个性化服务。

MCP的两种记忆类型

    短期记忆:当前对话的上下文(比如聊了10句,它还记得第1句的内容)长期记忆:跨会话存储的关键信息(比如用户说“我对花生过敏”)

MCP的实现方式

MCP的典型应用


3. 四大技术如何协同作战?

实战案例:用户说“帮我规划一个周末上海游”

    Agent拆解任务:

      ① 查上海景点(RAG)② 查用户偏好(MCP:上次用户说“讨厌排队”)③ 订门票/餐厅(Function Call)

    RAG检索最新信息:

      从旅游网站抓取“2024年上海必去景点”,排除需要排队的。

    Function Call执行操作:

      调用携程API订外滩观景台门票调用大众点评API订一家不排队的本帮菜

    MCP持续记忆:

      记录用户本次选择了“文艺路线”,下次推荐博物馆而非游乐场。

    LLM生成最终回复:

    “为您规划了轻松文艺的上海周末游:

      周六上午:参观浦东美术馆(已订票,免排队)周六中午:在「老吉士」吃正宗本帮菜(已订座)周日下午:漫步武康路历史街区(免费)
      需要调整随时告诉我~”

    未来趋势:更智能的AI Agent现在的LLM+四大技术只是起点,未来会进化成:

总结:AI从“书呆子”到“实干家”的进化之路

技术作用类比
LLM大脑,负责生成文本理论派学霸
Agent指挥官,拆解任务项目经理
RAG实时补充知识活体百科全书
Function Call操作现实世界机械手
MCP长期记忆超强备忘录

最终效果:让AI不仅“能说会道”,还能“真办实事”! 🚀

二、细说rag和function call 的区别关系

RAG(检索增强生成)和Function Call(函数调用)是大模型的两大“外挂”,一个负责知识补充,一个负责实际操作。它们经常被同时使用,但定位完全不同。下面用最直白的方式拆解它们的区别和协作关系。


1. 核心区别:一个“查资料”,一个“干实事”

维度RAGFunction Call
核心功能从外部知识库检索信息,增强生成内容调用外部工具/API执行具体操作
输入输出输入:用户问题;输出:文本片段输入:结构化参数;输出:操作结果
数据时效性依赖检索库的更新频率(可能滞后)实时获取最新数据(如股票价格)
典型场景“2023年诺贝尔奖得主是谁?”“帮我订明天北京的机票”
人类类比图书管理员(只会翻书告诉你答案)秘书(能打电话、发邮件、订酒店)

2. 工作原理对比

RAG 的工作流程
    用户提问:“特斯拉2023年财报的净利润是多少?”检索:从财经数据库/网页抓取相关段落(如:“特斯拉2023年净利润150亿美元”)。生成:LLM将检索结果整合成自然语言回答。

✅ 优势:解决LLM知识陈旧的问题。

❌ 局限:如果检索库没有数据(比如查公司内部文件但未上传),RAG就无效。

Function Call 的工作流程
    用户指令:“今天北京的温度是多少?”参数化:LLM生成API调用参数:
{ "service": "weather", "location": "北京", "date": "2024-07-30" }
    执行:系统调用天气API(如中国气象局接口),返回实时数据:
{ "temp": 32, "humidity": 65% }
    回复:LLM将数据转换成人类语言:“今天北京32℃,湿度65%。”

✅ 优势:能获取动态数据或操作现实世界。❌ 局限:需要预先配置API权限和参数规则。


3. 关键区别点

(1) 数据来源不同

→ 适合回答“是什么”的问题(事实、概念、历史记录)。

→ 适合回答“现在怎样”或“怎么做”的问题(天气、股价、订票)。

(2) 输出形式不同

→ 答案可能包含冗余信息(比如检索到整段财报,LLM需提取关键数字)。

→ 精确高效,但需要LLM做“翻译”才能人类可读。

(3) 失败处理方式不同

4. 协作场景:它们如何配合?

案例:用户问_“帮我分析苹果公司最新财报,并预测明天股价”_

    RAG出手:
      检索苹果公司最新财报PDF,提取关键数据(营收、利润)。
    Function Call出手:
      调用股票API获取实时股价和分析师评级。
    LLM整合:
      结合RAG的财报数据和Function Call的实时行情,生成分析报告。

💡 本质分工:- RAG解决“知识不足”(LLM不知道的事)。- Function Call解决“能力不足”(LLM做不到的事)。


5. 什么时候用哪个?

用户需求该用谁?原因
“《奥本海默》豆瓣评分多少?”RAG需要从影评网站抓取最新评分
“用Python画一个正弦波”Function Call需调用代码执行环境
“拜登最近发表了什么演讲?”RAG + Function Call先用RAG查演讲文本,再用Function Call翻译成中文
“删除我电脑里所有.txt文件”Function Call需操作本地文件系统

6. 常见误区

❌ 误区1:“RAG和Function Call都能获取外部数据,随便用一个就行”

→ 实际上:RAG适合静态知识,Function Call适合动态服务。查天气永远该用API(Function Call),而不是RAG去翻过时的网页。

❌ 误区2:“Function Call比RAG更高级”

→ 实际上:它们互补!比如用户问_“爱因斯坦的相对论和杨振宁的贡献有什么关系?”_,这时需要RAG检索物理学论文,而Function Call毫无用武之地。


总结

三、MCP的具体作用

MCP(Model Context Protocol) 作为模型上下文协议和接口规范的双重身份,确实是一个关键设计。它既解决了LLM的“记忆管理”问题,又为外部系统提供了标准化交互方式。下面我们从技术本质、应用场景和行业实践三个层面展开分析:


1. MCP 的双重身份解析

(1) 作为模型上下文协议:AI的“记忆中枢”
# 当用户说"我对花生过敏"时,MCP会存储:{  "user_id": "123",  "context_type": "user_preference",  "key": "allergies",  "value": ["花生"],  "expire_time": "never"  # 永久记忆}
(2) 作为接口规范:生态系统的“通用语言”
// 外部系统调用MCP写入记忆的请求{  "operation": "upsert",  "namespace": "medical",  "data": {    "user_id": "123",    "blood_type": "A+"  }}

2. 为什么需要这种双重设计?

(1) 技术必要性
(2) 商业价值

3. 行业中的MCP实现案例

(1) OpenAI的GPTs记忆管理
# GPTs配置文件中定义记忆结构memory_schema:  - name: "favorite_coffee"    type: "string"    description: "用户最喜欢的咖啡种类"
(2) LangChain的Memory Classes
from langchain.memory import ConversationBufferMemorymemory = ConversationBufferMemory()memory.save_context(    {"input": "我喜欢喝拿铁"},     {"output": "已记住您的咖啡偏好"})
(3) 企业级AI中台
POST /api/memory/v1/updateHeaders:  Authorization: Bearer <token>Body:  {    "user": "customer_789",    "context": {      "last_transaction": "2024-03-15T11:30:00",      "risk_level": "medium"    }  }

4. MCP与其他技术的协同

(1) 与RAG的协作
{  "operation": "create",  "namespace": "medical_history",  "data": {    "user": "patient_456",    "diagnosis": "type-2 diabetes",    "date": "2023-05-20"  }}
(2) 与Function Call的集成
# 订票成功后写入记忆def book_flight(...):    order_id = call_booking_api(...)    mcp_client.save(        namespace="travel",        key="latest_order",        value=order_id    )

5. 未来演进方向

    动态记忆权重
      根据信息重要性自动调整记忆强度(如用户说了3次“不要香菜”则提升该记忆优先级)。
    多模态记忆
      支持存储图片、语音等非结构化数据(如用户上传的处方照片)。
    联邦化记忆
      跨企业安全共享记忆(医院AI和药店AI通过加密协议交换患者过敏史)。

总结:MCP的产业价值

这种协议层的设计,才是让AI从“玩具”变成“生产力工具”的关键基建。 🏗️

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

大语言模型 Agent RAG Function Call MCP
相关文章