[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 代理上调用 /chat/completions ,并且请求里带了 function tools,但模型属于 OpenAI gpt-5.6 系列(如 gpt-5.6-sol / luna / terra)时,LiteLLM 可能仍走 chat 路径而没有桥接到 /v1/r

快速结论:当你在自托管 LiteLLM 代理上调用 /chat/completions,并且请求里带了 function tools,但模型属于 OpenAI gpt-5.6 系列(如 gpt-5.6-sol / luna / terra)时,LiteLLM 可能仍走 chat 路径而没有桥接到 /v1/responses,从而触发 reasoning_effort 相关的 400 报错。优先排查 LiteLLM 版本是否已包含 responses_api_bridge_check 的桥接修复。

适用环境:Issue 中确认的环境为 LiteLLM 自托管代理、LiteLLM v1.92.0(报告时)与 v1.93.0(复现时),以及 v1.94.3 的隔离 venv 验证;调用入口为 /chat/completions;模型为 openai/gpt-5.6-sol、openai/gpt-5.6-luna、openai/gpt-5.6-terra。Issue 未确认具体操作系统、Python、CUDA、显卡或依赖版本。

最快修复方案:升级到包含 #34029 修复的 v1.97.0-rc.1 或该版本之后发布的版本。Issue 中已确认该修复在 v1.97.0-rc.1 中生效。

注意事项:v1.97.0-rc.1 是候选发布版本;如果你必须停留在稳定版,Issue 中出现过的临时绕过方式是把 reasoning_effort 显式设置为 none。该绕过方式不是根因修复,且可能影响模型的推理行为;是否适用于你的生产环境需要自行评估。多个相互竞争的 PR(#33237、#33373、#34043)曾拖延该问题的合并。

问题场景

用户在自己部署的 LiteLLM 代理上,向 /chat/completions 端点发送请求,请求体中包含 tools(type 为 function),并将 model 设为 openai/gpt-5.6-sol(或 luna / terra)。请求里并没有显式设置 reasoning_effort,但仍返回 400。此问题不涉及任何 SDK,直接通过 curl 对代理发起请求即可复现。

报错原文

{
    "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"
    }
}

原因分析

根据 Issue 中的排查,根本原因在于 LiteLLM 的桥接判断逻辑:responses_api_bridge_check 在决定是否把请求桥接到 /v1/responses 时,条件里把 reasoning_effort is not None 作为前置要求。虽然代码中存在“gpt-5.4+ 且带 tools”这一分支持续意图改成仅凭 tools 就桥接,但由于 reasoning_effort is not None 对两个分支都生效,凡是没显式设置 reasoning_effort 的 gpt-5.4+ 工具调用请求,都会留在 chat 模式,最终落到 chat/completions 路径并被 OpenAI 拒绝。

此外,社区怀疑 is_model_gpt_5_4_plus_model() 的模型匹配可能尚未覆盖 gpt-5.6* 系列,导致模型族识别未能正确扩展。这一条属于可能原因,Issue 中并未最终确认是唯一根因。

环境排查

  • 确认 LiteLLM 版本:报告与复现出现在 v1.92.0 与 v1.93.0;隔离验证使用 v1.94.3;修复确认在 v1.97.0-rc.1。
  • 确认调用端点是否为 /chat/completions,而不是 /v1/responses。
  • 确认请求中是否包含 tools(function 类型)。
  • 确认请求中是否显式设置了 reasoning_effort;未设置时更容易触发该问题。
  • 确认所使用的模型名是否属于 gpt-5.6-sol / gpt-5.6-luna / gpt-5.6-terra。
  • Issue 未提供操作系统、Python、CUDA、显卡等环境信息,这些项无需作为排查重点。

解决步骤

  1. 先确认当前 LiteLLM 版本;如果低于 v1.97.0-rc.1,该桥接修复可能尚未包含在内。
  2. 升级到 v1.97.0-rc.1 或之后发布的版本,该版本包含 #34029 的修复,使 gpt-5.4+ 的 function tools 请求无需显式 reasoning_effort 也能桥接到 Responses 模式。
  3. 如果暂时无法升级,可优先尝试在请求体中显式设置 "reasoning_effort": "none" 作为临时绕过;Issue 中说明这是目前可行的 workaround,但并非真正的根因修复。
  4. 升级后,用 Issue 中原始 curl 请求(gpt-5.6-sol + tools、不带 reasoning_effort)重新测试。
  5. 如果你使用 gpt-5.6-luna 或 gpt-5.6-terra,同样用相同请求验证,因为问题覆盖整个 gpt-5.6 系列。

验证方法

升级到 v1.97.0-rc.1 或之后版本后,用原本触发 400 的请求再次调用 /chat/completions:模型为 gpt-5.6 系列、包含 function tools、且不设置 reasoning_effort。如果请求不再返回 reasoning_effort 相关的 400 错误,并能正常完成工具调用,即说明桥接逻辑已按预期生效。Issue 中已有用户在 v1.97.0-rc.1 上确认修复。

参考来源

BerriAI/litellm #33221

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 26297

发表回复

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