issue: Tool calls silently dropped and thought_signature lost with Google’s OpenAI-compatible endpoint

该报错发生在 Open WebUI 通过 Google 的 OpenAI 兼容端点( https://generativelanguage.googleapis.com/v1beta/openai )启用原生工具调用时,模型主动调用工具(如内置 memory 工具的 list_memories )后

快速结论:该报错发生在 Open WebUI 通过 Google 的 OpenAI 兼容端点(https://generativelanguage.googleapis.com/v1beta/openai)启用原生工具调用时,模型主动调用工具(如内置 memory 工具的 list_memories)后,工具调用被静默丢弃或缺少 thought_signature,最终表现为“消息内容为空、日志无任何输出”:issue: Tool calls silently dropped and thought_signature lost with Google's OpenAI-compatible endpoint。优先排查是否使用了 Google 的 OpenAI 兼容端点,并确认工具调用依赖的字段是否符合 OpenAI streaming 规范。

适用环境:Open WebUI(dev 版,Git Clone 安装),操作系统无特定限制;模型为 Gemini 系列(Issue 中示例为 models/gemini-3.6-flash);启用 builtin tools + memory,function_calling 保持 “native”。Issue 未提及其他 Python/CUDA/显卡信息。

最快修复方案:暂无确认的一步修复方案。Issue 最终以“Google 的 OpenAI 兼容端点并不是真正的 OpenAI 端点”为由关闭(won’t fix),Open WebUI 不会为不兼容实现绕开 OpenAI schema。

注意事项:这意味着通过该端点使用原生工具调用本身就不可靠;即使工具结果能显示,也可能因为 thought_signature 缺失导致模型无法生成最终答案。此方案未修复、未验证,不建议在生产环境依赖该端点做工具调用。

问题场景

在 Open WebUI 中添加 OpenAI 兼容连接,Base URL 设置为 https://generativelanguage.googleapis.com/v1beta/openai,填入 Gemini API Key,启用类似 models/gemini-3.6-flash 的模型。然后在模型能力中开启内置工具和 memory,保持 function_calling 为 “native”(默认值)。在新对话中发送 “Oi” 并重复几次,模型自主调用 list_memories 时触发:返回的 assistant 消息为空,日志不报错,但提供商侧显示消耗了 output tokens。

报错原文

HTTP 400 INVALID_ARGUMENT - Function call is missing a thought_signature in functionCall parts. This is required for tools to work correctly. Additional data, function call `default_api:list_memories`, position 2.

同时伴随的静默现象为:assistant message content ''output: [],且没有任何日志输出。

原因分析

可能原因是 Google 的 OpenAI 兼容端点并未完全遵循 OpenAI 流式规范,导致 Open WebUI 的两个处理环节出错:

  • 流式累积循环读取 delta_tool_call.get('index'),并在 if tool_call_index is not None: 内做全部组装,没有 else 分支。Google 把完整工具调用放在一个 chunk 中且省略了 index,OpenAI 流式规范要求始终包含该字段,于是工具调用被直接丢弃且无日志。
  • Gemini 3 的 thought_signature 通过 extra_content 随工具调用返回,Open WebUI 在三次重建工具调用字段时未回传该值,导致后续请求返回 HTTP 400。此时工具可能已执行并显示结果,但模型无法产出最终答案,消息仍为空。

维护者最终判定这不是 Open WebUI 的 bug,而是 Google 的 “OpenAI 兼容” 端点与 OpenAI schema 不兼容,因此不修复。

环境排查

  • 确认 Open WebUI 版本(Issue 中为 dev 分支最新版)。
  • 确认连接配置:Base URL 是否为 https://generativelanguage.googleapis.com/v1beta/openai,API Key 是否有效。
  • 确认使用的模型名称,如 models/gemini-3.6-flash
  • 确认模型能力中是否启用了 builtin tools 与 memory,且 function_calling 是否为 “native”。
  • 可开启浏览器控制台与 Docker 容器日志查看,但 Issue 指出该问题静默失败,无日志。

解决步骤

  1. 如果只是希望工具调用可用,可优先尝试切换为 Google Gemini 原生 API 端点(如 https://generativelanguage.googleapis.com/v1beta),或使用其他严格符合 OpenAI 规范的提供商端点(可优先尝试,非 Issue 已验证修复方案)。
  2. 如果必须使用该 OpenAI 兼容端点,可临时关闭 builtin tools 和 memory,避免模型自主调用 list_memories 触发空回复(可优先尝试,可缓解症状,但本质问题未解决)。
  3. 关注 Open WebUI 官方文档中关于 Gemini 的说明是否有更新;维护者在 Issue 中表示会更新相关文档,对该端点的工具

    参考来源

    open-webui/open-webui #28492

    GamsGo AI

    AI 工具推荐

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

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

    了解 GamsGo AI

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

    这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18294

发表回复

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