掘金 人工智能 07月30日 12:16
MCP 进阶思考
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了AI模型调用外部工具的能力,并重点解析了MCP(Modular Component Protocol)在其中的作用。文章首先澄清了MCP并非仅仅是AI调用外部工具的能力,而是相较于Function Calling等技术,MCP在多工具并行调用、长时异步操作、跨会话状态管理以及工具版本控制等方面具有显著优势。文章详细解释了Function Calling、RAG和Prompt这三种核心技术,并指出MCP作为Function Calling的上层协议,能够扩展其功能,也可利用Prompt实现。最后,文章展望了MCP未来的发展潜力,认为它将推动AI进入模块化、领域化的新时代,并推荐了MCP.so、ModelScope等市场平台。

💡 MCP与Function Calling的区别与联系:MCP并非取代Function Calling,而是作为其上层协议,扩展了多工具并行调用、长时异步操作、跨会话状态管理和工具版本控制等功能,弥补了Function Calling在这些方面的局限性,并可通过Prompt实现,不强依赖Function Calling。

🛠️ Function Calling、RAG与Prompt的技术解析:Function Calling是LLM与外部工具交互的协议规范,定义了数据传输格式(如JSON Schema);RAG是一种检索方法,通过向量数据库增强生成;Prompt是基于规则的对话系统,通过精心设计的提示词引导AI行为,有时可模拟调用外部工具。

🚀 MCP的优势与应用场景:MCP支持多工具并行调用、批量请求、长时异步操作以及跨会话状态管理,能够更灵活、更高效地整合外部资源,打破AI模型的能力限制,提升使用体验。

🔮 MCP的未来发展潜力:MCP处于高速普及阶段,其Tools、Resources、Prompt等功能已被广泛应用,而Sampling等更强大的能力尚未完全开发。未来,MCP有望推动AI实现一键式复杂任务处理,如制定出行计划、生成销售方案、完成数据分析等,引领AI进入模块化、领域化的新时代。

MCP 进阶指南

提出两个问题:MCP从哪里来,MCP要到哪里去?

MCP从哪里来?

在讨论这个问题前,是否有人会对 MCP 有这样的理解: MCP 就是给 AI 添加了调用外部工具的能力。

这个理解是错误的,原因非常明显,**在 MCP 之前,AI 就有调用外部工具的能力,**比如说:

直接上结论

模块主要技术补充说明
联网搜索Function Calling通过API调用搜索引擎(如Google/Bing)
知识库RAG从向量数据库或文档库检索信息并增强生成
AgentFunction Calling + PromptAgent既可能调用工具(Function Calling),也可能依赖Prompt规划任务

Function calling, RAG, Prompt 是什么?

先看解释:

从文字解释中我们就能飞快地确定这三个技术中只有 Function Calling 才是真正调用外部工具的技术。RAG着重于读取和检索,是处理数据的一种能力,虽然我们能提供外部文件,但本质是然后转换成 AI 能快速理解的格式。Prompt则本质就是提示词,一种帮助 AI 做决策的规则比如:请先搜索2024年GDP数据,再计算中美增长率差异。( 这边可能存在疑惑,因为这确实像极了让 AI 拥有了调用外部工具的能力,不过这在下面讲解 )

Function Calling 是什么?

看解释,就可以知道他本质是一种协议规范,换句话说:只要工具根据指定的数据格式传递过来,就能调用(其实还需要符合对应AI大模型的 白名单 + 权限, 想具体了解可以查看OpenAI 文档 )。

于是,什么样的数据格式:JSON Schema比如必须明确符合的格式:- 字段类型(字符串、数字、布尔值等)- 必填字段(哪些字段必须存在)- 取值范围(如数字的最小/最大值)- 嵌套结构(对象中嵌套数组或其他对象)- 默认值(字段未提供时的默认值)

用户提问:"2024年奥运会在哪里举办?"模型生成的 Function Calling 请求:

{  "tool": "web_search",  "query": "2024年奥运会举办地"}

系统执行搜索后返回:

{  "results": [    {      "title": "2024年奥运会 - 维基百科",      "snippet": "2024年奥运会将于法国巴黎举行。"    }  ]

那为什么需要MCP?

既然 Function Calling 已经能调用外部工具,那么 MCP 又为什么出现?似乎 MCP 几乎等同于 Function Calling

然而:

需求Function CallingMCP协议
多工具并行调用❌ 单次调用单工具✅ 批量请求支持
长时异步操作❌ 同步阻塞式✅ 轮询/回调机制
跨会话状态管理❌ 无原生支持✅ 显式context_id传递
工具版本控制❌ 需人工管理✅ URI内置版本号
# OpenAI格式tools = [{"type": "function", "function": {"name": "get_weather"...}}]# Claude格式tools = {"tool_uses": [{"name": "get_weather"...}]}

于是我们又会疑问:MCP 要取代 Function Calling 吗?

答案还是是否定的,并且直接抛出流程图

从这个图看出来 MCP 并非取代 Function Calling, MCP 作为 Function Calling 的上层协议,他们之间没有替代的关系,只是 Function Calling 在功能上扩展了 MCP 的功能。

并且 MCP 也并非是强依赖于 Function Calling,还可以利用 Prompt 实现。

MCP 根本不应该作为 Function Calling 的比较事物。

Prompt——伪装大师

在大模型、客户端极度缺乏 Function Calling 能力的情况下,理论上 AI 是无法调用外部文件的。但我们在使用各种 AI 产品时都能看到,有些 AI 产品可以调用外部文件,为什么呢?

因为每个客户端背后都会有巨长无比的提示词,就拿roocode 的举例

足足有600多行,换算成token随便上万,当你添加了外部工具时,客户端就会去解析,并将其转化成指令(inputSchema)并存储在提示词中比如:

# 已连接的MCP服务器当服务器连接时,你可以通过`use_mcp_tool`工具使用服务器的工具,并通过`access_mcp_resource`工具访问服务器的资源。## my-mcp-server (`node /Users/zhiyi/Documents/Code/MY/mcp/mcp-server/main.js`)### 可用工具- add: 张三计算法    输入模式:{      "type": "object",      "properties": {        "a": {          "type": "number"        },        "b": {          "type": "number"        }      },      "required": [        "a",        "b"      ],      "additionalProperties": false,      "$schema": "http://json-schema.org/draft-07/schema#"    }

Function Calling调用方式:

// 模型生成的 Function Calling 请求{  "tool": "add",  "a": 3,  "b": 5}// 系统调用工具后返回的结果{  "content": [{"type": "text", "text": "9"}]  // 3 + 5 + 1 = 9}

Prompt调用方式:

// 发起指令请模拟调用“张三计算法”工具,输入 a=3 和 b=5,返回工具的计算结果。按以下格式响应:工具名称: add输入: {"a": 3, "b": 5}输出: {"content": [{"type": "text", "text": "计算结果"}]}// 模型返回工具名称: add输入: {"a": 3, "b": 5}输出: {"content": [{"type": "text", "text": "9"}]}  # 模型根据inputSchema“猜”出 3+5+1=9

Prompt 更像是读取工具,让模型自己去理解,并根据规则生成指令,这在简单的任务中问题并不是特别大,但在复杂的任务中,模型可能无法理解提示词,导致模型无法正确执行。比如:

模拟调用“人脸识别工具”,输入照片链接:https://example.com/photo.jpg。

MCP要到哪里去?

MCP 的出现直接引燃了 AI 模型调用外部工具的热潮,他打破了 AI 模型的限制性,让 AI 模型可以更灵活更容易配置

并且 MCP 还处于高速普及的道路上,他本身提供的功能远远没被开发完毕

可以看出主要的 ToolsResourcesPrompt 功能,也就 Tools 被广泛应用, 更别说像是 Sampling 这么强大的能力还没有被开发出来。未来发展的空间巨大,每集成一个功能都是对使用体验极大的提升。这就像极了 GPT 刚出来的时候,大家都在吐槽,但现在 GPT DeepSeek等 AI 模型能力 开始触及到生活的方方面面。也许过不了多久,我们可以一键制定出行计划,一键生成销售方案,一键完成数据分析,真正进入模块化领域化。

如今 MCP 市场也非常多,这边推荐几个:

    MCP.so(最大的市场)modelscope(偏国内)Awesome MCP Servers(偏国外)

Fish AI Reader

Fish AI Reader

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

FishAI

FishAI

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

联系邮箱 441953276@qq.com

相关标签

MCP AI工具调用 Function Calling RAG Prompt
相关文章