一图胜千言,我们用一个表格来总结下它们的关系和区别:
特性 | MCP (模型上下文协议) | RAG (检索增强生成) | Agent (智能体) | Function Call (函数调用) |
---|---|---|---|---|
核心思想 | 标准化 AI 与外部数据/工具的通信协议 | 检索外部知识 + 增强提示 + 生成回答 | LLM 驱动的自主决策与任务执行系统 | LLM请求执行外部预定义函数/工具的能力 |
本质 | 协议/规范 | 技术框架/方法 | 系统/应用范式 | 模型能力/特性 |
通俗比喻 | 标准化的 USB 接口 | 写论文前先查资料 | 能干的私人助理 | 助理按指令使用 App |
关系链 | 可作为 Agent 调用工具的底层标准 | 常被 Agent 用作获取知识的手段 | 核心指挥官,使用 RAG/Function Call 等工具 | Agent 执行具体动作的基本手段 |
{调用函数: "查股价", 参数: {"股票代码": "AAPL"}}
。外部程序收到请求,查询 API ,返回结果 {"价格": 180.50}
。AI 再根据这个结果回答你:“苹果当前股价是 180.50 美元。”/docs
目录最新的 Markdown 文件总结一下,发到 Slack 的 #general
频道”。编辑器( MCP 客户端)通过 MCP 协议,与本地的“文件系统 MCP 服务器”和“Slack MCP 服务器”沟通,协调完成整个任务。支持 MCP 的客户端/服务器:
客户端: Claude Desktop App, Cursor, Windsurf, Cherry Studio 等 AI 编辑器或应用。
服务器: Anthropic 官方和社区提供了针对 Google Drive, Slack, GitHub, Git, Postgres, Puppeteer, Milvus (向量数据库), Firecrawl (网页抓取) 等的开源 MCP 服务器实现。开发者也可以根据 MCP 规范自定义服务器。目前,为安全起见,MCP 服务器通常在本地运行。
![]() |
1
twinsant 1 天前 ![]() 点赞
|
![]() |
2
marktrains 1 天前 via iPhone ![]() 点赞,不过这个看起来似乎也是 AI 总结的
|
3
z4zr 1 天前 ![]() |
![]() |
4
suke119 OP @marktrains 那不能 ,完整全文里面图片是 AI 生成的,用的 napkin 做的 可视化图
|
![]() |
5
Magicdove 23 小时 12 分钟前
很通俗易懂
|
![]() |
7
gowk 22 小时 53 分钟前
总结的确实不错
|
![]() |
9
suke119 OP |
![]() |
10
mimiga 20 小时 23 分钟前 ![]() 比喻很生动
|
11
paopjian 20 小时 5 分钟前
function call 实现的原理是什么呢, LLM 应该是输入输出只有文本的, 是有另外的程序接受 LLM 发送的指令, 同时 LLM 也知道可以用指令操作外部程序?
|
![]() |
12
suke119 OP ![]() @paopjian 你可以把他理解成 预定义的函数(可多个) 然后 大模型可以针对你提问的问题、上下文和附加函数集合 响应 对应的函数和参数,这些函数是外部定义好的,但是结构化参数和函数名字是大模型可以定向回答的,结合程序实现 对应的 agent
|
![]() |
13
marktrains 16 小时 21 分钟前 via iPhone ![]() @suke119 那非常用心了,感谢分享
|
![]() |
14
lindongwu11 16 小时 8 分钟前
> 如果每个工具都有自己独特的接口,那 Agent 想用多个工具时,岂不是要学 N 种“方言”?
但是 LLM 的能力学「方言」其实很容易。所以其实没必要用 MCP ,直接把工具调用的提示词加在提示词前面就好了。有很多现成的库可以管理这些了。 |
![]() |
15
suke119 OP @lindongwu11 这个怎么说呢 MCP 现在是一种狂热阶段,后续不知道;像 高德地图、github 仓库、这些都有对应的 mcp server ,工具调用 我们自己还需要维护工具(自己实现工具),但是 mcp 相当于封装了一层 只给我们暴露了函数和参数,具体工具实现不用我们管。边走边看,后面会发展成啥样子都是未知的
|
16
sweat89 15 小时 3 分钟前
我是不是可以理解成,在 mcp 之前都是通过 function calling 实现的
|