Move per-request web_search withholding out of the DeepSeek provider: - dsh-web: add the optional WebSearchProvider.ready(llmProvider) and ctx.web.searchReady(llmProvider?), which asks only the provider that search() would select; a provider without ready() and a selection failure answer true. - dsh-web-search-deepseek: implement ready() with the existing credential check and drop the assemble listener together with its system-prompt, tools, and tool-web dependencies. - dsh-tool-web: remove web_search and its tool:web_search section in a prepended system-prompt/assemble listener when searchReady() answers false for the route model selection assigned to the request. A composition that selects another search provider no longer loses web_search when DeepSeek has no credential. The Agent Note is renamed to 2026-09-27-web-search-offered-by-provider-readiness and records the split.
description, kind
| description | kind |
|---|---|
| Package map for the web access capability family: the search/fetch service, its provider backends, and the model-facing tools that consume them. | package-group |
web/ — web access capability family
English | 中文
Summary
The web/ packages let models search the public web and fetch HTTP(S) pages through the web_search and web_fetch tools. Deployments can choose Exa, Perplexity, or DeepSeek for search and anonymous HTTP(S) access for fetch; availability and resource limits depend on the configured provider. Use this family for search and page retrieval, not interactive browsing, content extraction, or per-URL policy enforcement. Models receive consistent tool behavior, cancellation, and error reporting when providers change.
Table of Contents
Packages
Six packages play the web roles; the subsystem reference owns the exhaustive vocabulary and contracts.
| Package | Role | ctx key |
|---|---|---|
web/ |
Search/fetch service: search and fetch URLs through interchangeable backends, one selection and error policy | ctx.web |
web-search-exa/ |
Searches the web through Exa | registers on ctx.web |
web-search-perplexity/ |
Searches the web through Perplexity | registers on ctx.web |
web-search-deepseek/ |
Searches the web through DeepSeek native search | registers on ctx.web |
web-fetch-http/ |
Fetches public HTTP(S) pages anonymously | registers on ctx.web |
tool-web/ |
Exposes web_search and web_fetch to the model |
registers on ctx.tools |
Related documentation
Start with the subsystem reference for the shared vocabulary, then the design decision behind the single provider-selection service.
- Web subsystem — the search/fetch requests and results, provider availability,
WebError, and public-address enforcement. - Web capability seam decision — why search and fetch share one provider-selection service.
Dev Note
Working context for maintainers — click to expand
None.