[Bug]: Function tools fail with reasoning_effort error for OpenAI gpt-5.6 family models (gpt-5.6-sol/luna/terra) on /chat/completions

此报错发生在 LiteLLM 代理上,当对 OpenAI gpt-5.6 系列模型(gpt-5.6-sol/luna/terra)调用 /chat/completions 并携带 function tools 时触发,即使请求体中未显式设置 reasoning_effort 也会报 400 错误。优

快速结论:此报错发生在 LiteLLM 代理上,当对 OpenAI gpt-5.6 系列模型(gpt-5.6-sol/luna/terra)调用 /chat/completions 并携带 function tools 时触发,即使请求体中未显式设置 reasoning_effort 也会报 400 错误。优先排查:将 LiteLLM 升级到 v1.97.0-rc.1 或更高版本,该版本已合入针对 gpt-5.4+ 模型的自动桥接修复;若无法升级,可临时将 reasoning_effort 设置为 “none” 作为绕过方案。

适用环境:LiteLLM Proxy(版本 v1.92.0 和 v1.93.0 已确认真实存在);OpenAI gpt-5.6 系列模型(gpt-5.6-sol、gpt-5.6-luna、gpt-5.6-terra);通过 /chat/completions 接口调用;涉及 function tools 功能。

最快修复方案:升级到 LiteLLM v1.97.0-rc.1 或更高版本。该版本合入的 PR #34029 桥接修复已覆盖 gpt-5.4+ 系列的 function tools,即使未显式设置 reasoning_effort 也能正常工作,已验证解决本问题。

注意事项:若暂时无法升级,可在请求体中显式设置 reasoning_effort 为 “none” 作为临时绕过方案;该方案在 Issue 讨论中确认为当前可用但对部分场景可能削弱模型推理能力。v1.93.0 版本仍会复现该问题,因为修复 PR 当时尚未合入。

问题场景

用户在自托管 LiteLLM 代理上,通过 curl 向 /chat/completions 接口发送携带 function tools 的请求,使用 OpenAI gpt-5.6 系列模型(gpt-5.6-sol、gpt-5.6-luna、gpt-5.6-terra)时触发 400 错误。该问题不需要通过 SDK 即可复现,直接针对代理的 /chat/completions 接口即可触发。

报错原文

litellm.BadRequestError: OpenAIException - Function tools with reasoning_effort are not supported for gpt-5.6-sol in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'....

{
    "error": {
        "message": "litellm.BadRequestError: OpenAIException - Function tools with reasoning_effort are not supported for gpt-5.6-sol in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'....",
        "type": "invalid_request_error",
        "param": "reasoning_effort",
        "code": "400"
    }
}

原因分析

可能原因:LiteLLM 的 responses_api_bridge_check 仅在调用方显式设置 reasoning_effort 时才将请求桥接到 /v1/responses 端点。但对于 gpt-5.4+ 系列模型(包括 gpt-5.6*),OpenAI 服务端会默认应用 reasoning_effort,导致即使客户端未设置,携带 function tools 的 /chat/completions 请求也会被 OpenAI API 拒绝。

此外,LiteLLM 的模型族检测函数 is_model_gpt_5_4_plus_model()(在 #28782 中引用)可能尚未覆盖 gpt-5.6* 系列,需要扩展以识别这些新模型。该问题与 #23156 报告的 gpt-5.4 底层限制相同,但本报告直接针对 /chat/completions 接口且影响更新的 gpt-5.6 系列。

环境排查

  • LiteLLM 版本:确认是否为 v1.92.0 或 v1.93.0(这两个版本已确认受影响);修复版本为 v1.97.0-rc.1 及之后。
  • 模型名称:确认使用的是 gpt-5.6-sol、gpt-5.6-luna 或 gpt-5.6-terra 中的哪一个。
  • 请求类型:确认是通过 /chat/completions 接口调用,且请求体中包含 tools 参数。
  • 端口配置:默认代理端口为 localhost:4000,确认 curl 请求中的地址和认证头(Authorization)配置正确。

解决步骤

  1. 首选方案(已验证):将 LiteLLM 升级到 v1.97.0-rc.1 或更高版本。该版本合入了 PR #34029(此前 PR #33237、#33373、#34043 竞争同一修复,最终由 #34029 合入),其桥接逻辑已覆盖 gpt-5.4+ 系列的 function tools,即使未显式设置 reasoning_effort 也能正常工作。
  2. 临时绕过方案(可优先尝试):在请求体 JSON 中显式设置 "reasoning_effort": "none",再发送携带 function tools 的 /chat/completions 请求。注意此方案会禁用模型的推理能力,可能影响需要深度推理的场景。
  3. 替代路由方案(未验证):将请求改发到 /v1/responses 端点(见报错原文建议),但 Issue 中未提供该方案的完整配置示例,需要自行验证。
  4. 若使用企业版或长期支持版本,建议联系 LiteLLM 维护者确认修复的具体合入 Staging 发布时间。

验证方法

升级 LiteLLM 到 v1.97.0-rc.1 或更高版本后,重新发送原始 curl 请求(携带 function tools、不设置 reasoning_effort),确认不再返回 400 错误,而是正常返回模型调用 function 工具的结果。也可在请求中增加 reasoning_effort: "none" 验证临时绕过方案在当前版本下是否生效。

参考来源

BerriAI/litellm #33221(Issue 讨论中引用了 PR #33237、#33373、#34043、#34029,修复版本 v1.97.0-rc.1)

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18447

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注