0 AI Agent & Function Calling

在介绍MCP之前先回顾一下AI AgentFunction Calling的概念:

AI Agent:从“应答机”到“执行者”的进化。

可以理解为能够自主理解、规划并执行任务的“AI助手”,和一问一答的聊天机器人有本质区别。一个合格的AI Agent应该遵循“感知→规划→行动→观察→感知→”的循环。

Function Calling(函数调用) :给大模型装上“手脚”。

Function Calling 是一项让大语言模型(LLM)能够调用外部函数或工具的技术。它是实现AI Agent能力的关键基石。当用户提出请求,大模型会判断是否需要调用函数、调用哪一个、参数是什么。然后模型会输出一个结构化的调用请求(如 get_weather("上海")),由应用程序真正执行这个函数,并将结果返回给模型。最后,模型将结果组织成自然语言返回给用户。

然而这双手可能是被束缚住的:

①Function Calling要求工具(函数)与AI应用深度集成。开发者必须为每一个独立的AI应用编写、注册和维护其所需的全部函数。

②Function Calling本身只是概念并非标准。不同的平台、模型和应用,实现Function Calling的方式就会不一。

③在Function Calling模式下,工具能力的边界和控制权完全由单个应用程序决定,模型可以被授予调用哪些函数、访问哪些数据的权力,但缺乏统一的管理。

Function Calling构建了一个零零散散的工具世界。 工具与工具之间无法信息和资源共享,这极大地限制了AI Agent能力的广度和深度。

正是因为这些束缚,模型上下文协议(Model Context Protocol, MCP)应运而生,它的出现并非否定Function Calling,而是建立一个通用标准,使AI Agent到达新的高度。

1 MCP定义

根据官方MCP协议文档的开篇描述:

"The Model Context Protocol (MCP) is an open protocol that standardizes how applications integrate with heterogeneous data sources and tools. MCP enables clients (e.g. large language models or reasoning engines) to interact with servers (endpoints that provide resources or tools) through a unified set of interfaces. The primary goal is to simplify the development and deployment of AI applications by fostering interoperability between different components."

“模型上下文协议(MCP)是一个开放协议,用于将应用程序与异构数据源和工具进行标准化集成。MCP使客户端(例如,大型语言模型或推理引擎)能够通过一组统一的接口与服务器(提供资源或工具的端点)进行交互。其核心目标是简化AI应用程序的开发和部署,通过促进不同组件之间的互操作性来实现。”

2 MCP组成

MCP的架构遵循经典的客户端-服务器(Client-Server)模型,并通过传输协议(Transport) 连接两者。这三个核心组件共同协作,完成整个工作过程。

2.1 MCP 服务器(Server)

提供资源和工具的访问接口,用于管理资源、处理工具操作和处理请求,例如:文件系统服务器,数据库服务器,API服务器等。是系统的双手和工具箱,它负责接受客户端的请求并真正的去执行它,将执行结果通过协议返回给客户端。

2.2 MCP 客户端(Client)

调用服务器提供的工具和资源,用于发送请求、处理响应和管理会话,例如:AI助手,IDEs,Claude Desktop等。可以理解为是整个系统的大脑和指挥中心。负责理解用户意图,判断是否调用工具,以及调用哪个工具,向服务器发送结构化命令。最终将服务器返回的结果融入对话,生成最终回复给用户。

2.3 传输协议(Transport)

在客户端和服务器之间传输MCP消息的机制,对输入输出进行标准化。是连接大脑与双手的神经系统。管理客户端与服务器之间的通信链路,确保所有请求和响应都遵循完全相同的格式(通常使用JSON-RPC),并可靠的在双方之间传输信息。

3 MCP工作过程

完整生命周期概括为:初始化→消息交换→终止

初始化:握手与能力协商,类似TCP三次握手。首先客户端发送包含各种协议版本和能力的initialize请求,即initialize request。然后服务器响应其协议版本和能力,即initialize response。最后initialized notification,客户端发送initialized通知作为确认。

消息交换(核心):支持请求—响应、通知两种模式。

请求—响应:客户端或服务器发送请求,另一端响应。

通知:任一方发送单向消息。

这是MCP发挥作用的阶段,LLM通过调用工具与获取资源来完成任务。此过程可循环发生。在消息交换阶段,客户端通过列出工具、调用工具与使用资源,从服务器获取外部能力与数据,最终由AI整合信息并生成回复呈现给用户。

终止:连接关闭。当会话需要结束时,任何一方都可以终止连接。

这个清晰的生命周期——从建立连接、协商能力,到循环进行消息交换,再到最终优雅关闭——确保了MCP交互的可靠性与标准化,为构建复杂的AI应用提供了坚实的基础。

4 总结

MCP协议正在做一件看似简单却影响深远的事:为AI世界制定"通用接口"的标准。它没有直接创造更聪明的大脑,而是为所有智能体搭建了一个开放的工具生态。想象一下:未来,无论是DeepSeek、ChatGPT还是其他AI助手,都能即插即用地连接同一个日历服务、同一个数据库查询工具、同一个代码执行器。这就像今天的USB接口一样,任何设备只要符合标准就能互联互通。这种标准化带来的将是指数级的能力增长。开发者不再需要为每个AI重复开发相同的功能,而是可以专注于打造更专业的工具。用户则能享受到真正无缝的智能体验——你的AI助手不仅能回答问题,还能直接操作你的文件系统、查询你的数据库、控制你的智能家居。这不仅是技术的进步,更是协作方式的革新。当工具与智能解耦,当专长与通用分离,我们正在见证一个更加模块化、更加高效的智能计算时代的到来。

Logo

更多推荐