You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,17 @@ All notable changes to this project are documented here.
4
4
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5
5
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
7
+
## [2.2.0] - 2026-04-26
8
+
### Added
9
+
-`web_search` now returns a retry hint on empty results, instructing the model to broaden/simplify the query before declining to answer. Closes the failure mode where the model interpreted "0 results" as "I cannot search" and gave up.
10
+
- Diagnostic warning event when the search backend returns an unrecognized response shape (previously silently coerced to `[]`).
11
+
### Changed
12
+
-`web_search` docstring strengthened with explicit guidance on retrying after empty results.
13
+
14
+
## [2.1.0] - 2026-04-26
15
+
### Added
16
+
- Per-URL citation events for every page that gets fetched (both via auto-fetch and explicit `fetch_url`). Open WebUI now displays each fetched page as its own clickable source in the chat instead of a single generic `websearch/web_search` entry.
17
+
7
18
## [2.0.0] - 2026-04-26
8
19
### Added
9
20
-`auto_fetch_enabled` valve (default `true`). Dedicated master switch for the post-search auto-fetch step; when `false`, `web_search` returns snippets only but the model can still call `fetch_url` itself.
Copy file name to clipboardExpand all lines: README.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ A small [Open WebUI](https://github.com/open-webui/open-webui) tool that lets th
14
14
-**Domain allow/block lists** applied to both search results and `fetch_url` targets.
15
15
-**Auto-fetches every result page by default** in parallel after every search, so answers are based on real page bodies rather than short snippets — even if the model wouldn't have called `fetch_url` itself. Configurable to a top-N cap.
16
16
-**Status events** for visible progress in the chat UI.
17
+
-**Per-URL citations** — every fetched page is emitted as its own clickable source in the chat, not a single generic tool entry.
17
18
-**Single-file deployment** — copy `websearch.py` into Workspace → Tools.
18
19
19
20
## Requirements
@@ -67,7 +68,7 @@ Both methods return a JSON-encoded string with a stable shape:
67
68
{"error": "human-readable reason"}
68
69
```
69
70
70
-
`content` is present on every returned result by default (`auto_fetch_top=0`) when both `enable_fetch_url` and `auto_fetch_enabled` are on; set a positive `N` to cap pre-fetching to the top `N`, or set `auto_fetch_enabled=false` to skip pre-fetching entirely while keeping `fetch_url` available to the model. On a fetch failure the entry gets `"fetch_error": "..."` instead. The `hint` is omitted when there are no results or when `enable_fetch_url` is off.
71
+
`content` is present on every returned result by default (`auto_fetch_top=0`) when both `enable_fetch_url` and `auto_fetch_enabled` are on; set a positive `N` to cap pre-fetching to the top `N`, or set `auto_fetch_enabled=false` to skip pre-fetching entirely while keeping `fetch_url` available to the model. On a fetch failure the entry gets `"fetch_error": "..."` instead. The `hint` is always present on empty results (instructs the model to retry with a broader query) and on results when `enable_fetch_url` is on; it is omitted only on results when `enable_fetch_url` is off.
0 commit comments