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

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

我個人更喜歡“工具調用”這個說法,因為它更形象。“Function”一聽就像是程序員的黑話,而“工具”則更加通俗易懂,不是嗎?

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

























