比较LLM的function calling,Agent 和MCP
比较
| 对比维度 | MCP(Model Context Protocol) | Function Calling | Agent(智能体) |
|---|---|---|---|
| 定义 | 由 Anthropic 推出的开放协议,标准化 LLM 与外部数据源、工具的通信接口
。 |
LLM 调用外部函数的机制,通过 JSON 参数规范模型与外部系统的交互
。 |
自主运行的智能系统,通过分析、决策和执行实现目标,可调用工具和规划任务
。 |
| 核心功能 | - 提供标准化工具调用接口 - 动态上下文管理 - 跨平台/多数据源集成 。 |
- 单次函数调用 - 参数解析与执行 - 轻量化任务扩展 。 |
- 多步骤任务规划 - 自主决策与反思 - 多工具协作 。 |
| 技术特点 | - 客户端-服务器架构(Host/Client/Server) - 支持 REST/gRPC 通信 - 工具描述与权限控制 。 |
- 基于 JSON Schema 定义函数参数 - 依赖 LLM 生成调用指令 - 需手动实现执行逻辑 。 |
- 结合 RAG、ReAct 等框架 - 长期记忆与状态管理 - 多模态交互能力 。 |
| 典型应用场景 | - 跨平台工具集成(如同时访问本地文件 + Jira API) - 敏感数据隔离(医疗/金融场景) 。 |
- 简单功能扩展(如天气查询、计算器) - 封闭环境应用(内部知识库) 。 |
- 复杂任务自动化(代码生成、数据分析) - 拟人化交互(客服、教育辅导) 。 |
| 优点 | - 标准化协议,降低集成成本 - 支持动态上下文切换 - 多厂商 LLM 兼容 。 |
- 开发简单快速 - 轻量级交互 - 深度绑定特定 LLM(如 GPT-4) 。 |
- 高度自主性 - 复杂任务处理能力 - 可扩展性强 。 |
| 局限性 | - 架构复杂,部署成本高 - 依赖协议生态成熟度 。 |
- 功能单一 - 缺乏动态上下文管理 - 跨平台适配性差 。 |
- 资源消耗大 - 多步推理可能出错 - 工具调用依赖外部系统稳定性 。 |
补充说明:
MCP 与 Function Calling 的关系
MCP 可视为 Function Calling 的扩展协议,通过标准化接口解耦工具调用与具体 LLM,解决跨平台和动态上下文问题实现逻辑
- MCP:采用客户端-服务器架构,通过MCP Server统一管理工具调用和数据访问,LLM只需遵循协议发送请求,无需关注底层实现细节
。 - Function Calling:要求开发者预先定义函数签名,LLM直接生成调用指令,应用负责执行。这种方式与特定模型强绑定,扩展性受限
- MCP:采用客户端-服务器架构,通过MCP Server统一管理工具调用和数据访问,LLM只需遵循协议发送请求,无需关注底层实现细节
技术关系
- 互补性:MCP协议可以封装Function Calling作为其底层执行方式之一,但并非必须依赖
。
示例:MCP Server通过Python脚本调用OpenAI的Function Calling接口,但其他工具可能直接操作本地资源。 - 独立性:实验表明,即使LLM不支持Function Calling(如DeepSeek Re),也能通过MCP实现工具调用
,说明二者在技术实现上解耦。
4. 选择建议
- 优先MCP:需集成多数据源、跨平台协作或长期维护的场景(如企业级Agent开发)
。 - 优先Function Calling:轻量级、单任务且对延迟敏感的场景(如实时翻译)
- 互补性:MCP协议可以封装Function Calling作为其底层执行方式之一,但并非必须依赖
functioncalling的执行过程

MCP 的执行过程

MCP
关键设计特性
动态工具发现
MCP Client在每次会话前自动获取最新工具列表,无需预先硬编码函数签名(对比传统Function Calling)权限隔离机制
- 敏感工具调用需用户二次确认(如文件删除操作)
- 本地资源访问限制在沙箱环境(如仅允许
/data/sales目录)
- 敏感工具调用需用户二次确认(如文件删除操作)
比较LLM的function calling,Agent 和MCP的更多相关文章
- function calling convention
这是2013年写的一篇旧文,放在gegahost.net上面 http://raison.gegahost.net/?p=31 February 19, 2013 function calling c ...
- PatentTips – Java native function calling
BACKGROUND OF INVENTION This invention relates to a system and method for providing a native functio ...
- [转]ARM64 Function Calling Conventions
from apple In general, iOS adheres to the generic ABI specified by ARM for the ARM64 architecture. H ...
- Meet Python: little notes 3 - function
Source: http://www.liaoxuefeng.com/ ♥ Function In python, name of a function could be assigned to a ...
- [转] iOS ABI Function Call Guide
source: apple ARMv6 Function Calling Conventions When functions (routines) call other functions (sub ...
- 什么是内联函数(inline function)
In C, we have used Macro function an optimized technique used by compiler to reduce the execution ti ...
- boost function bind ref
boost::function to encapsulate function pointers. 1. function #include <boost/function.hpp> #i ...
- NodeJs学习笔记(五)---单元测试补充
今天早上继续研究Mocha,忽然发现一个问题,我的大部分程序都是需要登录验证的,所以需要预先登录之后才能进行下一步测试,就开始在网上找答案,发现没有这种资料,很疑惑,最后发现其实是自己太笨了,因为这个 ...
- 用PHP实现浏览器点击下载各种格式文档的方法详解【txt apk等等】
[[注:其他文件想设置成下载文件,和下面介绍的方法一致]] 由于现在的浏览器已经可以识别txt文档格式,如果只给txt文档做一个文字链接的话,点击后只是打开一个新窗口显示txt文件的内容,并不能实现点 ...
- 编写自定义Yeoman生成器
转载自JSCON-简时空:<自定义Yeoman生成器> 1.Getting Started 1.1.设置Node模块 Yeoman提供了generator-generator方便快速编写自 ...
随机推荐
- Windows 风格的个人网盘,支持OnlyOffice、支持音视频聊天、支持自动更新
一年前,我开源了这个网盘,详见Windows风格的个人网盘,支持文档在线编辑,这一年期间,这个网盘进行了大量的更新,具体如下: 新增支持的功能如下: 支持 OnlyOffice (Word.Excel ...
- MySQL 中information_schema、mysql、performance_schema、sys 简介
一.information_schema简介在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库.其中保存着关于MySQL服务器所维护的所有其他数据库的信息. ...
- IDEA神器插件-40款
IDEA 插件安装 步骤 IDEA里面,选择打开 File --> Settings --> Plugins 在Plugins里面, 可以搜索需要的插件 (下面的标题),然后安装 如下图: ...
- EIP、VIP、RIP的区别
本文分享自天翼云开发者社区<EIP.VIP.RIP的区别>,作者:魏****猛 EIP.VIP.RIP都是网络中经常使用的术语,但是它们的意义和使用场景是不同的. 首先,EIP(Elast ...
- PHP简介与开发环境搭建
PHP简介与开发环境搭建 一.PHP简介 PHP,全称PHP: Hypertext Preprocessor(超文本预处理器),是一种广泛使用的开源服务器端脚本语言,尤其适合Web开发.PHP由Ras ...
- 盘点10个.NetCore实用的开源框架项目
连续分享.Net开源项目快3个月了,今天我们一起梳理下10个,比较受到大家欢迎的.NetCore开源框架项目. 更多开源项目,可以查看我创建的,.Net开源项目榜单! 一个专注收集.Net开源项目的榜 ...
- Studio 3T 试用期破解(含破解补丁) - 解决办法
使用数据可视化工具Studio 3T查看MongoDB数据集数据,但是Studio 3T试用过期了,没了权限打不开软件怎么办? 这里通过建立批处理文件,重置试用时间,即可临时破解权限. 每次开机重启脚 ...
- 【渗透测试】Vulnhub Hackable II
渗透环境 攻击机: IP: 192.168.216.129(Kali) 靶机: IP:192.168.216.131 靶机下载地址:https://www.vulnhub.com/entr ...
- 机器学习 | 强化学习(1) | 马尔科夫决策过程(MDP)概论
最近在搞强化学习(Reinforcement Learning),打算把之前写的笔记整理一下 本文基于大卫 希尔维(David Silver)教授的强化学习概论课程,视频中所采用的样例学生马尔科夫链( ...
- ESP AT指令使用记录
一.前言 本篇文章主要用于记录自己在使用AT指令时候的流程,记录一些资料与程序等.如果能帮到你,请给我点个赞. 二.背景知识 ESP-AT是什么? ESP-AT 是乐鑫开发的可直接用于量产的物联网应用 ...