# AI 工具 Schema 生成器

URL: https://shahid09.is-a.dev/zh/tools/ai-tool-schema-generator/
Author: Muhammad Shahid (https://shahid09.is-a.dev/)
免费工具 · 在浏览器中运行

粘贴 AI 工具应接收的 JSON 示例，得到 JSON Schema 或完整的 Claude 工具定义，用于函数调用。

**快速解答:** 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 是严格的。

## 相关内容

- [JSON 格式化与校验工具](https://shahid09.is-a.dev/zh/tools/json-formatter/)
- [如何让 AI 工具调用更安全](https://shahid09.is-a.dev/engineering/ai-agents-langgraph-n8n-production/)
- [聘请 AI 智能体开发者](https://shahid09.is-a.dev/hire/ai-agent-developer/)
