# AI 工具 Schema 生成器

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

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

**快速解答:** AI 函数调用和结构化输出需要一个描述参数的 JSON Schema。本工具根据示例推断：为每个字段推断类型，处理嵌套对象和数组，把所有字段标为必填并设置 additionalProperties: false，这正是严格工具调用所要求的。你可以输出普通 JSON Schema，或包含 name、description 和 input_schema 的 Claude 工具。

## 使用方法

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

## 示例

把一个预订示例转换为严格的 JSON Schema：

输入:

```
{ "email": "sara@example.com", "date": "2026-11-12", "people": 2 }
```

输出:

```
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "email": { "type": "string", "format": "email" },
    "date": { "type": "string", "format": "date" },
    "people": { "type": "integer" }
  },
  "required": ["email", "date", "people"],
  "additionalProperties": false
}
```

## 常见错误及解决方法

- **Unexpected token … is not valid JSON**: 示例不是有效的 JSON：检查单引号、多余的逗号和没有引号的键。JSON 格式化工具会准确指出位置。
- **工具输入必须是 JSON 对象**: 工具输入必须是对象。把列表或单个值包在对象里，例如 { "items": [...] }。
- **模型漏掉可选字段或编造数值**: 示例中的每个字段都会变成必填。把可选字段从 required 中移除，或允许它们为 null。
- **工具名称无效**: 工具名称只能包含英文字母、数字、_ 和 -，最多 64 个字符。本工具会把其他字符替换为 _。

## 常见问题

### 什么是函数调用？

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

### 为什么所有字段都设为必填？

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

### 生成的 Schema 需要修改吗？

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

### 生成器如何处理数组？

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

### 我的 JSON 会被上传吗？

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

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

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

### 工具说明应该怎么写？

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

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

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

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

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

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

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

## 相关内容

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

## 来源

- [Anthropic Docs: Tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview)
- [JSON Schema](https://json-schema.org/)
