引言
在人工智能快速发展的当下,Agent、MCP、Function Call 这三个概念频繁出现在技术讨论中。它们之间既有相似性又存在本质区别,容易混淆。理清它们的定义与关系,有助于构建更灵活、可靠的智能系统。
Function Call
Function Call 本质上是让大模型能够调用外部函数或 API 的机制,用于获取信息、执行计算或与系统交互。它相当于连接自然语言与程序化工具的桥梁,使得大模型不再局限于纯文本生成,而是具备可编程的行为能力。
核心价值
- 突破模型闭域限制:通过调用外部工具(如数据库、API、专业软件)扩展 LLM 能力边界。
- 提升响应可靠性:将开放域问题转化为确定性函数执行,例如数学计算转 Wolfram Alpha 调用。
- 实现动作代理:从纯文本生成升级为可编程行为,如发送邮件、修改代码等。
- 深度绑定模型:通常作为模型的一部分直接增强大模型能力。
交互流程
比如当用户询问'北京今日气温'时,ChatGPT 通过 Function Call 调用的时序流程大致如下:

嵌入机制
Function Call 可以看作是升级版的 ChatGPT 插件,它将插件过程 API 化并深度绑定到模型中。模型运行时直接调用,就像内部协议一样,通过结构化的描述文件来简化通信流程。
简单来说,服务端提供描述文件告诉模型如何调用接口以及接口功能。当模型判断用户问题适合由插件解决时,就会直接调用对应接口。
什么是 MCP?
MCP(Model Context Protocol)定义了 LLM 与外部数据源、工具及服务之间交互的通用开放协议。其核心目标是通过统一的接口框架,解决 AI 模型与真实环境连接不足的问题,使模型能够动态感知上下文并调用多样化工具,从而扩展其功能边界。
MCP Server
架构组成
MCP 协议基于 C-S 架构,核心组件包括:
- MCP Hosts 主机:像 Claude Desktop、IDE 或 AI 工具这样的程序,希望通过 MCP 访问数据。
- MCP Clients 客户端:维护与服务端 1:1 连接的协议客户端。
- MCP Servers 服务器:每个暴露特定功能的轻量级程序,通过标准化的模型上下文协议提供服务。
- Local Data Sources 本地数据源:计算机的文件、数据库和服务,MCP 服务器可安全访问。
- Remote Services 远程服务:可通过互联网访问的外部系统,MCP 服务器可连接。
MCP 通过标准化接口和动态工具发现机制,正在重构 AI 与工具生态的协作范式。其本质是构建 LLM 与真实世界的通用适配层,既解决了模型与环境的割裂问题,又降低了开发者的集成成本。
通信机制
- 消息格式:基于 JSON-RPC 2.0 协议,支持请求(双向)、响应、通知(单向)三类消息类型。
- 传输方式:
- 本地通信:通过标准输入输出(stdio)传输,适用于 IDE 等本地工具集成。
- 远程通信:使用 SSE(Server-Sent Events)实现 HTTP 长连接,支持跨网络服务调用。
核心功能
动态工具发现
MCP Server 允许 LLM 运行时动态获取已注册的工具列表(如数据库查询、文件操作等),无需硬编码集成,极大提升灵活性和扩展性。










