在撰寫完您的工具函式後,下一步是建立一個 JSON 結構定義(schema),告訴 Claude 您的函式需要哪些參數以及如何使用它。這個結構定義就像是 Claude 閱讀的文件,用來理解何時以及如何呼叫您的工具。
理解 JSON Schema
JSON Schema 並非專屬於 AI 或工具呼叫——它是一個廣泛使用的資料驗證規範,已經存在多年。AI 社群採用它是因為它是描述函式參數和驗證資料的便利方式。

完整的工具規格有三個主要部分:
- name - 函式名稱(例如「get_weather」)
- description - 工具的功能以及何時使用它
- input_schema - 描述參數的實際 JSON 結構定義
撰寫有效的描述

description 欄位對於幫助 Claude 理解您的工具至關重要。請遵循以下最佳實踐:
- 說明工具的功能、何時使用它,以及它會回傳什麼
- 目標是 3-4 句話
- 同時為每個參數提供詳細的描述
input_schema 部分使用標準 JSON Schema 格式描述您函式的參數,包括類型資訊以及每個參數的詳細描述。
簡單的方法:讓 Claude 撰寫您的結構定義
您可以使用 Claude 本身來生成 JSON 結構定義,而不必從頭開始撰寫。以下是流程:
- 複製您的工具函式
- 前往 Claude,請它為工具呼叫撰寫一個 JSON 結構定義
- 將 Anthropic 關於工具使用的文件作為上下文提供
- 讓 Claude 依照最佳實踐生成一個格式正確的結構定義

提示應該類似於:「為這個函式撰寫一個有效的 JSON 結構定義規格,用於工具呼叫的目的。請遵循附件文件中列出的最佳實踐。」
在程式碼中實作結構定義
一旦 Claude 生成您的結構定義,將它複製到您的程式碼檔案中。使用一致的命名模式,例如 function_name_schema,以保持條理清晰:
python
get_current_datetime_schema = {
"name": "get_current_datetime",
"description": "Returns the current date and time formatted according to the specified format",
"input_schema": {
"type": "object",
"properties": {
"date_format": {
"type": "string",
"description": "A string specifying the format of the returned datetime. Uses Python's strftime format codes.",
"default": "%Y-%m-%d %H:%M:%S"
}
},
"required": []
}
}新增類型安全性
為了更好的類型檢查,請從 Anthropic 函式庫匯入並使用 ToolParam 類型:
python
from anthropic.types import ToolParam
get_current_datetime_schema = ToolParam({
# 您的結構描述字典放在這裡
})這對於功能性而言並非絕對必要,但它可以防止您稍後在程式碼中使用該結構定義時發生類型錯誤。
一個撰寫良好的工具函式與一個詳細的 JSON 結構定義相結合,為 Claude 提供了在對話中理解並正確使用您的工具所需的一切。