快速结论:这是 Workspace 模型条目在合并时被丢弃导致的配置不生效问题。核心原因是自定义模型条目的 base_model_id 被错误设置成了它自己的 id(或任意非空值),导致该条目在模型列表合并时被丢弃,所有元数据设置(如禁用内置工具)从未被应用。优先排查 base_model_id 字段值。
适用环境:Open WebUI v0.11.0(pip venv 安装,非 Docker),后端为 Ollama + llama3.2:3b,SQLite 后端,单实例无 Redis,WEBUI_AUTH=false。
最快修复方案:已确认的修复方案:重新通过 POST /api/v1/models/model/update 发送相同更新,但将 base_model_id 显式设为 null。编辑模型时通过“Admin Settings > Models”路径操作,该路径会自动写入 null。
注意事项:只有当条目是对同 id 基础模型的覆盖(override)时,base_model_id 才必须为 null。若条目确实是基于不同基础模型的新模型,则不应设置为其自身 id;任何非 null 值都会导致与基础模型 id 冲突时条目被丢弃。这与 Issue #26823 是同一类问题。
问题场景
用户在 Open WebUI(v0.11.0)中通过 API 请求创建或编辑自定义模型条目(例如 llama3.2:3b),并尝试通过 meta.capabilities.builtin_tools: false 或 meta.builtinTools.knowledge: false 禁用内置知识工具。配置已成功持久化到 SQLite 的 model 表,但实际请求时工具仍被注入并调用——即使重启服务进程后问题依旧。
报错原文
issue: workspace model entry with base_model_id set to its own id is dropped at merge, so its settings never apply
实际运行中无显式报错,但日志/请求观察显示:
search_knowledge_files is still offered to and called by the model on effectively every "tell me about X" style prompt, with an empty (0-item) knowledge base
原因分析
已确认原因:模型条目中的 base_model_id 被设置为其自身的 id(例如 "base_model_id": "llama3.2:3b")。当条目是对基础模型的覆盖且 id 相同时,base_model_id 必须为 null。任何非 null 值都会使该条目被识别为“基于其他基础模型的新模型”,导致在合并模型列表时,因 id 与已有基础模型冲突而被丢弃。因此该条目从未进入 app.state.MODELS,其所有设置(包括禁用内置工具)在请求时均不生效。重启进程无济于事,因为每次重建模型列表时该条目都会被再次丢弃。
Issue 中同时提到的 ollama.base_urls 配置被忽略问题被确认为无关,原因是配置键存储为扁平单层结构,不存在共享缓存;忽略的配置值可能是写入了一个没有代码读取的键。
环境排查
- Open WebUI 版本:v0.11.0(
pip install open-webui) - 后端推理服务:Ollama(原生工具调用,模型
llama3.2:3b) - 数据库:SQLite 单实例(
webui.db),无 Redis - 认证模式:
WEBUI_AUTH=false - 排查优先级:先确认模型条目中
base_model_id的实际取值,再排查是否有孤立 uvicorn worker 残留(pip venv 安装时可能出现)
解决步骤
- 核对模型条目配置:通过 SQLite 查询确认问题条目的
base_model_id字段:sqlite3 webui.db "SELECT base_model_id, meta FROM model WHERE id='llama3.2:3b';" - 修正
base_model_id:若该条目是对同 id 基础模型的覆盖(override),将该值改为null,并重新发送更新请求:{ "id": "llama3.2:3b", "base_model_id": null, "name": "llama3.2:3b", "params": {"num_thread": 8, "num_ctx": 8192, "function_calling": "native"}, "meta": { "capabilities": {"builtin_tools": false}, "builtinTools": {"knowledge": false} }, "access_grants": [], "is_active": true } - 若使用管理界面编辑:直接通过 Admin Settings > Models 编辑该模型。该路径会自动将基础模型覆盖的
base_model_id写为 null。 - 检查残留进程(可优先尝试):若修改后仍不生效,执行
ps aux | grep -i open-webui,确认重启后没有残留的 uvicorn worker 进程持有旧状态;如有残留,手动 kill 后重新启动服务。 - 重新验证:完成上述修改后,重启服务(或冷启动),发起新对话并提问,观察是否仍有内置工具调用。
验证方法
修改 base_model_id 为 null 后,确认 sqlite3 webui.db "SELECT base_model_id FROM model WHERE id='llama3.2:3b';" 返回 null(或空)。随后发起新对话并提出原测试问题(如“Tell me a random fun fact about the Roman Empire”),观察是否不再出现 “View Result from search_knowledge_files” 工具调用气泡,且请求的 prompt token 计数不再包含工具 schema 部分。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


