免费工具 · 在浏览器中运行
AI 工具 Schema 生成器
粘贴 AI 工具应接收的 JSON 示例,得到 JSON Schema 或完整的 Claude 工具定义,用于函数调用。
{
"name": "create_booking",
"description": "Create a table booking once the customer has given a name, date and number of people.",
"strict": true,
"input_schema": {
"type": "object",
"properties": {
"customer_name": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
},
"people": {
"type": "integer"
},
"notes": {
"type": "string"
}
},
"required": [
"customer_name",
"date",
"people",
"notes"
],
"additionalProperties": false
}
}快速解答
AI 函数调用和结构化输出需要一个描述参数的 JSON Schema。本工具根据示例推断:为每个字段推断类型,处理嵌套对象和数组,把所有字段标为必填并设置 additionalProperties: false,这正是严格工具调用所要求的。你可以输出普通 JSON Schema,或包含 name、description 和 input_schema 的 Claude 工具。
使用方法
- 粘贴示例 JSON. 一个真实的参数示例,例如包含姓名、日期和人数的预订。
- 为工具命名. 起一个简短的名称,并描述模型何时应该使用它。
- 复制结果. 作为工具定义使用,然后为需要的字段补充说明和枚举值。
常见问题
什么是函数调用?
让 AI 模型请求你的代码执行某个操作(例如查询订单)的方式,模型会返回符合你定义的 Schema 的结构化参数。
为什么所有字段都设为必填?
严格工具调用要求 Schema 中所有属性都列为必填且不允许额外属性,这样模型的参数总能匹配。
生成的 Schema 需要修改吗?
需要。为每个字段添加说明,为固定选项添加枚举,并添加 date 等格式,让模型确切知道要发送什么。
生成器如何处理数组?
它用每个数组的第一个元素推断元素 Schema;请确保示例中至少有一个元素。
我的 JSON 会被上传吗?
不会。Schema 在你的浏览器中生成。
JSON Schema 和工具定义有什么区别?
JSON Schema 描述数据;工具定义在 Schema 外加上名称和说明,让模型知道何时以及如何调用该工具。
工具说明应该怎么写?
说明工具做什么、什么时候用、什么时候不用。模型会根据这段文字决定是否调用工具。
在严格 Schema 中如何让字段可选?
严格工具调用要求每个字段都是必填。若要允许“没有值”,可把字段类型设为与 null 的联合,例如 ["string", "null"]。
工具可以接收嵌套对象和数组吗?
可以,生成器会根据示例推断嵌套 Schema。尽量保持较浅的嵌套;简单的参数更容易让模型正确填写。
还需要在代码中校验工具参数吗?
需要。执行任何操作前都要校验,尤其是有副作用的操作,即使 Schema 是严格的。