API 開發
Tool use 入門:讓 Claude 伸手拿到它不知道的資訊
Tool use 入門:讓 Claude 伸手拿到它不知道的資訊
Claude 預設只知道訓練資料裡的東西:問它「舊金山現在天氣如何」,它只能老實說自己查不到即時資訊。這不是它不聰明,是它天生沒有對外的手腳。
tool use 就是幫它裝上手腳的機制:用一套結構化的往返流程,讓 Claude 能開口要資料、你的程式負責去拿、拿回來再讓它把答案講完。這篇帶你看懂整條流程,並動手寫出第一個工具函式。
你將學到什麼
沒有工具的 Claude 卡在哪
訓練資料有截止日,即時資訊與外部系統它都碰不到。
四步往返流程
初始請求、工具請求、取得資料、最終回應,一次看懂。
工具函式的最佳實務
名字會說話、輸入要驗證、錯誤訊息要有內容。
動手寫第一個工具
從取得現在時間的函式開始,打好整個專案的地基。
沒有工具,Claude 會在哪裡撞牆
訓練資料有截止日,所以 Claude 拿不到時事、即時數據,也碰不到你的資料庫或內部系統。偏偏使用者要的常常就是這些:現在的天氣、最新的數據、系統裡的紀錄。
每次都回「抱歉,我沒有辦法取得最新的天氣資訊」,體驗很挫折,而且明明只差一步:只要有人把資料遞給它,它就答得出來。
Tool use 的完整流程:四步往返
- 初始請求:你把使用者的問題,連同「有哪些工具可用」的說明一起送給 Claude。
- 工具請求:Claude 分析問題,判斷自己缺什麼資訊,回頭開出明確的需求單。
- 取得資料:你的伺服器執行程式,去外部 API 或資料庫把資料抓回來。
- 最終回應:你把資料傳回給 Claude,它結合原本的問題和新資料,生出完整的答案。
拿天氣當例子跑一遍:使用者問天氣,Claude 認出這需要即時資訊,發出「給我這個地點的天氣資料」的工具請求;你的伺服器呼叫天氣 API 把即時狀況回傳;Claude 再把資料揉進回答。整個過程中,真正去碰外部世界的一直是你的程式,Claude 只負責「決定要什麼」和「拿到之後怎麼說」。
一個剛剛好的練習題:提醒事項系統
這裡用的練習題是教 Claude 設提醒:對它說「幫我設個提醒,下下週四要看醫生」,它要能回「好,我會提醒你」。聽起來簡單,實際上正好踩中 Claude 的三個天生限制:
- 它大概知道今天的日期,但不知道現在確切是幾點。
- 它的日期加減不夠可靠,尤其是往後推算很多天的時候。
- 它根本沒有「設提醒」這個能力,系統裡沒有這個機制。
對應的解法就是三個工具:取得現在的日期時間、把一段時間加到某個日期上、實際寫入一筆提醒。我們會從最簡單的那個開始,一次做一個,先把工具呼叫的流程走熟,再堆上更複雜的功能。
工具函式怎麼寫才好用
工具函式本體就是一個普通的 Python 函式,在 Claude 判斷需要額外資訊時被執行。例如有人問「現在幾點」,Claude 就會呼叫你的日期時間工具。寫的時候有三條最佳實務:
- 名字要會說話:函式名與參數名都要清楚表達用途,Claude 是靠這些名字理解工具的。
- 輸入要驗證:必填參數是空的或不合法,就明確拋出錯誤,不要默默吞掉。
- 錯誤訊息要有內容:Claude 看得到錯誤訊息,寫得清楚,它就可能修正參數再試一次。
動手寫第一個工具
from datetime import datetime
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
if not date_format:
raise ValueError("date_format cannot be empty")
return datetime.now().strftime(date_format)
# Default format: "2024-01-15 14:30:25"
get_current_datetime()
# Just hour and minute: "14:30"
get_current_datetime("%H:%M")
這個函式接受一個格式字串參數,讓 Claude 能指定要的時間格式,預設回傳完整的日期加時間。開頭那行驗證看起來多餘(這個錯誤不太可能發生),但它示範的是模式本身:輸入不合法就大聲說出來,給 Claude 一個修正重試的機會。
函式寫好只是第一步。Claude 目前還不知道它的存在:下一步是為它寫一份 JSON schema,描述工具的名稱、用途與參數,再把它接進你的對話系統。這正是下一篇「定義 tool schema 與處理 tool call」要做的事。
這套模式解鎖了什麼
- 即時資訊:拿到訓練資料之外的最新資料。
- 系統整合:把 Claude 接上資料庫、API 與各種服務。
- 動態回應:答案建立在當下最新的資訊上。
- 結構化互動:Claude 清楚知道自己缺什麼、該怎麼開口要。
tool use 把 Claude 從一座靜態的知識庫,變成能操作即時資料的動態助理。天氣、即時數據、資料庫查詢,任何你的使用者需要的即時資訊,都能用同一套模式接上來。
而且這套模式是結構化的:Claude 不是含糊地說「我需要更多資訊」,而是精確指名要呼叫哪個工具、帶什麼參數,你的程式照單執行就好。這種明確性,正是它能被寫成穩定應用的原因。
延伸學習
ChatGPT 很強,但真正讓你下班的是 Google
六小時完整實錄。從「AI 很厲害,為什麼你還是每天加班」這個問題出發,把 Google Workspace 當成真正的工作平台重新設計一次流程 ── Sheets 的資料結構、Drive 與 Docs 的文件流、Gmail 與 Calendar 的通知系統,再用 Apps Script 讓它自己跑起來,最後收斂成一張屬於你自己的 AI 工作能力地圖。
NT$ 4,599
做出你的第一個 Skill
一場快閃直播的完整重製。從搞懂 Skill 的五個層級開始,帶你把一件你每天在做的重複工作,寫成一支 AI 真的會照做的 Skill ── 命名、description、輸入拆解、Workflow 訪談、Output 與 Checks,最後組成一份能通過格式檢查的 SKILL.md。
NT$ 999

