编写完工具函数后,下一步是创建一个 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({
# 此处填写您的 schema 字典
})这对功能而言并非严格必要,但它可以防止您稍后在代码中使用该模式时出现类型错误。
精心编写的工具函数与详细的 JSON 模式相结合,为 Claude 提供了在对话中理解和正确使用您的工具所需的一切。