GPT-6 Sol 和 Luna 工具调用失败?先检查端点与推理参数

区分 Responses 与 Chat Completions 的函数格式,检查 reasoning、采样参数和缓存迁移,附不联网的本地请求检查器。

浅色卡片上的纸飞机黑色线描,配几何图形与文章英文标题。

GPT-6 Sol 或 Luna 需要同时进行推理与函数调用时,应使用 Responses API。 当前文档中,Chat Completions 的函数调用仅支持 reasoning_effort: "none"。纯文本请求成功,不代表代理循环已经适配。

本文依据 OpenAI 迁移指南SolLuna文档,于 2026 年 9 月 23 日核对。检查范围是文档与本地请求结构,没有付费 API 实测或虚构的服务端错误回执。

先选端点,再换模型字段

请求目标端点推理字段
Chat Completions 函数调用/v1/chat/completions顶层 reasoning_effort: "none"
推理与函数调用/v1/responsesreasoning: {"effort":"low"} 等支持值
Responses 内置工具/v1/responses另查该工具当前要求

两款模型文档列出的档位为 nonelowmediumhighxhighmax。Chat 的顶层字段与 Responses 的嵌套对象不能混用。兼容 OpenAI 的网关也不必然实现全部 Responses 功能,供应商路由需要单独验证。

准备一个只读函数请求

下面的请求体声明订单状态查询,不实施订单操作。Responses 中函数直接放在工具对象内,与 Chat 的嵌套 function 格式不同:

{
  "model": "gpt-6-sol",
  "input": "Look up the status of order EXAMPLE-001.",
  "reasoning": {"effort": "low"},
  "max_output_tokens": 2048,
  "tools": [{
    "type": "function",
    "name": "lookup_order",
    "description": "Read the status of a sample order.",
    "parameters": {
      "type": "object",
      "properties": {"order_id": {"type": "string"}},
      "required": ["order_id"],
      "additionalProperties": false
    },
    "strict": true
  }]
}

声明工具不等于实现工具,也不保证模型一定调用。应用需要处理返回的调用、验证参数、执行允许的只读操作,再按 Responses 循环返回结果。接入生产服务前,先用非敏感样例数据验证。

Chat Completions 使用嵌套的 function 对象及顶层推理字段;含函数工具时应设为 none。只改端点 URL、不调整请求体和结果处理,不算完成迁移。

删除不兼容的采样参数

迁移指南要求:推理不为 none 时,删除 temperaturetop_ptop_logprobs。Chat Completions 还需删除 logprobs;Responses 则从 include 中移除 message.output_text.logprobs

检查 SDK 包装层是否注入了默认参数,而不只检查自己写的配置。调试时查看最终请求结构,日志应隐去密钥和敏感内容。失败时保留真实响应,不用其他模型的报错文字代替。

在本地检查请求体

下载检查器例子 JSON,运行:

python3 check_request.py responses responses-example.json

检查器不联网,只覆盖本文涉及的端点、档位与参数冲突。它不是完整 Schema 校验器,不验证账号权限、计费、限流、工具行为或第三方实现。测试使用合成请求,包含故意构造的无效案例。

已有 Chat 请求可脱敏保存后使用 chat 参数检查。逐项理解诊断结果;如果业务依赖被删除字段,应调整集成并验证输出处理,而不是机械删除后直接上线。

保留工具状态和计费证据

代理循环应保留工具调用标识,回传匹配结果,并维护 API 要求的对话内容。完整流程参见函数调用文档

从 GPT-5.5 或更早版本迁移时,当前指南还要求将 prompt_cache_retention 改为 prompt_cache_options.ttl,值为 "30m"。JSON 能解析不代表缓存配置仍受支持;缓存资格与费用应另行核对。

权限问题看入口指南,费用看 SolLuna。本地格式通过只是一个检查点,真实运行还要验证任务结果与回执。

常见问题

Chat Completions 能进行函数调用吗?
当前 Sol/Luna 指南允许在 reasoning_effort 为 none 时使用;推理加函数调用应使用 Responses。
检查器通过就说明账号能用模型吗?
不能。它不发送请求,也不验证权限、计费和模型输出。
启用推理后可以保留 temperature 吗?
当前迁移指南要求推理不为 none 时移除 temperature、top_p、top_logprobs,并检查对应端点的 logprobs 字段。