Files
deepseek-harness/packages/web
Yichen Jiang 7524c1ecd9 refactor(web): split web_search readiness across the web seam roles
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.
2026-09-27 17:00:33 +08:00
..
2026-09-24 21:24:26 +08:00
2026-09-24 21:24:26 +08:00

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

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.