你手机里那些能帮你查资料、跑代码、发消息的 Agent,为什么能「动手」?上一篇讲了 Agent 有四件套,其中「手」= 工具。可你有没有想过:这些「手」到底是怎么接上的?为什么 2024 年底突然冒出来一个叫 MCP 的东西,连 OpenAI、Google 都陆续表态支持?
今天用「插头」和「接口」的比喻,把从 Function Calling(函数调用)到 MCP 这条线讲清楚——顺便聊聊 MCP 到底有多大想象力。
一、Agent 的「手」分两种:体内的和体外的
🧑小白:你上一篇说 Agent 有「手」= 工具,那这些手都长一样吗?
🧑🏫教练:分两种,关键看「手长在哪儿」。
🧑🏫教练:第一种叫Tools(工具),是**进程内(in-process,就是同一个程序里)**的手。比如你写的程序里本来就有一个「算税」函数,Agent 直接调它,就跟你手直接够到鼻子一样,没有中间商。
🧑🏫教练:第二种叫MCP,是**进程间(跨进程,两个独立程序之间)**的手。比如 Agent 想读你电脑上的文件、或者调一个独立的数据库程序——这两个程序是分开跑的,中间得有个「标准接口」才能对话,这个接口就是 MCP。
🧑小白:所以一句话——体内的叫 Tools,体外的叫 MCP?
🧑🏫教练:✅ 记牢这句就行。Tool 是「自己人」,MCP 是「对外接头」。
图1:Agent 的手分两种——进程内 Tools(原装手)vs 进程间 MCP(外接接口)
二、最早的手:Function Calling(函数调用)——点对点
🧑小白:那 Agent 最早是怎么「长手」的?
🧑🏫教练:2023 年 6 月,OpenAI 提出了Function Calling(函数调用)。原理很简单:模型自己不动手,而是吐出一段结构化的「申请单」(JSON,一种机器读起来很顺的格式),上面写着「我要调哪个函数、参数是什么」。
🧑🏫教练:比如你问「北京明天天气?」,模型输出一张单子:
{函数: 查天气, 城市: 北京, 日期: 明天}。你的程序看见单子,替它去执行,把结果喂回模型。
🧑小白:那这不就跟上一篇说的「动嘴变下令」一样?
🧑🏫教练:✅ 一模一样,这就是 Agent 第一次长出手。但当时有个大问题——
三、卡点:没有标准,N×M 适配爆炸
🧑小白:什么问题?
🧑🏫教练:Function Calling 是「点对点」的——你给模型列一张函数清单,它只能从里面挑。更麻烦的是:每家模型厂商的单子格式都不一样。OpenAI 一套写法、Anthropic 一套、Google 又一套。
🧑🏫教练:结果就是「N×M 灾难」:你有 N 个模型、M 个工具,每个模型对接每个工具都得单独写一遍适配代码(业内叫glue code,胶水代码)。工具一多,代码量爆炸式增长,换一个模型全线返工。
🧑小白:等于每换一家插座,所有插头都得重做?
🧑🏫教练:✅ 这个比喻绝了。没有统一标准,全靠手工对接,谁都累。
图2:演化时间线——Function Calling(2023.06) → Tool Use 泛化 → Plugins(2023) → MCP(2024.11)
四、过渡:Plugins / 各家工具——各自为政
🧑小白:那中间没人想统一一下吗?
🧑🏫教练:想过。2023 年 OpenAI 推过ChatGPT Plugins(插件),想建一个「工具商店」,让模型调用第三方服务;后来又有GPTs、各家的 Tool Use(工具调用)。
🧑🏫教练:但这些都是「各自为政」:每个平台有自己的上架审核、自己的格式、自己的圈子。你是 ChatGPT 的插件,到了 Claude 那边不算数;再换个国产模型,又得重来。本质还是「一座座孤岛」。
🧑小白:所以还是没解决「统一」的问题。
🧑🏫教练:✅ 对,直到 2024 年 11 月,Anthropic 把MCP(Model Context Protocol,模型上下文协议)开源,才真正把标准立起来。
五、破局:MCP——统一的「USB-C 接口」
🧑小白:MCP 凭什么能统一?
🧑🏫教练:因为它干了件聪明事——把「模型怎么调外部能力」变成了一个公开协议(protocol,就是事先约定好的沟通规则),就像 USB-C 把「怎么给设备充电、传数据」统一了。
🧑🏫教练:一个工具(比如查数据库)只要按 MCP 标准写一个Server(服务端,提供能力的程序),那么所有支持 MCP 的 Agent(叫Host 宿主,比如 Claude Desktop、Cursor)都能直接用,不用再为每家重写。中间负责对接的那段叫Client(客户端)。
🧑小白:那复杂度怎么变?
🧑🏫教练:✅ 从N×M 变成 N+M:M 个工具各写一个 Server,N 个 Agent 各写一个 Client,两两自动对上。一次做好插头,到处能插。
🧑小白:等等,这「协议」的思路我好像在哪见过?
🧑🏫教练:✅ 见过——LSP(Language Server Protocol,语言服务器协议)。2016 年微软干过一模一样的事:以前每个代码编辑器(VS Code、Vim)都要为每个编程语言(Python、Go)单独写代码补全、跳转;LSP 出来后,语言作者写一次 Server,所有编辑器通用。MCP 就是「AI 世界的 LSP」。
图3:集成复杂度 N×M → N+M(USB-C 效应)+ MCP 三种原语 Tools / Resources / Prompts
六、MCP 长啥样 + 它的想象力
🧑小白:MCP 除了「能调工具」,还有啥花样?
🧑🏫教练:MCP 不只给「动作」,它定义了三种基本能力(业内叫primitive,原语 = 最小积木):
🧑🏫教练:①Tools(工具):模型能主动调用的「动作」,比如「发邮件」「跑查询」;②Resources(资源):应用能读取的「数据」,比如一个文件、一张表——相当于 Agent 能直接「看」到的 U 盘;③Prompts(提示模板):预写好的任务流程,相当于把专家经验打包成「一键操作」。
🧑🏫教练:两个程序之间怎么传话?靠传输层(transport,传输方式):同一台电脑上用stdio(标准输入输出,像两根管子直连);跨网络用Streamable HTTP(像走网线)。
🧑小白:那想象力到底在哪?
🧑🏫教练:✅ 三个字:生态飞轮。
🧑🏫教练:第一,一次开发,处处可用:工具作者不用再讨好每个 Agent 厂商,写一次 Server 就全行业通用,创作门槛骤降。第二,组合创新:Agent 能同时插上「文件系统 + 数据库 + 浏览器 + Slack」多个 Server,自己编排出一整套工作流——插头多了,能搭的东西就多了。第三,会出现「MCP 市场」:像 npm、pip 装代码包一样,未来 Agent 能自动发现、安装、调用别人的 Server,工具的「应用商店」要来了。
🧑🏫教练:而且因为接口统一,权限、审计、安全也能统一管控——「插头」有了安全标准,企业才敢用。
七、今天记住三点
① Agent 的手分两种:体内的叫 Tools,体外的靠 MCP。一句口诀记牢:自己人用 Tool,对外接头用 MCP。
② 从 Function Calling(2023.06,点对点)→ Plugins(2023,各自为政)→ MCP(2024.11,统一协议),核心是把「对接」从 N×M 干成了 N+M。
③ MCP 的想象力在「生态飞轮」:一次开发处处可用、多 Server 组合创新、催生工具市场——它是 AI 世界的 USB-C,也是 AI 世界的 LSP。
下一篇,我们钻进 Agent 自己转起来的那个「心脏」——让它能思考→行动→观察的循环(ReAct),看它怎么一步步把活干完。