一句話定義
Tool Calling(工具呼叫)是讓 AI 模型在回答之前先要求外部工具幫忙查資料或執行動作的機制,模型只負責提出要求,執行永遠發生在模型之外。
30 秒看重點
- 是什麼:Tool Calling 是模型舉手說「我要用這個工具、參數填這些」,然後由外面的程式或伺服器去執行。
- 為什麼重要:你問 ChatGPT 今天的匯率、叫 Claude 讀一份網頁,底下跑的就是一次又一次的工具呼叫。
- 跟誰相關:串 API 的工程師、要決定「AI 能碰哪些系統」的主管,以及每天在用 AI 查即時資訊的一般使用者。
- 最常見的誤解:以為工具給越多、AI 就越聰明,實際上工具一多,它反而更容易挑錯。
- 記住這件事就夠了:模型只是開口要,真正動手的是程式,權限是誰給的、責任就在誰身上。
Tool Calling 到底是什麼?
Tool Calling 是「模型開口要、別人動手做」的一套分工:你先告訴模型手上有哪些工具可以用,它判斷需要哪一個之後,回傳一段指名工具與參數的結構化內容,實際執行的是你的程式,或是模型廠商的伺服器。
Anthropic 官方文件對這件事的講法非常硬:模型自己不會執行任何東西(The model never executes anything on its own)。它只發出一個結構化的請求,程式跑完再把結果送回對話裡。同一份文件還有一句我覺得該裱起來:如果你正在寫正規表達式,從模型的輸出裡挖出一個決定,那個決定本來就該是一次工具呼叫。
生活比喻:你可以想像成機車行的老闆跟學徒。你牽車進去說「怠速會抖」,老闆不會自己趴下去拆,他喊一句「12 號扳手拿來」「壓縮先測一下」,真正轉螺絲的是學徒跟儀器。Tool Calling 就是這樣,模型是那個很會判斷的老闆,工具是牆上那排家私,動手的從來不是它。
為什麼會有 Tool Calling?
因為模型只會生成文字,而使用者要的常常是「去做一件事」,這中間的落差光靠寫得更漂亮補不起來。
問題一:它不能動手,也不知道現在發生什麼事。 模型可以把一封催款信寫得很得體,但信不會寄出去;你問它今天台積電收盤多少,這個數字不在訓練資料裡,硬要它答,它就開始編。
問題二:它講的是人話,你的系統要的是欄位。 早年的土法煉鋼是讓模型自由回答,再用字串比對硬挖出意圖,挖到懷疑人生(有沒有很熟悉?)。
所以 Tool Calling 做的事很單純:把「決定」從自由文字裡拉出來,變成一份有名字、有參數、有必填檢查的表單,然後把執行權留在模型外面。
Tool Calling 是怎麼運作的?
它是一個來回轉的迴圈:模型提出要求、外面的人執行、結果再送回去,直到模型不再要求為止。
以 Anthropic 官方文件描述的流程來看,實際上是三步:
- 先把工具攤在桌上:一個工具定義就三個部分,名稱、描述、以及用 JSON Schema 寫的輸入格式。官方講得很白,詳細的描述「是工具表現最重要的因素」,建議每個工具至少寫 3 到 4 句,說清楚它做什麼、什麼時候該用、什麼時候不該用。
- 模型舉手指名:模型回應時會帶
stop_reason: "tool_use",內容裡是它挑好的工具跟自己填的參數。這時候換你的程式接手,真的去查、真的去打那支 API。 - 把結果送回去:執行結果包成
tool_result再送一次,模型讀到結果才接著講人話。只要stop_reason還是tool_use,這個迴圈就繼續轉,直到它回end_turn才算收工。
名詞小教室:工具不一定跑在你家。Anthropic 把工具分成三桶:你自己寫的(客戶端執行)、官方訂好規格但你來跑的(像
bash、text_editor、computer、browser),以及直接跑在官方伺服器上的(像web_search、web_fetch、code_execution)。第三種你連結果都不用組,回來就已經是煮好的了。至於怎麼讓一整包工具跨廠商共用,那是 MCP 在管的事。
你也不是只能被動等它決定。API 的 tool_choice 有四個選項:auto 讓模型自己判斷(預設值)、any 逼它一定要用一個、tool 指定非用哪一個不可、none 則是工具留著但不准動。
Tool Calling 跟 Function Calling 差在哪?
先講結論:兩個詞現在幾乎是同一件事,Anthropic 的文件直接寫「tool use(也叫 function calling)」,差別只在涵蓋範圍與習慣。
| 比較項目 | Tool Calling | Function Calling |
|---|---|---|
| 名字怎麼來的 | 各家 API 後來的統稱 | OpenAI 2023 年推出時的原始叫法 |
| 涵蓋範圍 | 自訂工具、內建搜尋、程式沙盒、電腦操作都算 | 偏向「呼叫一個你定義的函式」 |
| 執行位置 | 可能在你的程式,也可能在廠商伺服器 | 幾乎都在你自己的程式 |
| 你要做的事 | 內建工具開了就能用,自訂工具才要自己跑迴圈 | 每次都要自己接住、自己執行、自己送回 |
| 我會在什麼情況用這個詞 | 講整套「AI 動手」的能力 | 特指模型吐出那段呼叫格式 |
從這張表可以看出來,這不是兩種技術在打架,是同一件事在不同年代的兩個名字,後來因為工具的種類長大了,大家才慢慢改講範圍比較寬的 Tool Calling。你想看名字比較早的那半段,可以翻函式呼叫那篇。
你會在哪些 AI 工具看到 Tool Calling?
只要你用的 AI 產品會「跑出去做點什麼」,底下多半就是這套在轉。
- ChatGPT、Claude 查即時資訊:你問今天的新聞,它去搜尋再回來回答,那一次搜尋就是一次工具呼叫,而且是跑在廠商伺服器上的那種。
- AI 幫你跑數字、畫圖表:程式沙盒工具讓模型真的執行一段 Python,算出來的結果才回到對話裡,不是它「心算」出來的。
- 會操作電腦或瀏覽器的 AI:模型發出「點這裡、打這行字」的請求,執行的是你機器上的那層程式。
- 接上公司內部系統的 AI 助理:查訂單、開工單這類動作,全都是你自己定義的工具。
如果你是工程師,OpenAI、Anthropic、Google 三家的寫法不同,但概念一致。真正會咬人的地方不在程式,在你替工具寫的那段描述,寫得含糊,模型就挑錯工具,然後你會花一整個下午 debug 一個其實是中文沒寫清楚的問題。
學 Tool Calling 最常見的 3 個誤解
- 誤解一:模型會自己執行工具 — 真相是它從頭到尾只看得到兩樣東西,你給的工具規格,跟你送回去的結果。中間那段真的去查、去寫、去打 API 的過程,它一眼都沒看到。
- 誤解二:工具給越多,AI 越萬能 — 真相是剛好相反。Anthropic 文件直說,工具超過 30 到 50 個之後,模型挑對工具的能力就開始退步;而且一組串了 GitHub、Slack、Sentry、Grafana、Splunk 的設定,光工具定義就先吃掉大約 55,000 個 token,事情都還沒開始做。官方後來乾脆做了一個「工具搜尋」工具,用到才載入,通常能省下 85% 以上的定義開銷,一次只載 3 到 5 個它真的需要的。牆上掛 500 支扳手,老闆反而找不到 12 號,就這麼簡單。
- 誤解三:接上工具就等於安全 — 真相是工具接越多,被騙的面積越大。MCP 規格自己就寫了,「應該永遠有一個人在迴圈裡,有能力拒絕工具呼叫」。
一鍵全部允許真的很順手齁順手的代價是,之後每一次呼叫你都不會再看到。
想多了解 Tool Calling,從哪開始?
「我又不寫程式,這關我什麼事?」關係比你想的大。你在 AI 助理上按下的那個授權鍵,決定的就是它能呼叫哪些工具、能碰你哪些資料,出事的時候要問的是那個權限誰開的。
如果你會寫一點程式,最快的路是照官方文件跑一次最小範例,親手體驗「模型舉手、你去執行、再把結果塞回去」的迴圈。跑過一次,很多爭論你就自己有答案了。
常見問題 FAQ
Tool Calling 跟 Function Calling 是同一件事嗎?
基本上是。Anthropic 官方文件直接把 function calling 寫成 tool use 的同義詞,兩者講的都是「模型輸出一個結構化的呼叫請求、由外部執行」。差別在於 Function Calling 這個名字來自 OpenAI 2023 年推出的功能,語感偏向呼叫單一函式;Tool Calling 則涵蓋內建搜尋、程式沙盒、電腦操作等更廣的工具型態。
為什麼 Tool Calling 突然這麼紅?
因為 AI 代理在 2025 到 2026 年變成主流產品形態。當 AI 要連續完成多個步驟,每一步都是一次工具呼叫,這個機制就從加分項變成基礎建設。同時工具數量爆量,怎麼管理工具本身也變成新題目,Anthropic 甚至為此推出可以延後載入上萬個工具的搜尋機制。
我不是工程師也需要懂 Tool Calling 嗎?
不需要會寫,但知道原理有幫助。理解模型只是提出請求、實際執行的是應用程式之後,你會更清楚 AI 助理能做什麼、不能做什麼,也比較知道在授權它連接信箱、行事曆或公司系統時,風險落在哪裡。
Tool Calling 的中文翻譯有沒有統一?
沒有完全統一。台灣多數技術文件直接沿用英文原詞 Tool Calling 或 tool use,中文寫成「工具呼叫」;中國那邊比較常寫「工具調用」。本站採用「工具呼叫」,因為 call 在台灣的程式教育慣譯就是呼叫,調用是大陸用語。
學會 Tool Calling 之後,下一個該學什麼?
建議往兩個方向走。想知道這些工具怎麼被標準化管理、跨廠商共用,就看 MCP;想知道一連串工具呼叫串起來會變成什麼東西,就看 AI Agent。順序上先看 MCP 會比較好懂,因為它處理的正好是「工具太多、太散」這個你遲早會撞到的問題。
延伸閱讀
- 函式呼叫(Function Calling)是什麼?AI 動手做事的第一步 — 同一件事比較早的那個名字,講的是模型怎麼填那張單子。
- MCP 是什麼?Anthropic 推的 AI 工具標準 — 用 JSON-RPC 2.0 把工具變成跨廠商共用標準的那層協定。
- AI Agent 是什麼?不只回答問題,還會幫你動手把事做完 — 工具呼叫一次接一次串起來,就是 Agent 的執行迴圈。
- AI agent 失控佔領維基等 3 大趨勢 — OpenAI 的 agent 從沙盒的一個安全例外連了出去,剛好是「權限給太寬」的現場示範。
參考來源
- Tool use with Claude|Claude Platform Docs — tool use 與 function calling 同義、客戶端與伺服器端工具的分界、內建工具清單。
- How tool use works|Claude Platform Docs — 模型不自行執行、
stop_reason: "tool_use"迴圈、三種工具執行位置、什麼時候不該用工具。 - Define tools|Claude Platform Docs — 工具定義的三個欄位、描述寫法建議、
tool_choice四種模式。 - Tool search tool|Claude Platform Docs — 55,000 token 的定義開銷、超過 30 到 50 個工具後選擇準確度下滑、節省 85% 以上。
- MCP 規格:Tools|Model Context Protocol GitHub — 工具由模型主導、
tools/list發現與tools/call呼叫、人要留在迴圈裡的安全要求。
整理一下重點:Tool Calling 真的就一句話,模型只會舉手說「我要用這個」,真正動手的永遠是外面的人,所以工具給誰、給多少,比模型多聰明還重要。
希望這一篇有讓你對 Tool Calling 有比較具體的理解哩~如果發現事實錯誤、定義不準、或翻譯卡卡的,歡迎透過聯絡頁指正,看到我們會盡快修。
我們下篇文章見囉~
本條目由 Array 報報 AI 編輯部根據上方「參考來源」整理,文末已揭露 AI 生成 + 公開資料引用。