AI 為何能查天氣、訂機(jī)票?揭秘大模型背后的“神秘工具箱”

你有沒(méi)有想過(guò),為什么 AI 能回答“今天上海天氣怎么樣?”這種實(shí)時(shí)問(wèn)題,甚至幫你預(yù)訂機(jī)票?明明它的訓(xùn)練數(shù)據(jù)截止到去年,怎么會(huì)對(duì)現(xiàn)在的事情了如指掌?
答案就藏在一個(gè)核心技術(shù)里——工具調(diào)用(Tool Calling)。
簡(jiǎn)單說(shuō),工具調(diào)用就是讓大模型在遇到自己搞不定的問(wèn)題時(shí),能像我們一樣,打開(kāi)一個(gè)“工具箱”,借用外部工具來(lái)完成任務(wù)。
這個(gè)“工具箱”里什么都有:網(wǎng)頁(yè)搜索、計(jì)算器、API 調(diào)用、數(shù)據(jù)庫(kù)查詢……任何能幫它完成特定任務(wù)的,都可以是它的工具。
目前,工具調(diào)用技術(shù)已經(jīng)相當(dāng)成熟,幾乎所有主流的 AI 大模型和開(kāi)發(fā)平臺(tái)都已支持。
AI 真的會(huì)“自己”調(diào)用工具嗎?
一聽(tīng)到“工具調(diào)用”,很多人會(huì)誤以為是 AI 服務(wù)器自己去執(zhí)行了某個(gè)工具。
大錯(cuò)特錯(cuò)!
真相是:AI 只負(fù)責(zé)“提要求”,而真正干活的,是我們自己的應(yīng)用程序。
整個(gè)過(guò)程更像是一個(gè)分工明確的團(tuán)隊(duì)協(xié)作。我們以“什么是 MCP?”這個(gè)問(wèn)題為例,看看團(tuán)隊(duì)是如何配合的:
1. 用戶:提出問(wèn)題:“什么是 MCP?”
2. 程序(項(xiàng)目經(jīng)理):將問(wèn)題轉(zhuǎn)達(dá)給 大模型(技術(shù)專家)。
3. 大模型(技術(shù)專家):分析后發(fā)現(xiàn)知識(shí)庫(kù)里沒(méi)有,判斷需要上網(wǎng)搜索,于是向程序提要求:“我需要用「網(wǎng)頁(yè)抓取工具」查一下,關(guān)鍵詞是 MCP”。
4. 程序(項(xiàng)目經(jīng)理):收到請(qǐng)求,立刻安排 網(wǎng)頁(yè)抓取工具(實(shí)習(xí)生) 去執(zhí)行。
5. 網(wǎng)頁(yè)抓取工具(實(shí)習(xí)生):勤勤懇懇地完成抓取,把數(shù)據(jù)返回給程序。
6. 程序(項(xiàng)目經(jīng)理):將抓取到的信息整理好,再次交給 大模型(技術(shù)專家)。
7. 大模型(技術(shù)專家):閱讀信息,總結(jié)提煉,生成一份通俗易懂的回答。
8. 程序(項(xiàng)目經(jīng)理):最后,將這份完美的答案呈現(xiàn)給用戶。
網(wǎng)頁(yè)抓取工具網(wǎng)頁(yè)抓取工具 (實(shí)習(xí)生)大模型 (技術(shù)專家)應(yīng)用程序 (項(xiàng)目經(jīng)理)用戶
 網(wǎng)頁(yè)抓取工具
 網(wǎng)頁(yè)抓取工具 (實(shí)習(xí)生)
 大模型 (技術(shù)專家)
 應(yīng)用程序 (項(xiàng)目經(jīng)理)
 用戶核心:AI 不直接執(zhí)行工具,由應(yīng)用程序協(xié)調(diào)AI 只負(fù)責(zé)思考和決策工具在安全可控的環(huán)境中執(zhí)行1. 提問(wèn): "什么是MCP?"
 2. 傳遞用戶問(wèn)題
 3. 分析問(wèn)題,發(fā)現(xiàn)知識(shí)盲區(qū)4. 請(qǐng)求調(diào)用工具工具: 網(wǎng)頁(yè)抓取工具參數(shù): 搜索 "MCP"
 5. 執(zhí)行網(wǎng)頁(yè)抓取
 6. 返回抓取結(jié)果
 7. 將結(jié)果傳回
 8. 分析信息,生成回答9. 返回最終答案
 10. 呈現(xiàn)答案看明白了嗎?AI 只是“大腦”,負(fù)責(zé)思考和決策,而我們的應(yīng)用程序才是“手腳”,負(fù)責(zé)執(zhí)行和落地。
為什么要設(shè)計(jì)得這么“麻煩”?
你可能會(huì)問(wèn):為什么不讓 AI 直接調(diào)用工具,一步到位?這樣來(lái)回傳遞不浪費(fèi)時(shí)間嗎?
這背后最重要的考量是——安全!
這種設(shè)計(jì)確保了 AI 永遠(yuǎn)無(wú)法直接觸碰你系統(tǒng)的核心資源。所有操作都必須經(jīng)過(guò)你程序的“批準(zhǔn)”,你擁有絕對(duì)的控制權(quán),可以決定 AI 能做什么,不能做什么。
舉個(gè)極端點(diǎn)的例子:假如你開(kāi)發(fā)了一個(gè)“房屋爆破”工具。
- 現(xiàn)在的方式:用戶對(duì) AI 說(shuō)“幫我把這棟樓炸了”。AI 分析后,會(huì)向你的程序申請(qǐng):“我需要使用「房屋爆破」工具”。這時(shí),你的程序可以立刻拒絕這個(gè)危險(xiǎn)請(qǐng)求,從而避免災(zāi)難。
 - 如果 AI 直接調(diào)用:AI 覺(jué)得這個(gè)需求很合理,直接就執(zhí)行了。等你反應(yīng)過(guò)來(lái),房子可能已經(jīng)沒(méi)了。
 
把決定權(quán)留在我們自己手里,既能利用 AI 的智慧,又能保證系統(tǒng)的安全,還能減輕 AI 服務(wù)器的負(fù)擔(dān),何樂(lè)而不為呢?
工具調(diào)用 vs 功能調(diào)用
如果你在看技術(shù)文檔時(shí)遇到 Function Calling(功能調(diào)用) 這個(gè)詞,別懵,它和 Tool Calling(工具調(diào)用) 說(shuō)的完全是同一件事!只是不同廠商或開(kāi)發(fā)者習(xí)慣的叫法不同。
Spring AI 的官方文檔開(kāi)篇就明確了這一點(diǎn):

我個(gè)人更喜歡“工具調(diào)用”這個(gè)說(shuō)法,因?yàn)樗蜗蟆!癋unction”一聽(tīng)就像是程序員的黑話,而“工具”則更加通俗易懂,不是嗎?

好了,今天關(guān)于“工具調(diào)用”的分享就到這里。
希望這篇文章能幫你徹底搞懂 AI 是如何借助外部力量變聰明的。















 
 
 







 
 
 
 