上期我们聊了AI的记忆系统。有了记忆,AI能记住你是谁、你做过什么。
但光有记忆还不够。
你想想,一个新同事记住了所有项目背景,但你让他「帮我查一下竞品的最新数据」「把这个文件转成PDF」「给客户发一封邮件」——他只会看着你说:「不好意思,我没权限访问数据库,也不会用PDF工具,更没有邮箱……」
记住了一切,但什么都做不了。
这就是没有工具调用能力的AI的真实写照。
今天我们就来聊:AI Agent是怎么"长出手脚"的?
🤯 先说一个反直觉的事实
你平时用的ChatGPT,其实已经偷偷在用工具了。
当你在ChatGPT里说「帮我搜索一下最新的AI新闻」,它背后的流程是这样的:
你以为的:ChatGPT 直接回答你 实际上的: 1. ChatGPT 把你的需求转成一个"工具调用请求" 2. 系统执行搜索(调用了搜索工具) 3. 搜索结果返回给 ChatGPT 4. ChatGPT 根据结果生成你能看懂的回答 你看到的是自然语言,背后跑的是代码。
这个过程的核心,就叫 Function Calling(函数调用/工具调用)。
它是AI Agent 从"只会聊天"到"能干活"的分水岭。
🔧 Function Calling 到底是什么?
一句话:让AI模型学会调用外部程序的能力。
大语言模型(LLM)本质上是一个文字接龙机器。你给它一段文字,它预测下一段文字。它只能输出文字。
但现实中,光输出文字是不够的。你需要它:
查数据库 调API 读写文件 执行计算 发送消息
这些事情,纯靠"说"是做不了的。得有人"动手"。
Function Calling 就是那双"手"。
具体怎么工作?三步走:
第一步:你告诉AI有哪些工具可以用 "你可以调用 search_web 工具来搜索, 也可以调用 read_file 工具来读文件" 第二步:AI判断是否需要用工具 用户说"帮我查一下今天的天气" → AI判断:这需要实时数据,我该用 search_web 第三步:AI输出一个结构化的调用请求 {"tool": "search_web", "query": "今天天气"} → 系统执行这个调用,把结果返回给AI → AI根据结果生成最终回答 关键点:AI本身不执行代码,它只负责"决定调用什么工具、传什么参数"。 真正执行的是你写的程序。
这就像你跟一个超级聪明的顾问说:「你需要什么数据,跟我说,我去查。」顾问负责分析,你负责跑腿。
📈 从零到一的进化
工具调用这个概念,其实不是一天冒出来的。它经历了一个清晰的进化过程:
2021年以前:原始时代
GPT-3时代,AI只能输出文字。想让AI用工具?你得手动解析它的输出,自己猜它想干啥。
你:"帮我查一下北京天气" AI:"好的,你可以访问weather.com查询北京天气" 你:(手动复制、打开网站、查询、把结果贴回来) 笨,但至少能跑。
2022-2023年:Function Calling 时代
OpenAI 在GPT-3.5/GPT-4中正式引入了Function Calling。AI不再用自然语言"暗示"你想用什么工具,而是直接输出一个标准的JSON结构:
{ "function": "get_weather", "arguments": { "city": "北京" } } 你的程序拿到这个JSON,执行对应的函数,把结果返回给AI。整个过程自动完成。
这是质变。从此AI Agent有了"手"。
但新的问题来了:每家公司定义工具的方式不一样。
OpenAI有自己的格式,Anthropic有自己的格式,LangChain有自己的格式……你写了一个工具,只能在一个框架里用。换个框架?重写。
就像每个城市的插座标准都不一样,你带个充电器到处跑,得配十几个转接头。
2024-2025年:MCP 协议时代
Anthropic(Claude的母公司)提出了 MCP(Model Context Protocol)—— 一套统一的工具接口标准。
以前的模式: 工具 → 适配器A → 框架A 工具 → 适配器B → 框架B 工具 → 适配器C → 框架C MCP 模式: 工具 → MCP标准接口 → 所有支持MCP的框架都能用 MCP 就像是AI世界的"USB-C接口"。 工具开发者只要按MCP标准写一次,所有支持MCP的AI客户端都能直接用。
截至目前,MCP已经成了事实标准。Claude Desktop、Cursor、Windsurf、WorkBuddy 等主流工具全部支持。
🔌 MCP 到底解决了什么?
举个实际的例子。
假设你想让AI帮你:
查GitHub上的issue 读本地文件 搜索数据库 发微信消息 管理Notion笔记
在MCP之前,每个功能你都得写专门的集成代码,而且每个AI客户端的集成方式还不同。
有了MCP之后:
1. 安装 GitHub MCP Server → AI自动获得GitHub操作能力 2. 安装 本地文件 MCP Server → AI自动获得文件读写能力 3. 安装 数据库 MCP Server → AI自动获得数据库查询能力 4. 安装 微信 MCP Server → AI自动获得微信操作能力 5. 安装 Notion MCP Server → AI自动获得笔记管理能力 每个MCP Server就是一个"技能包"。装上就能用,拔掉就不影响。
而且这些技能包是社区共建的。今天GitHub上已经有上千个开源的MCP Server,覆盖了几乎所有你能想到的工具和服务。
💻 来段代码感受一下
这是用OpenAI API实现工具调用的核心代码,非常简单:
from openai import OpenAI client = OpenAI() # 第一步:告诉AI有哪些工具 tools = [{ "type": "function", "function": { "name": "get_stock_price", "description": "获取股票实时价格", "parameters": { "type": "object", "properties": { "symbol": { "type": "string", "description": "股票代码,如 AAPL、600519" } }, "required": ["symbol"] } } }] # 第二步:用户提问 response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "帮我查一下苹果公司的股价"}], tools=tools ) # 第三步:AI决定调用工具 tool_call = response.choices[0].message.tool_calls[0] # AI输出: {"name": "get_stock_price", "arguments": {"symbol": "AAPL"}} # 第四步:你执行函数,把结果返回给AI stock_data = get_stock_price("AAPL") # 你自己的函数 # 第五步:AI根据数据生成最终回答 final = client.chat.completions.create( model="gpt-4o", messages=[ {"role": "user", "content": "帮我查一下苹果公司的股价"}, response.choices[0].message, {"role": "tool", "content": str(stock_data)} ] ) print(final.choices[0].message.content) # 输出: "苹果公司(AAPL)当前股价为 $214.29..." 核心就三件事:定义工具 → AI决定调用 → 你执行并返回结果。
代码本身不难。真正的挑战在于:你要设计什么样的工具,让AI用起来足够灵活。
🌐 正在发生的下一件事:A2A
2025年4月,Google提出了一个新概念:A2A(Agent-to-Agent)。
如果说MCP解决的是「AI怎么调用工具」,那A2A解决的就是「AI怎么跟另一个AI协作」。
MCP: Agent ←→ 工具(数据库、API、文件系统……) A2A: Agent ←→ Agent(另一个AI,可能是另一个人的、另一个公司的) 举个例子:你想让一个专门写代码的Agent和一个专门做设计的Agent协作完成一个项目。A2A就是让它们直接对话、分工、协调的标准协议。
目前A2A还比较早期,但方向很明确:未来的AI不只是一个人带着一堆工具干活的单打独斗模式,而是一个Agent网络的协同模式。
🎯 读懂这篇,你应该知道的事
总结一下今天的核心脉络:
AI工具调用的进化路线: 只能输出文字(GPT-3之前) ↓ Function Calling(GPT-3.5/4) AI能决定"调用什么工具",但格式不统一 ↓ MCP协议(2024年底-2025年) 工具接口标准化,一次开发到处用 ↓ A2A协议(2025年-未来) Agent之间的协作标准化 关键认知:
- Function Calling 是AI Agent的地基。
没有工具调用能力,AI就只是个聊天机器人。 - MCP 是工具调用的USB-C。
它解决的是标准化问题——写一次,到处用。 - 工具生态才是真正的壁垒。
AI模型越来越同质化,谁能提供更好的工具链,谁就更强大。 - 下一步是Agent网络。
不再是单个Agent加一堆工具,而是Agent之间的智能协作。
🔜 下期预告
《AI Agent 的评估与安全:怎么判断你的AI靠不靠谱》我们聊了记忆、协作、工具调用——都是Agent的"内功"。但还有一个关键问题:怎么评估一个Agent到底行不行?怎么知道它是在认真干活,还是在"一本正经地胡说八道"?
下周同一时间,不见不散 👀
👍 读完觉得有用?点个「在看」,让更多人搞懂AI的工具调用
💬 今天的互动问题你最想让AI帮你调用哪个工具?(比如查数据库、发邮件、管文件……)评论区说说,说不定下期就写你的场景 👇
AI搞事星球 · 给AI装上手和脚,让它替你干活
夜雨聆风