mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-06 10:58:17 -05:00
[GH-ISSUE #20549] issue: Native tools are injected when models are used over the openwebui API. #34748
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @LysanderdeJong on GitHub (Jan 10, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/20549
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.7.1
Ollama Version (if applicable)
No response
Operating System
Debian 13
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
When calling a model over the Open WebUI API (e.g.,
/api/v1/chat/completions) with an explicittoolsparameter in the request payload, the model should only have access to the tools provided directly in that API call.Built-in tools that are enabled in the model's settings (such as web search, calculator, etc.) should not be injected into API requests, even when:
The API should behave independently from the web UI configuration, respecting only the tools explicitly defined in the API request. This allows external applications to use Open WebUI as an API proxy with their own custom tool definitions without interference from the model's UI-specific settings.
Actual Behavior
When using a model over the Open WebUI API with built-in tools enabled in the model settings and native tool calling configured, the built-in tools are incorrectly injected into the API request. This results in:
toolsparameter are replaced or overshadowed by the model's configured built-in toolsSteps to Reproduce
Step-by-Step Reproduction:
Environment Setup:
Configure Model Settings:
Verify Built-in Tools Configuration:
Make API Call with Custom Tools:
Observe the Actual Behavior:
Verify the Bug:
Test Workaround:
Logs & Screenshots
Here is an example of an external notes app unable to call it's own tools.
With built-in tools enabled, external tools over the API are overwritten:

With built-in tools disabled, external tools show back up.

Additional Information
No response
@owui-terminator[bot] commented on GitHub (Jan 10, 2026):
🔍 Similar Issues Found
I found some existing issues that might be related to this one. Please check if any of these are duplicates or contain helpful solutions:
#19864 issue: Ollama Parameters get overriden after native tool calls
by Haervwe • Dec 10, 2025 •
bug#20361 Issue: Large-scale model setting-related functionality fails.
by shentong0722 • Jan 04, 2026 •
bug#15078 issue: Missing or Erroneous tools list for non-native tool models preventing LLM using tools
by mlaihk • Jun 17, 2025 •
bug#20150 issue: Tools not included for models in channel messages
by zhiweit • Dec 24, 2025 •
bug#19610 issue: Models not appearing for non-admin users
by westbrook-ai • Nov 30, 2025 •
bugShow 5 more related issues
#19738 issue: Thinking models render responses inside thinking UI when using native tools
by qq3829596922 • Dec 04, 2025 •
bug#16833 issue: OpenWebUI executes user tools only if browser window is visible
by semyonc • Aug 22, 2025 •
bug#19899 issue: openrouter Models not showing up in the model selection list.
by AZComputerSolutions • Dec 12, 2025 •
bug#19711 issue: Editing function for models broken
by skleffmann • Dec 03, 2025 •
bug#19615 issue: [TEST] Models Not Available to Users
by westbrook-ai • Nov 30, 2025 •
bug💡 Tips:
This comment was generated automatically by a bot. Please react with a 👍 if this comment was helpful, or a 👎 if it was not.
@Classic298 commented on GitHub (Jan 10, 2026):
First of all this is not an issue but a feature request.
Next, your feature request boils down to this:
The answer is no. It should not.
This was asked in the past with different features as well where people asked for the system prompt of a model to not be included when querying the model via the API.
This was denied.
If you want the model to have no system prompt when querying it via the API, then don't give it a system prompt. You can create effectively a duplicate of the model by utilizing the workspace and give that a system prompt (or don't).
Same should be done here. Just disable native tools in the model capabilities and/or create a new model in the workspace which is just the base model with no modifications but tool calls enabled/disabled.