MS

免费工具 · 在浏览器中运行

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 工具。

使用方法

  1. 粘贴示例 JSON. 一个真实的参数示例,例如包含姓名、日期和人数的预订。
  2. 为工具命名. 起一个简短的名称,并描述模型何时应该使用它。
  3. 复制结果. 作为工具定义使用,然后为需要的字段补充说明和枚举值。

常见问题

什么是函数调用?

让 AI 模型请求你的代码执行某个操作(例如查询订单)的方式,模型会返回符合你定义的 Schema 的结构化参数。

为什么所有字段都设为必填?

严格工具调用要求 Schema 中所有属性都列为必填且不允许额外属性,这样模型的参数总能匹配。

生成的 Schema 需要修改吗?

需要。为每个字段添加说明,为固定选项添加枚举,并添加 date 等格式,让模型确切知道要发送什么。

生成器如何处理数组?

它用每个数组的第一个元素推断元素 Schema;请确保示例中至少有一个元素。

我的 JSON 会被上传吗?

不会。Schema 在你的浏览器中生成。

JSON Schema 和工具定义有什么区别?

JSON Schema 描述数据;工具定义在 Schema 外加上名称和说明,让模型知道何时以及如何调用该工具。

工具说明应该怎么写?

说明工具做什么、什么时候用、什么时候不用。模型会根据这段文字决定是否调用工具。

在严格 Schema 中如何让字段可选?

严格工具调用要求每个字段都是必填。若要允许“没有值”,可把字段类型设为与 null 的联合,例如 ["string", "null"]。

工具可以接收嵌套对象和数组吗?

可以,生成器会根据示例推断嵌套 Schema。尽量保持较浅的嵌套;简单的参数更容易让模型正确填写。

还需要在代码中校验工具参数吗?

需要。执行任何操作前都要校验,尤其是有副作用的操作,即使 Schema 是严格的。

相关内容