什么是 Function Calling?AI 从"只会说"到"能动手"
AI 本来只会生成文字,为什么现在能帮你查天气、算数、订日程?Function Calling(函数调用/工具调用)是什么、怎么工作、和 Agent、MCP 有何关系,一文讲清。
大模型本质只会做一件事:预测下一个词、生成文字。可你有没有想过——它凭什么能帮你查实时天气、做精确计算、查数据库、订日程?这些都不是”编一段话”能搞定的。背后的关键机制,就是 Function Calling(函数调用,也叫工具调用)。这篇讲清它是什么、怎么工作,以及和 Agent、MCP 的关系。
为什么光靠”生成文字”不够
大模型有几个天生的短板:
- 不知道实时信息:它的知识停在训练那一刻,问它”今天天气""现在股价”只能瞎猜
- 不擅长精确计算:它是”猜下一个词”,算大数、精确运算容易翻车
- 碰不到外部世界:发邮件、查你的数据库、下订单——这些它自己做不到
结论很清楚:要让 AI 真正有用,它得会”借助外部工具”,而不只是动嘴。 Function Calling 就是让它学会”用工具”的那套机制。
Function Calling 是怎么工作的
核心思路一句话:模型不自己硬编答案,而是”说出”它想调用哪个工具、传什么参数,由外部程序真正去执行,再把结果还给它。
以”北京今天天气怎么样”为例,分四步:
- 告诉模型有哪些工具:开发者预先注册好可用函数,比如
查天气(城市)、计算(算式)、发邮件(收件人, 内容) - 模型决定调用:它发现回答不了,就输出一个结构化请求——
查天气(城市="北京"),而不是瞎编一个温度 - 程序执行:外部代码真的去调天气 API,拿到”晴,26℃”
- 结果回填:把这个真实结果交回模型,它再用自然语言组织成一句人话回复你
关键点:模型本身不执行工具,它只负责”决定用哪个、传什么参数”;真正干活的是外部程序。模型学会的是”该在什么时候、如何开口要工具”。
一个好懂的比喻
把大模型想成一个聪明但被”关在屋里”的大脑:它知识渊博、会推理,但看不到外界、也伸不出手。
Function Calling 就像给了它一部电话和一串服务号码:需要天气时,它打给气象台;需要算账时,打给计算器;需要寄东西时,打给快递。它不用自己会做这些事,只要知道**“该打哪个电话、报什么信息”**就行。
和 Agent、MCP 有什么关系
这三个词经常一起出现,其实分工清晰(详见 MCP 那篇的对比):
- Function Calling:模型的一种能力——会”说出”要调用哪个工具、传什么参数
- AI Agent:决策层——规划多步、决定”现在该调哪个工具”,一步步逼近目标
- MCP:连接标准——统一规定工具怎么被描述和调用,让工具能跨应用复用
用开车打比方:Agent 是司机(决定去哪、怎么走),Function Calling 是方向盘和油门(下达具体操作的方式),MCP 是统一的道路和接口标准。像 Manus 这类能自主干活的智能体,正是把这三者组合起来:用 Function Calling 调工具、用 Agent 逻辑规划多步、用 MCP 接入各种外部服务。
它带来了什么,又要注意什么
带来的改变:
- AI 从”聊天框”变成”能办事的助手”——查、算、订、发都能做
- 是智能体、自动化工作流的技术地基
要注意的:
- 给工具即给权限:能发邮件、能改数据的工具一旦被滥用或被提示词注入劫持,后果比乱说话严重得多
- 模型仍可能选错工具、传错参数——关键操作要有校验和人工确认
- 调用也花钱花时间:每次工具调用和结果回填都占用上下文和 Token
小结
Function Calling 是 AI 从”只会说”迈向”能动手”的关键一步:模型不自己硬编,而是决定调用哪个工具、传什么参数,由外部程序执行后再把结果交回。 它像给关在屋里的大脑配了一部电话——大脑负责决策,工具负责干活。它和 Agent(决策)、MCP(连接标准)各司其职,共同撑起了如今能自主办事的 AI。理解了它,你就看懂了智能体这类产品的底层逻辑。不想自己写代码接工具的话,Zapier 提供了同一件事的无代码版本。