# LLM 工具调用 JSON Schema 构建器

一次定义 LLM 工具，同时生成 OpenAI、Anthropic、Gemini 三家经过校验的函数调用 payload。

> 标准页面: https://elysiatools.com/zh/tools/llm-tool-calling-json-schema-builder

- **分类:** AI Tools

- **关键词:** 函数调用, 工具 schema, json schema, openai 工具, anthropic 工具使用, gemini 函数声明, llm 智能体, mcp, 结构化输出

## 概述

每行一个参数的 DSL 输入，输出三份可直接粘贴的厂商 payload，并附校验表，在上线前拦下会导致 400 报错的 schema 差异。

## 输入项

- **工具名称** (text): get_weather
- **工具描述** (textarea): Get the current weather for a city. Use when the user asks about temperature, conditions or a forecast.
- **参数（每行一个）** (textarea): city | string | required | City name, e.g. "Paris" units | enum | optional | Temperature unit for the report location | object | required | Coordinates lat | number | required | Latitude in degrees lng | number | required | Longitude in degrees
- **严格模式** (checkbox)
- **tool_choice** (select)

## 适用场景

- 为多模型架构或混合大模型 Agent 构建统一的工具调用接口与 Schema 定义时。
- 需要在 OpenAI、Anthropic Claude 与 Gemini 之间迁移函数定义或同时适配三家 API 时。
- 排查多层嵌套对象、数组及严格模式（Strict Mode）下各模型厂商 JSON Schema 规范不兼容的问题时。

## 工作原理

- 输入工具名称与功能描述，并在参数框使用 `字段名 | 类型 | required/optional | 说明` 的简洁 DSL 逐行声明参数，支持缩进表示嵌套对象或数组元素。
- 配置是否启用严格模式（strictMode）以及 tool_choice 调用策略（omit、auto 或 force）。
- 系统自动解析语法并转换为符合各厂商特定规范的 JSON Schema（如 OpenAI 的 strict 规范、Anthropic 的 input_schema 及 Gemini 的大写数据类型与 propertyOrdering），并输出校验对照表。

## 使用案例

- AI Agent 插件开发：为智能体一次性声明天气查询、数据库检索或计算器等外部工具规范。
- 多模型路由网关构建：在统一的 API 网关中维护一份 DSL，动态向下游不同的大模型分发适配后的函数定义。
- 严格结构化数据提取：设计复杂嵌套表单，利用各大模型的 Tool Calling 能力保证输出 JSON 字段格式严格受控。

## 常见问题

### 什么是参数输入的单行 DSL 语法？

每行使用竖线分隔四个属性：字段名称、数据类型（如 string、integer、enum、object、array）、必填状态（required/optional）和参数描述；子字段可通过空格缩进定义。

### 开启严格模式（strictMode）对生成结果有什么影响？

OpenAI 输出中将启用 `strict: true` 并将所有字段声明进 required，可选字段转为联合类型；同时针对 Gemini 与 Anthropic 自动补齐或适配符合严格输出约束的结构限制。

### 生成的 Payload 是否可以直接粘贴到官方 SDK 中？

可以，输出卡片直接提供 OpenAI tools 数组、Anthropic tools 列表以及 Gemini functionDeclarations 格式，复制后可直接传入对应 SDK 的请求体。

### 工具如何处理复杂对象与数组的嵌套？

在 \`object\` 或 \`array\` 类型下一行增加空格缩进编写子字段，构建器会自动生成递归嵌套的 \`properties\`、\`items\` 以及对应的 \`required\` 约束。

### 不同大模型厂商对 JSON Schema 的支持有何主要区别？

Gemini 使用大写数据类型（如 OBJECT、STRING）且不支持某些关键字；OpenAI 严格模式要求 additionalProperties 为 false 且所有属性必须列入 required；Anthropic 则采用 input_schema 封装。

## 相关工具

- [MCP Server 契约测试器（stdio + WebSocket 双传输 · JSON Schema 2020-12 工具 schema 校验）](https://elysiatools.com/zh/tools/model-context-protocol-mcp-server-tool-schema-stdio-websocket-transport-contract-tester): 对 Model Context Protocol 服务器做端到端契约验证：JSON-RPC 2.0 握手与版本协商、capabilities 交换、tools/list 输入 schema 的 object 根类型与 2020-12 草案编译校验、resources 读写、prompts 获取、ping、未知方法 -32601 语义、sampling/createMessage 往返与 stdio 换行分帧纪律；默认内置参考服务器离线自测，亦可对你的 stdio 命令或 ws:// 端点实测。
- [ECharts 主题 Token 抽取器](https://elysiatools.com/zh/tools/echarts-theme-token-extractor): 从 ECharts 主题 JSON 抽取设计 token——颜色、数字、字号与字符串——并直接导出到你的设计系统。粘贴一个主题对象（即通过 echarts.init(dom, themeName) 注册的那种），工具遍历每个叶子节点，为每个颜色（可选地将命名色/rgb 规范化为 hex）、间距数字、字号与字符串打标，然后输出干净的 CSS 变量、Tailwind theme.extend 配置、Style Dictionary tokens.json 或 SCSS 变量。在 ECharts 可视化主题与 Figma/CSS/Tailwind 设计 token 之间架桥，无需逐个手抄。
- [图片调色板转设计令牌](https://elysiatools.com/zh/tools/image-to-design-tokens): 从图片中用 k-means 聚类提取主色，导出为 CSS 变量 / SCSS 变量 / Tailwind 配置 / JSON 设计令牌，并自动为每个颜色生成命名色阶
- [JSON 路径提取器](https://elysiatools.com/zh/tools/json-path-extractor): 使用 JSONPath 或 JMESPath 风格表达式查询 JSON，查看匹配路径，并在原始文档中高亮提取结果
- [JSONPath 查询工具](https://elysiatools.com/zh/tools/jsonpath-query-tool): 用 JSONPath 表达式查询任意 JSON，预览命中结果、切换输出格式，并保存常用查询模板
- [JWK 生成与解析器](https://elysiatools.com/zh/tools/jwk-generator): 生成 RSA、EC（P-256/P-384/P-521/secp256k1）与 OKP（Ed25519/Ed448/X25519/X448）的 JSON Web Key，或解析已有 JWK 以查看参数、指纹与元信息
- [OCR PDF 转结构化 JSON 桥](https://elysiatools.com/zh/tools/ocr-pdf-to-structured-json-bridge): 按几何结构抽取 PDF 文本层（y 坐标分行、列间隙识表、字号识标题、冒号键值对），然后逐字段填入用户提供的 JSON Schema——标签按归一化键名匹配、值按声明类型归一化，并用 ajv 校验。
- [PDF 转 JSON 结构浏览器](https://elysiatools.com/zh/tools/pdf-to-json-structure-explorer): 提取 PDF 的 OpenDataLoader JSON 结构，并以浏览器视图查看标题、段落、表格、列表、页码和 bbox

## 示例

- [Terraform Plan JSON 样本](https://elysiatools.com/zh/samples/terraform-plan-json-samples): 用于依赖可视化和变更审查的 Terraform plan JSON 文件样本，贴近 terraform show -json 输出结构
- [聊天记录 JSON 示例](https://elysiatools.com/zh/samples/chat-transcript-json): 多角色聊天记录的 JSON 示例
- [JSON 示例](https://elysiatools.com/zh/samples/json): JSON（JavaScript 对象表示法）格式示例，从简单到复杂结构
- [富媒体 JSON 示例](https://elysiatools.com/zh/samples/rich-media-json): 常见富文本编辑器（TipTap、Quill、Slate）的 JSON 示例
