掘金 人工智能 05月22日 09:58
从理论到落地:MCP 实战解锁 AI 应用架构新范式 | 含PPT
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了模型上下文协议(MCP),旨在解决AI Agent应用中接口查找和解析的难题。MCP通过标准化的方式连接大型语言模型(LLM)与外部数据源和工具,简化了AI Agent的开发流程。文章详细介绍了MCP的概念、运作机制以及与Function Calling的区别,并分析了MCP在企业级应用中面临的挑战,如系统提示词的安全管理、MCP Client的协同以及传统业务向MCP Server的转换等问题。最后,提出了MCP Server First的理念,展望了MCP对AI应用架构的积极影响。

🔑MCP(模型上下文协议)是一个开源协议,旨在让大型语言模型(LLM)能够以标准化的方式连接到外部数据源和工具,类似于AI应用的通用接口,使得开发者无需为每个AI模型和外部系统进行定制集成。

⚙️MCP包含三个核心概念:MCP Server(基于SDK开发或转换的服务)、MCP Tool(MCP Server中的方法或接口)和MCP Client(基于MCP规范调用MCP Server中MCP Tool的代码或Agent)。

🔄MCP的运作机制涉及用户提问、AI Agent将问题和MCP信息发送给LLM、LLM推理选择合适的MCP Server和Tool、AI Agent调用Tool获取结果、LLM结合问题和结果规整内容,最终返回给用户。关键在于MCP Server和Tool信息的系统提示词。

🛡️MCP面临的挑战包括:系统提示词的安全性、管理和调试,以及如何缩小提示词范围以减少Token消耗;MCP Client与MCP Server的协同,如现有Client难以与企业级应用结合,传统业务难以快速转换为MCP Server,以及MCP Server的统一管理和企业级安全问题。

引言

应用越智能,背后的设计会越复杂。软件的本质是解决复杂性问题,MCP 虽打开了智能的创意上限,但也给后端的设计带来了无限的复杂度。本文旨在从 MCP 的技术原理、降低 MCP Server 构建复杂度、提升 Server 运行稳定性等方面出发,分享我们的一些实践心得。文章内容较长,以下是导读大纲。(公众号:硬核隔壁老王,获取 78 页完整版 PPT)

1、介绍 MCP 的概念及其运作机制。

2、解释 MCP 和 Function Calling 之间的区别。

3、讲述 MCP 的本质和挑战,包括描述 MCP 信息的系统提示词的挑战,MCP Client 与 MCP Server 之间协同关系的挑战,快速构建 MCP Server,自建 Dify 的痛点等。

4、分析如何解决 MCP 的各个挑战,包括 MCP Register、MCP Server 和 Promt 的统一管理、MCP 效果验证体系和安全性保障、MCP 网关、MCP Server 的动态服务发现、Streamable HTTP、弹性效率、可观测等。

5、最后探讨 MCP 对 AI 应用架构新范式的影响,并介绍 MCP Server First 的理念。

AI Agent 现状及架构

人工智能(AI)在商业领域的应用正日益成为推动创新和效率提升的核心力量。其核心在于多个 AI Agent 的协作,这些 AI Agent 通过分工与合作,共同承载 AI 应用所支持的业务需求。这种协作模式不仅优化了企业运营,还展现了 AI 在解决高影响力挑战中的潜力。

当前的 AI Agent,无论是和各种 Tools(各类业务服务接口)交互,还是和各类 Memory(各类存储服务接口)交互,亦或是和各类 LLMs(各类大语言模型)交互,都是通过 HTTP 协议的,除了 LLM 因为基本都遵循 OpenAI 范式以外,和其他的 Tools 和 Memory 交互都需要逐一了解它们的返回格式进行解析和适配。当一个 AI 应用包含多个 AI Agent 时,或者一个 AI 应用需要和多个业务服务接口和存储服务接口交互时,整体的开发工作量是很大的,主要体现在 3 个方面:

所以目前很多 AI 应用就只有少数几个 AI Agent,甚至很多 AI 应用背后就只有一个 AI Agent。这也是目前 AI 应用背后的 AI Agent 依然还处在第一个阶段(Siloed, Single-Purpose Agents)的原因。

为了能使 AI Agent 进入到第二阶段(Platform-Level Agents),我们使用云原生 API 网关做了统一的接入层,通过一个网关三种不同角色的方式,解决了一部分复杂度:

但如我所说,这只解决了一部分复杂度问题,更核心的找接口 和解析接口这两个问题依然没有解决。直到 MCP(Model Context Protocol)的出现,让我们看到了真正通往第二阶段(Platform-Level Agents)的路,甚至可以尝试触摸第三阶段(Universal Agents, Multi-Agents)。

MCP 是什么

MCP 是模型上下文协议(Model Context Protocol)的简称,是一个开源协议,由 Anthropic(Claude 开发公司)开发,旨在让大型语言模型(LLM)能够以标准化的方式连接到外部数据源和工具。它就像 AI 应用的通用接口,帮助开发者构建更灵活、更具上下文感知能力的 AI 应用,而无需为每个 AI 模型和外部系统组合进行定制集成。MCP 被设计为一个通用接口,类似于 USB-C 端口,允许 LLM 应用以一致的方式连接到各种数据源和工具,如文件、数据库、API 等。

MCP 目前一共有 3 个核心概念:

MCP 的运作机制

要真正理解 MCP 是什么,我们需要了解它的运作机制,然后你就能知道 MCP 的调用方式和传统的 HTTP 调用方式有什么不同,可能也能隐约体会到为什么我说 MCP 可以让 AI Agent 进入第二阶段。

如上图所示,一次基于 MCP 的调用,一共有 6 个核心的步骤。我们先拟定一个前提:

调用步骤解析:

在 MCP 的整个调用过程中有一个非常核心的点就是 MCP Server 以及 MCP Tool 的信息。从第一步,第二步可以看出,这个信息非常关键,是它让 LLM 知道了该如何解决用户的问题,这个信息就是 MCP 中最重要的 System Prompt,本质上就是 PE 工程。

MCP System Prompt

MCP 不像传统的协议定义,它没有一个确定的数据结构。它的核心是通过自然语言描述清楚有哪些 MCP Server,承担什么作用,有哪些 MCP Tool,承担什么作用,然后让大语言模型通过推理去选择最合适的 MCP Server 以及 MCP Tool。所以它的核心本质上还是提示词工程。

上面两张图是 Cline(一个 MCP Client)中的 System Prompt,可以清晰的看到它对 MCP Server 和 MCP Tool 都有明确的描述。

上图是流程中的第一步,将用户的问题和 System Prompt 一起发送给 LLM 的内容。

上图是流程中的第二步,LLM 返回了解决用户问题明确的 MCP Server 和 MCP Tool 信息。

MCP 和 Function Calling 之间的区别

看到这,我想大家应该对 MCP 是什么有一定感觉了。MCP 是不是解决了找接口 和解析接口的问题?因为这两个工作都交给了 LLM。

那么可能有小伙伴会问,MCP 和 LLM 的 Function Calling 又有什么区别呢?核心区别是是否绑定模型或模型厂商:

如上图所示,LLM Function Calling 需要 LLM 为每个外部函数编写一个 JSON Schema 格式的功能说明,精心设计一个提示词模版,才能提高 Function Calling 响应的准确率,如果一个需求涉及到几十个外部系统,那设计成本是巨大,产品化成本极高。而 MCP 统一了客户端和服务器的运行规范,并且要求 MCP 客户端和服务器之间,也统一按照某个既定的提示词模板进行通信,这样就能通过 MCP 加强全球开发者的协作,复用全球的开发成果。

MCP 的本质和挑战

根据上文的一系列解释,我们可以总结一下 MCP 的本质:模型上下文协议(Model Context Protocol)并不是一个确定的数据格式或数据结构,它是 描述 MCP Server/MCP Tool 信息的系统提示词 MCP Server 与 LLM 之间的协同关系的结合   解决的是 找接口 解析接口的问题

明确了 MCP 本质之后,将其带入到企业级生产应用中,你就会发现,这两个核心点上会有很多挑战,或者说不足。

描述 MCP 信息的系统提示词的挑战

MCP Client 与 MCP Server 之间协同关系的挑战

Fish AI Reader

Fish AI Reader

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

FishAI

FishAI

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

联系邮箱 441953276@qq.com

相关标签

MCP AI Agent LLM 模型上下文协议
相关文章