Agentic Web Search & URL Fetching π
Open WebUI's web search has evolved from simple result injection to a fully agentic research system. By enabling Native Function Calling (Agentic Mode), you allow quality models to independently explore the web, verify facts, and follow links autonomously.
Agentic web search works best with frontier models like GPT-5, Claude 4.5+, Gemini 3+, or MiniMax M2.5 that can reason about search results and decide when to dig deeper. Small local models may struggle with the multi-step reasoning required.
For comprehensive information about all built-in agentic tools (including web search, knowledge bases, memory, and more), see the Native/Agentic Mode Tools Guide.
Native Mode vs. Traditional RAGβ
| Feature | Traditional RAG (Default) | Agentic Search (Native Mode) |
|---|---|---|
| Search Decision | Open WebUI decides based on prompt analysis. | The Model decides if and when it needs to search. |
| Data Processing | Fetches ALL results, chunks them, and performs RAG. | Returns Snippets directly; no chunking or Vector DB. |
| Link Following | Snippets from top results are injected. | Model uses fetch_url to read a Full Page directly. |
| Model Context | Only gets relevant fragments (Top-K chunks). | Gets the whole text (up to ~50k chars) via fetch_url. |
| Reasoning | Model processes data after system injection. | Model can search, read, check, and search again. |
How to Enable Agentic Behaviorβ
To unlock these features, your model must support native tool calling and have strong reasoning capabilities (e.g., GPT-5, Claude 4.5 Sonnet, Gemini 3 Flash, MiniMax M2.5). Administrator-level configuration for these built-in system tools is handled via the Central Tool Calling Guide.
- Enable Web Search Globally: Ensure a search engine is configured in Admin Panel β Settings β Web Search.
- Enable Model Capability: In Admin Panel β Settings β Models, select your model and enable the Web Search capability.
- Enable Default Feature: In the same model settings, under Default Features, check Web Search. This controls whether the
search_webandfetch_urltools are available by default in new chat sessions. - Enable Native Mode (Agentic Mode):
- In the same model settings, under Advanced Parameters, set Function Calling to
Native.
- In the same model settings, under Advanced Parameters, set Function Calling to
- Use a Quality Model: Ensure you're using a frontier model with strong reasoning capabilities for best results.
The steps above use the Admin Panel, which is the recommended route. If you manage your instance through env vars, set the global default with DEFAULT_MODEL_PARAMS: '{"function_calling": "native"}' β there is no separate FUNCTION_CALLING_MODE variable. See the central tools guide for details.
In Native Mode (the supported mode), the search_web and fetch_url tools require both the Web Search capability to be enabled and Web Search to be checked under Default Features in the model settings (or toggled on in the chat). If either is missing, the tools will not be injected β even though other builtin tools may still appear.
Default Mode's RAG-style injection behavior is documented here only for legacy deployments. Default Mode is no longer supported; all models should be configured for Native Mode.
Important: If you disable the web_search capability on a model but use Native Mode, the tools won't be available even if you manually toggle Web Search on in the chat.
How Native Tools Handle Data (Agentic Mode)β
π It is important to understand that Native Mode (Agentic Mode) works fundamentally differently from the global "Web Search" toggle found in standard models.
search_web (Snippets only)β
When the model invokes search_web:
- Action: It queries your search engine and receives a list of titles, links, and snippets.
- Result Count Behavior: If the model omits
count, Open WebUI uses the admin-configuredWEB_SEARCH_RESULT_COUNT. If the model providescount, the value is capped at the same admin maximum. - No RAG: Unlike traditional search, no data is stored in a Vector DB. No chunking or embedding occurs.
- Result: The model sees exactly what a human sees on a search results page. If the snippet contains the answer, the model responds. If not, the model must decide to "deep dive" into a link.
fetch_url (Full Page Context)β
If the model determines that a search snippet is insufficient, it will call fetch_url:
- Direct Access: The tool visits the specific URL and extracts the main text using your configured Web Loader.
- Raw Context: The extracted text is injected directly into the model's context window (hard-coded truncation at exactly 50,000 characters to prevent context overflow).
- Agentic Advantage: Because it doesn't use RAG, the model has the "full picture" of the page rather than isolated fragments. This allows it to follow complex instructions on specific pages (e.g., "Summarize the technical specifications table from this documentation link").
By keeping search_web and fetch_url separate and RAG-free, the model acts as its own Information Retrieval agent, choosing exactly which sources are worth reading in full.