从 Function Calling 到 MCP 协议,AI Agent 演化的关键两步。
这是「Agent 演化之路」系列的第一篇文章。

一、困局:语言与行动的鸿沟
2023年初的 ChatGPT 能做诗、能写代码、能通过司法考试——但当你问它"北京现在多少度",它会一本正经地撒谎。
可能是"北京今天晴朗,气温25℃",也可能是"多云,有轻微降雨"。但不管它说什么,都不是真实的天气数据。
原因很简单:模型只能生成文字,干不了实事——查不了 API,读不了文件,发不了邮件。
它被困在"说话"的层面,够不着"做事"的世界。
这就是 Agent 化的第一道鸿沟。

所以问题只有一个:怎么让模型"跳"出文字,去做实事?
早期的做法是让模型输出特定格式的文本,然后由人工解析执行:
用户:帮我查北京天气模型:请调用 weather_api("北京")人工:(解析后手动调用API)→ 返回结果 → 告诉模型
两个问题都很致命:模型输出的格式五花八门,解析困难;而且需要人工介入,根本没法自动化。
二、破局:Function Calling 的诞生
2023年6月,OpenAI 发布了一个新功能:Function Calling(函数调用)。
不是让模型"执行",而是让模型"决策"
这个思路的转换,直接决定了后来 Agent 的发展方向。
OpenAI 没有让模型去"执行"代码——那会带来安全和可靠性问题。他们做了一个巧妙的分工设计:
1. 用户说"帮我查北京天气" 2. 模型看到已定义的工具列表,决定调用 get_weather,参数是"北京"3. 模型输出一个结构化的 JSON 对象 4. 客户端代码拿到 JSON,执行实际的 API 调用 5. 把结果返回给模型 6. 模型结合结果,用自然语言回答用户

这个设计好就好在,把"想"和"做"分开了。
模型负责决策:判断需要调用什么工具、参数是什么 代码负责执行:实际调用 API、处理数据
模型输出的是严格格式化的 JSON 数据,解析可靠性大幅提升。所有执行都在客户端代码的控制下——安全性取决于客户端的校验逻辑,而非模型本身。
工具是怎么定义的?
以 Anthropic 的 Claude API 为例,定义一个工具就像填写一张表单:
{ "name": "get_current_weather", "description": "获取指定城市的当前天气", "input_schema": { "location": "城市名称,如北京" }}input_schema 就是告诉模型:这个工具需要一个叫 location 的参数,它是字符串类型,必填。
OpenAI 的 schema 命名略有不同(用 parameters 代替 input_schema),但核心理念一致。
Function Calling 标志着 Agent 化的第一步——模型从"文本生成器"变成了"决策者"。
但这只是第一步。当工具越来越多时,新的问题出现了。
三、新困局:工具碎片化
Function Calling 让模型学会了"做决定",但工具集成成了新的麻烦。
硬件世界早就遇到过同样的问题
1990年代,电脑外设连接是这样的:鼠标、键盘、打印机、硬盘,每个设备都有自己的专用接口、专用驱动、专用线缆。
1996年 USB 出现,一切改变了——一个接口,什么都能接。鼠标、键盘、打印机、硬盘,全部走同一根线。一次开发,到处连接。
AI Agent 的工具集成,正处在 USB 出现前的那个阶段。
碎片化到底有多痛
假设你想让 AI 能查天气、读数据库、发邮件、操作 GitHub——你需要为每个工具写一套独立的集成代码:

三个痛点:
• 每个 AI 应用都要重新写一遍集成代码 • 上游 API 一变,所有集成都要更新 • Claude 的集成方式和 ChatGPT 的不一样,生态碎片化
四、再破局:MCP 协议的诞生
2024年11月,Anthropic 推出了 MCP(Model Context Protocol) —— Agent 世界的"USB 协议"。
核心架构

工具开发者只需按 MCP 协议开发一次,所有支持 MCP 的 AI 应用都能使用。官方文档的原话是:
"可以把 MCP 理解为 AI 应用的 USB-C 接口。正如 USB-C 提供了连接电子设备的标准化方式,MCP 提供了连接 AI 应用与外部系统的标准化方式。"
与 USB 不同的是,MCP 不仅标准化了接口,还标准化了工具发现、资源订阅等更丰富的协议语义。
三种核心能力
用大白话说:
• Resources(资源):让 AI 能"看"——读取文件、数据库等数据 • Tools(工具):让 AI 能"做"——执行动作、调用 API • Prompts(提示词):让 AI 有"准备好的话术"——预设模板,一键调用
比如你装了一个"代码审查"的 MCP Server,里面的 Prompts 模板会预设好审查标准,AI 一键就能按公司规范 review 代码,不用你每次都把要求重复一遍。
再比如文件系统 MCP Server 可以暴露项目源代码、文档等资源,模型直接读取,不用手动上传。而 read_file 工具则让模型传入路径参数就能读取文件内容——和 Function Calling 的机制一脉相承,只是通过标准化的 MCP 协议暴露。
生态爆发
MCP 开源后,第三方生态发展很快。数据库类(PostgreSQL、SQLite)、搜索类(Tavily、Exa AI)、企业应用(Slack、Notion)、开发工具(GitHub、Docker)等纷纷推出 MCP Server。目前已有 3500+ 第三方 MCP 服务器。
价值
对开发者:一次开发,到处运行。
开发成本从 N×M 降低到 N+M。写一个 MCP Server,Claude、ChatGPT、Cursor、VS Code 都能用。
对用户:能力即插即用。
在配置文件中声明想要的 MCP Server,AI 应用就立即获得这些能力,不用写代码。
想象一个场景:你在 VS Code 里配置了几个 MCP Server,打开 Claude,它就能查你的数据库、读你的 GitHub、帮你整理文档——全程不用写一行集成代码。
如果说 ChatGPT 是 AI 的 iPhone 时刻,那 MCP 可能就是 AI 的 USB-C 时刻。
五、总结与展望
从 Function Calling 到 MCP 协议,Agent 演化走过了两个关键里程碑:
1. Function Calling 让模型从"文本生成器"变成"决策者" 2. MCP 协议 解决了工具碎片化
2023.06 Function Calling → 2024.11 MCP 协议 → 未来 Skills但 MCP 只是提供了"原子能力"的标准化连接方式——每个 MCP Server 提供的是单一功能(读文件、查数据库、发消息)。光有原子能力还不够——它们得组合起来,才能做成一件事。
这就是下一篇要聊的:Skills 和 Agentic Coding。工具原子化之后,Agent 怎么从"工具使用者"变成"能力拥有者"?

关于 AiMind Engine
AiMind Engine:专注 AI Agent 技术演化的深度解读。 每周两更,用开发者能听懂的语言,拆解 AI Agent 从概念到落地的每一个关键节点。
你现在用 AI,更多是"聊天查资料",还是已经开始让它"干活"(写代码、查数据、自动化操作)了?评论区告诉我你到了哪个阶段。
夜雨聆风