乐于分享
好东西不私藏

AI 是怎么「用工具」的?拆解 Function Calling

AI 是怎么「用工具」的?拆解 Function Calling
你有没有发现,现在的 AI 好像「长出手」了,能帮忙干活了,比如之前很火的帮忙买奶茶、点咖啡?
以前它只会陪你聊天、写文案。可现在你跟它说「帮我查下明天上海的天气」, 它真能给你一个实时结果;你说「帮我点一杯xxx奶茶」, 它也能根据实时定位查询附近门店,帮忙下订单。
奇怪的是 —— 它明明只是个「语言模型」, 肚子里装的是文字,它到底是怎么把活干成的?
先说结论:AI 自己啥也没干。它干的事,和你在电商 App 上购物时那个「帮你下单的助手」一模一样 ——它从不进仓库发货,只负责把你的话,变成一张平台能识别的「标准订单」。真正发货的是仓库,它只是那个帮你把单下明白的人。
这个「下单」的动作,就是今天要讲人话的主角:Function Calling (函数调用)

一、先破个误会:AI 不会「自己动手」

很多人以为,AI 能查天气,是因为它「自己上网查了一下」。
不是的。大模型的本质,还是我们之前讲过的那件事 ——猜下一个字。它擅长的是理解语言、组织语言,但它没有手,不能真的点鼠标、敲回车、打开一个网页。
打个比方:
❌ 你以为的:你在 App 上说「买瓶洗发水」, 这个助手转身冲进仓库,亲自打包、贴单、送货上门。
✅ 实际发生的:助手站在原地没动, 只是帮你生成一张订单 ——「洗发水 ×1, 寄到公司」, 提交给平台。发货是仓库的事,它一件货都没碰。
AI 也是这样。它不发货,它只负责听懂你要什么,然后生成一张标准订单

二、那它到底干了啥?—— 生成一张「标准订单」

当你说「查下明天上海的天气」,AI 在幕后做的,不是查天气,而是生成一张结构工整的订单, 长得大概像这样:

要用的工具:查天气;城市:上海;日期:明天

你看,它把你一句大白话,拆成了「调用哪个工具 + 传什么参数」。这张订单会被交给一个真正能查天气的程序去执行,程序查完,把结果 ("明天上海小雨,22~28℃") 再塞回给 AI,AI 最后总结回答。
先讲到这,再点术语:AI 生成的这张「标准订单」, 专业上叫函数调用请求; 它能调用的那些工具 (查天气、发邮件), 叫函数Tools; 整套「让模型决定该下哪张单、怎么下」的机制,就叫Function Calling
所以记住一句话就够了:模型负责「下单」, 工具负责「发货」。模型永远不碰货。

三、全流程走一遍:一张订单的旅行

还是用「查明天上海的天气」这个例子,把幕后四步完整跑一遍:
  • 听懂
AI 读你的话,判断出「这活我自己答不了,得查实时数据」, 并挑中「查天气」这个工具。
  • 下单
它生成标准订单 —— 工具 = 查天气,城市 = 上海,日期 = 明天。注意,这一步 AI 只是 "下单", 没有 "发货"。
  • 仓库发货
外部程序拿着这张订单,真的去调天气接口,拿回数据。
  • 签收 + 翻译
数据回到 AI 手里,它再把冷冰冰的结果,组织成回复:「明天上海有小雨,记得带伞,22 到 28 度。」
整个过程,你只感觉「AI 帮我查了天气」, 但其实是它下单、工具履约、它再报结果。它像个特别靠谱的导购,自己不进仓库,但知道该把订单派给谁。

四、为什么非得这么绕?直接让 AI 答不行吗?

好问题。直接让模型凭记忆回答,不是更快?
不行,而且这么绕恰恰是它的聪明之处。原因有三个:
它记的是 "旧的"模型的知识停在训练那一刻,它不知道 "明天" 上海下不下雨。实时的事,必须交给工具查。它算数会飘让模型硬算一笔复杂账,它可能一本正经地算错 (这就是我们讲过的 "幻觉")。但交给计算器工具,答案分毫不差。它够不着你的系统
你的日历、你的周报数据、公司的报销系统,模型本身进不去。得借助工具调用才能获取到具体信息。
对比一下就懂了:
❌ 不用工具:「明天上海天气?」→ AI 凭感觉编一个「应该是晴天吧」, 可能全错。
✅ 用工具:「明天上海天气?」→ AI 判断应该调查天气工具进行查询 → 天气接口返回真实数据 → AI 如实转述。
Function Calling 的意义,就是给 "只会猜字" 的模型,接上了一双能碰到真实世界的手。它从一个「知识渊博但两耳不闻窗外事」的书呆子,变成了「能查、能算、能办事」的助理。

五、你可能会踩的坑

理解了原理,用起来就能避开两个最常见的坑:
坑一:工具没配好,AI 巧妇难为无米之炊。
❌ 你以为只要 AI 够聪明,它就能订奶茶。实际上如果没人给它接上「工具」, 它连订单都提交不出去,只能干着急。
✅ AI 能不能干某件事,取决于有没有给它配对应的工具。这也是为什么同样一个 AI, 有人用它能操作一堆软件,有人用它只能聊天 —— 差在工具。
坑二:话说不清,AI 就下错单。
❌ 你说「帮我订张票」, 不说时间、不说地点。助手拿着半张空白订单,只能瞎猜,或者反过来追问你。
✅ 你说「订下周三上午北京到上海的高铁票,二等座」。信息给全,AI 一次就把订单下对,仓库照单发货,又快又准。
说白了:AI 用工具的水平,一半看工具配得全不全,一半看你话说得清不清。这也是为什么会写 Prompt 的人,用 AI 办事的成功率天然更高 —— 他们天生就懂「怎么把订单下明白」。

六、顺带说清:Function Calling、MCP、Skill 到底谁是谁

讲到这,肯定有人开始犯晕:又是 Function Calling, 又是 MCP、Skill, 这几个到底啥关系?是不是一回事?
先给结论:它们不是三选一,而是各管一段。还是用网购下单举例来说明,一下就清楚了。
想象你在电商 App 上买东西:
  • Function Calling = 你按下「提交订单」这个动作
它把你 "我要买这个" 的意图,变成一张平台能识别的标准订单(买哪件、几个、寄到哪)。它只是个下单机制, 本身不生产任何商品。
  • 工具、函数 = 货架上真实的商品和背后的仓库
你下的单最终能发货,是因为商家早就把货上架、配好了库存。对应到 AI, 就是开发者事先把 "查天气"" 订奶茶 " 这些工具接好了。没上架的东西,你下单也买不到。
  • MCP = 平台的「统一入驻标准」
它让天南海北的商家、第三方仓库,用同一套规则接入平台,你在一个 App 里就能买遍全网。对应到 AI,MCP 就是那个让各种外部系统 (数据库、日历、公司内网) 用统一插头接进来的标准协议 —— 我们上一篇叫它 "AI 世界的 USB-C"。
  • Skill = 金牌导购的「服务手册」
它不卖货,也不管仓库,它教店员怎么问清你的需求、怎么帮你选对、怎么把单下得又快又准。对应到 AI,Skill 是一份说明书,教它 "遇到这类活该分几步、注意什么"。
❌ 误解:「Function Calling 调用的方法,是 MCP 或 Skill 提供的。」
✅ 准确:下单动作是 Function Calling; 商品 (工具) 是开发者上架的;MCP 是让外部货源统一接入的入驻标准;Skill 是教 AI 怎么把单下对的导购手册。

Function Calling 负责「下单」, 工具负责「供货」,MCP 负责「把全网货源接进来」,Skill 负责「教 AI 怎么下对单」。四个各司其职,谁也替代不了谁。

模型负责下单,工具负责发货,模型永远不碰货。

AI 不是自己长了手,而是学会了生成一张平台看得懂的标准订单, 把真正的活派给能干的工具。这就是它从 "会聊天" 迈向 "会办事" 的第一块基石。