工具讓 Claude 能夠存取外部世界的資訊,解決了其一項關鍵限制。預設情況下,Claude 只能存取其訓練時所用的資訊,這意味著它無法提供像今天的天氣或最新新聞這類即時資訊。

當使用者詢問「舊金山的天氣如何?」時,Claude 通常會回答「很抱歉,但我無法存取最新的天氣資訊。」工具透過在 Claude 與外部資料來源之間建立橋樑來解決這個問題。
工具使用的運作方式
工具使用流程遵循特定的流程,涉及您的伺服器與 Claude 之間多次來回的通訊:

- 初始請求: 您向 Claude 發送一個問題,並附上如何取得額外資料的指示
- 工具請求: Claude 分析問題,並要求取得其所需的特定外部資料
- 資料擷取: 您的伺服器執行程式碼以擷取所請求的資訊
- 最終回應: Claude 使用外部資料提供完整、有根據的答案
實際應用中的天氣範例
以下是天氣查詢的工具使用流程運作方式:

當使用者詢問天氣時,您會在向 Claude 發出的初始請求中,包含如何取得目前天氣資料的詳細資訊。Claude 識別出它需要目前的天氣資訊,並要求您的伺服器取得該資訊。您的伺服器呼叫天氣 API,擷取即時資料,並將其傳回給 Claude。最後,Claude 將原始問題與最新的天氣資料結合,提供準確、即時的回應。
實作上的挑戰
工具使用可能會讓人感到困惑,因為邏輯流程與您實際撰寫程式碼的方式之間存在脫節。實作方式並不遵循與概念步驟相同的順序:

實際上,您通常需要:
- 先撰寫工具函式
- 建立 JSON 結構描述規範
- 處理 ToolUse 和 ToolResult 部分
- 在您的請求中包含該結構描述
這種在實作不同部分之間跳躍的方式,正是工具使用一開始看起來很複雜的原因。關鍵在於理解邏輯流程中的每個步驟都需要特定的程式碼元件,而您建構這些元件的順序會與它們執行的順序不同。
在接下來的影片中,我們將逐步實作工具使用,並頻繁參考此流程圖,以追蹤我們目前正在建構的部分。