Skip to main content
工具调用允许模型生成结构化参数,由你的应用执行函数。模型不会替你执行真实操作。Responses 与 Chat Completions 的工具定义和返回结构不同。
在 response.output 中查找 type == "function_call" 的项。执行函数后,使用同一个 call_id 发送 function_call_output。
Responses 的函数定义字段直接位于工具对象中;Chat Completions 把定义放在 function 对象内。不要只替换端点后继续沿用另一种结构。

安全边界

工具参数来自模型输出,必须像不可信用户输入一样校验。涉及付款、删除、发信和权限变更时,应增加服务端授权和人工确认。
  • 使用 JSON Schema 限制字段类型和允许值。
  • 设置超时、并发和调用次数上限。
  • 不向模型暴露内部密钥。
  • 按协议返回工具结果:Responses 使用 function_call_output 和 call_id;Chat Completions 使用 tool 消息和 tool_call_id。
  • 对模型不支持的工具参数提供明确降级路径。
最后修改于 2026年8月12日