issue: native tool calling via API doesn’t work and breaks knowledge access

用户在 Open WebUI v0.10.2(Docker 安装)中创建模型,为模型启用工具(如网络搜索)并关联知识库。随后通过 /api/chat/completions 端点(使用个人 API Key)以 stream: false 方式请求该模型,期望工具调用和知识库检索生效。实际表现是工具不

issue: native tool calling via API doesn't work and breaks knowledge access

issue: native tool calling via API doesn’t work and breaks knowledge access

快速结论:该问题通常发生在通过 Open WebUI API(chat completions 端点)调用已配置工具或知识库的模型时。优先确认你是否使用了 Open WebUI 默认启用的 “Native” 工具调用模式,该模式依赖服务端工具调用,而 OpenAI 兼容的 chat completions API 本身不支持服务端工具调用,导致工具和依赖工具调用的知识库均失效。

问题场景

用户在 Open WebUI v0.10.2(Docker 安装)中创建模型,为模型启用工具(如网络搜索)并关联知识库。随后通过 /api/chat/completions 端点(使用个人 API Key)以 stream: false 方式请求该模型,期望工具调用和知识库检索生效。实际表现是工具不可用,且知识库也无法响应。

报错原文

# 用户 curl 请求(无显式报错,但返回内容不包含工具调用或知识库检索结果)
curl -s -k -X POST "<base_url>/api/chat/completions" \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "my-model",
    "messages": [
      {"role": "user", "content": "Who is the current chancellor of Germany?"}
    ],
    "stream": false
  }' | python3 -m json.tool
# 返回只包含基础模型回答,无工具调用相关字段

原因分析

社区核心成员 tjbck 在相关讨论中明确指出:Chat Completions API 本质上不支持服务端工具调用(server-side tool calling)。Open WebUI 默认使用 “Native” 工具调用模式,该模式依赖服务端自动触发工具调用,因此通过 chat completions 端点调用时,工具和需要工具调用作为中介的知识库(Knowledge Base)均不会被使用。这是 API 协议层面的限制,而非纯粹的 bug。

可能原因(Issue 作者在回复中补充):即使将 stream 改为 true,问题依然存在,说明问题不在于流式开关,而在于 chat completions API 不具备该能力的底层设计。另,知识库访问依赖工具调用(检索文件),因此当工具调用被阻断时,知识库也必然失效。

环境排查

  • Open WebUI 版本:v0.10.2(请确认是否为最新版本,尽管用户已声称使用最新版)
  • 安装方式:Docker
  • 后端模型:任意(用户示例中使用 gemma-4-31b)
  • API 端点:/api/chat/completions(OpenAI 兼容接口)
  • 工具调用模式:默认 “Native”(非 Legacy)
  • 请求参数:stream: falsestream: true(均不影响)

解决步骤

  1. 检查工具调用模式:登录 Open WebUI 浏览器界面,进入「管理员设置」→「工具」或「模型设置」,确认当前工具调用模式是否为 “Native”。如果是,尝试切换为 “Legacy” 模式。
  2. 使用 Legacy 模式测试 API:切换为 Legacy 模式后,重新通过 API 发送相同的请求,检查工具是否可用。
  3. 检查 stream 参数(可优先尝试):将请求中的 "stream": false 改为 "stream": true,因为部分 Legacy 模式下也依赖流式响应才能正常触发工具调用。但请注意,Issue 作者亲测此修改对 Native 模式无效。
  4. 考虑使用 Responses API 端点(如可用):Open WebUI 未来可能支持 /api/responses 端点(类似 OpenAI 的 Responses API),该端点原生支持服务端工具调用。当前版本如未提供,可向社区提交功能请求。
  5. 降级或等待官方修复:如果业务场景必须通过 API 使用工具和知识库,且 Legacy 模式也无法满足需求,可以考虑降级到工具调用模式切换前的版本,或关注 Open WebUI 后续更新。

验证方法

发送一个需要工具调用(如 “搜索当前德国总理是谁”)或知识库(如“根据我上传的文档回答”)的请求到 /api/chat/completions,观察返回的 JSON 中是否包含工具调用相关字段(如 tool_calls)或知识库内具体信息,而非仅有通用知识回答。如果返回内容正确命中外部数据源,则问题解决。

参考来源

open-webui/open-webui #26655

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 10830

发表回复

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