“ 智能体应用是大模型应用的一个重点方式,而怎么才能做出一个合格的智能体是很多人都在考虑的问题。”
对大模型有过了解的人应该都知道,大模型应用目前主要还处于探索阶段,而关于大模型应用的技术也是日新月异,在不断持续的发展。
而关于大模型的应用目前的主要形式是聊天,然后通过大模型的自身能力去完成一些工作;比如生成内容,总结文档等。但我们对大模型的期待要远远高于简单的聊天,我们需要的是大模型根据我们的指令去完成具体的任务。
但大模型本身又没有使用外部工具的能力,因此openai就提出了一项新的技术-Function call,通过Function call大模型就能实现使用外部工具的能力,而这能大大提升大模型的能力范围,使得大模型能够真正解决实际问题。
但是Function call也有很多缺陷,比如说没有统一的标准,接口实现复杂;因此最近一段时间爆火的MCP就出现了。
MCP本质上是一种协议,类似于互联网界的Http协议,硬件中的USB-C接口,它提供一个统一的标准,让大模型能够使用统一的方式去使用外部工具,这样就可以大大提升效率,加快大模型应用的发展。
协议本质上是一种标准,大家都按照统一的标准进行设计和开发,这样就可以节省大量的时间和成本,提升效率。
当然,MCP协议虽然说类似于HTTP协议和USB-C标准,但到底能不能真正成为大模型领域的标准还有待商榷。
MCP协议
MCP协议采用的还是经典的C-S架构,主要由客户端和服务端组成;只不过在MCP协议中,有了更多的概念,而其核心概念主要有三个——Host,Client和Server。
其工作流程如下,以找电脑上的文件为例:
- Host:
Claude Desktop 作为 Host,负责接收你的提问并与 Claude 模型交互。 - Client
:当 Claude 模型决定需要访问你的文件系统时,Host 中内置的 MCP Client 会被激活。这个 Client 负责与适当的 MCP Server 建立连接。 - Server
:在这个例子中,文件系统 MCP Server 会被调用。它负责执行实际的文件扫描操作,访问你的桌面目录,并返回找到的文档列表。
整个流程是这样的:你的问题 → Claude Desktop(Host) → Claude 模型 → 需要文件信息 → MCP Client 连接 → 文件系统 MCP Server → 执行操作 → 返回结果 → Claude 生成回答 → 显示在 Claude Desktop 上。

这种架构设计使得 Claude 可以在不同场景下灵活调用各种工具和数据源,而开发者只需专注于开发对应的 MCP Server,无需关心 Host 和 Client 的实现细节。
这里关于Client和Server都很好理解,可能很多人有疑问的是Host和Client之间的关系。
其实,Host和Cllient的关系很好理解;简单来说就类似于我们自己的电脑,Host电脑的系统,我们使用电脑写文章,刷网页,看视频等等;而Client就是我们的网卡,我们需要进行网络请求的时候就通过网卡(Client)去调用外部服务获取数据,然后再在电脑中显示。
但这里有一个问题就是,我们使用电脑使用什么工具,什么时候使用这些工具,是由我们用户决定的;但在MCP中,使用什么工具和怎么使用这些工具,是由大模型自己理解用户的意图之后,然后决定使用哪些工具。
而这一步事实上是根据Prompt engineering提示词工程来实现的;简单来说就是通过JSON或其它格式的数据按照MCP的客户端要求进行约束,然后根据这些描述来决定怎么使用这些工具;本质上就是一个Schema。

当然,由于MCP采用的是C-S架构,因此网络通讯也成了其必不可少的一环;而在MCP的网络通讯中主要使用了两种协议:
1. stdio standard input/output 标准输入输出 适用于本地调用
2. SSE Server-sent events 服务端推送协议
通过这两种协议就可以实现MCP客户端与服务端的通讯能力。
MCP协议现在还无法完全取代Function call的功能,而且Function call的能力也在不断升级,因此最后鹿死谁手还不太好说。
(文:AI探索时代)