mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-07 03:18:23 -05:00
[GH-ISSUE #23970] issue: Automations silently lose web_search / tools available in normal chat #35664
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 @belugaming on GitHub (Apr 22, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23970
Check Existing Issues
create_automationbuiltin tool — neither covers this).Installation Method
Git Clone
Open WebUI Version
v0.9.1
Ollama Version (if applicable)
No response
Operating System
macOS Sonoma
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
When an automation triggers, the model should have access to the same builtin tools (
web_search,image_generation,code_interpreter, …) it has when the user talks to it from the chat UI. In particular:webSearch: 'always'in user settings enables it for every chat.Actual Behavior
When the same model is invoked from an automation, it has no web access (and no image generation, no MCP/tool toggling) unless the user has gone to
Workspace → Models → <edit model> → Capabilities → Default Featuresand explicitly checkedWeb Search, then saved.This is non-obvious and asymmetric with normal chat:
settings.ui.webSearch === 'always'defaultFeatureIdsdefaultFeatureIdson modeldefaultFeatureIds: ['web_search']on modelSo users who never customise
defaultFeatureIds(the vast majority) will see "automations work but the model can't browse / use tools".The same gap exists for
image_generation, and there is no per-automation way to attachtool_ids/ MCP servers either — the AutomationEditor UI only exposesname/prompt/model/schedule.Steps to Reproduce
Admin Settings → Web Search→ enable, configure any provider (e.g. DuckDuckGo / Tavily) and confirm it works.Workspace → Models→ create a custom model on top of any chat model (e.g.gpt-4o-mini). Do not touch "Default Features" in the editor. Save.What is the weather in Tokyo right now?→ model browses and returns live weather. ✅/automations, create an automation:weather testWhat is the weather in Tokyo right now?Execution Logs→ success entry).Searching the web…status appears, the model answers from training data or refuses with "I cannot access real-time data". ❌Now go back to step 3, edit the model, scroll to
Capabilities → Default Features, tickWeb Search, Save. Trigger the automation again → web search works. This proves the only thing missing is thatmeta.defaultFeatureIdsdoes not containweb_search.Logs & Screenshots
No errors are emitted — the failure is silent. The automation run is recorded as
successinautomation_run, the chat is created, the model just doesn't get the tool injected.Backend log shows nothing about web search being attempted.
Additional Information
Root cause
backend/open_webui/utils/automations.py::_resolve_model_featuresonly considers the model'smeta.defaultFeatureIds:It does not consult:
settings.ui.webSearch === 'always'/imageGeneration === 'always'AutomationData(inbackend/open_webui/models/automations.py) only storesprompt,model_id,rrule,terminal.Downstream,
get_builtin_toolsinbackend/open_webui/utils/tools.py(lines 485–493) gatessearch_web/fetch_urlonfeatures.get('web_search'), so the tool is silently absent from the native function-calling spec.For comparison, the chat path (
src/lib/components/chat/Chat.svelte::getFeatures(), ~line 2094) buildsfeaturesfrom any of: model defaults, the input-bar toggle, and the user'ssettings.ui.webSearch === 'always'.Suggested Fix
Two layered changes:
features: dictandtool_ids: list[str]fields toAutomationData, and expose toggles insrc/lib/components/automations/AutomationEditor.sveltemirroring the chat input bar (Web Search / Image Gen / MCP servers / Tools). This is the proper fix and matches the user's mental model — "an automation is a saved chat"._resolve_model_features, also enableweb_search/image_generationwhen the user'ssettings.ui.{webSearch,imageGeneration} === 'always'and the global config + capability + permission allow it. This restores parity with normal chats for users who set the global "always" preference, without requiring the new UI.Happy to send a PR for either or both if maintainers agree on the direction.
@tjbck commented on GitHub (Apr 24, 2026):
Intended behaviour, defaultFeatureIds should be explicitly configured.
@belugaming commented on GitHub (Apr 24, 2026):
So what if I use the Internet search tool in the automated task? I'm very sorry that I didn't understand what you meant.