人工智能进阶文档深度页
函数工具与参数 Schema
用 JSON Schema 描述函数输入,使模型能生成可验证的结构化参数。
学习目标
- 能说明函数工具与参数 Schema解决什么问题,以及何时适用。
- 能解释为什么“description 模糊”是误区。
学习前需要掌握
工具调用JSON 基础内容待补充
背景与问题
自由文本参数容易遗漏字段、类型错误或混入额外值;严格 Schema 可提前发现结构问题。
概念定义
函数工具是由名称、描述、输入参数 Schema 和执行实现构成的工具接口。
直观理解
它像一份机器可读表单:字段、类型、枚举和必填项都明确。
核心原理
OpenAI 当前函数调用文档建议启用 strict 模式。
严格模式要求对象关闭 additionalProperties,并把所有 properties 列入 required;可空字段用包含 null 的类型表达。
Schema 只验证结构,路径范围、额度、身份和业务规则仍需应用验证。
理解与实践步骤
- 1
定义名称和使用描述
- 2
编写 JSON Schema
- 3
开启严格模式
- 4
解析模型参数
- 5
执行语义与权限校验
- 6
调用函数并返回结构化结果
代码实现
示例 1
严格函数工具的参数 Schema
严格函数工具的参数 Schema
JSON
example_01.py用途:展示 OpenAI 当前文档推荐的 strict JSON Schema 约束;仅作静态示例。
{
"type": "function",
"name": "read_note",
"description": "读取允许目录中的一份 Markdown 笔记",
"strict": true,
"parameters": {
"type": "object",
"properties": {
"path": {"type": "string"},
"max_chars": {"type": ["integer", "null"]}
},
"required": ["path", "max_chars"],
"additionalProperties": false
}
}代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
展示 OpenAI 当前文档推荐的 strict JSON Schema 约束;仅作静态示例。
Step 1 · 1–15 行
type 和 name 标识函数工具。
{
"type": "function",
"name": "read_note",
"description": "读取允许目录中的一份 Markdown 笔记",
"strict": true,
"parameters": {
"type": "object",
"properties": {
"path": {"type": "string"},
"max_chars": {"type": ["integer", "null"]}
},
"required": ["path", "max_chars"],
"additionalProperties": false
}
}预期输出或运行结果
模型工具调用参数只能包含 path 与 max_chars;结构不合法时应拒绝执行。
常见错误 · 3 条
- description 模糊
- 漏写 additionalProperties:false
- 把可选字段从 required 中删除而不使用 null
实际应用
- API 适配
- 结构化查询
- 本地函数调用
常见错误
description 模糊
漏写 additionalProperties:false
把可选字段从 required 中删除而不使用 null
输入、输出与执行边界
输入
- JSON Schema
- 模型生成参数
输出
- 验证后的参数或结构化错误
能力
- API 适配
- 结构化查询
- 本地函数调用
只读优先默认不要求审批
官方来源与时效
资料记录日期:2026-08-30(不代表已逐项核验)。产品能力、SDK 参数和协议状态可能变化,请以链接页面的当前版本为准。
推荐学习资料
官方文档A 级
OpenAI Tools Guide
说明模型如何调用函数、搜索、计算机操作及其他工具,并展示结构化参数。
OpenAI · OpenAI Platform