web/

September 4, 2026 · View on GitHub

English | 中文

Summary

The web/ group gives the harness web access — searching the web and fetching URLs — through one provider-neutral service (ctx.web) and the backends and tools that use it. A deployment mounts one or more backends — Exa, Perplexity, or DeepSeek for search, anonymous HTTP(S) for fetch — and the service picks a usable provider per operation, so the model-facing tools stay stable while backends come and go. Six packages split the family: the web/ service that owns provider selection and errors, three search backends, one fetch backend, and tool-web/, which exposes web_search and web_fetch to the model. The group owns web access only: no browsing or extraction, no per-URL policy, and each backend keeps its own resource caps. Search and fetch deliberately share one service so selection, cancellation, errors, and configuration have a single owner.

Table of Contents


Packages

Six packages play the web roles; the subsystem reference owns the exhaustive vocabulary and contracts.

PackageRolectx key
web/Search/fetch service: search and fetch URLs through interchangeable backends, one selection and error policyctx.web
web-search-exa/Searches the web through Exaregisters on ctx.web
web-search-perplexity/Searches the web through Perplexityregisters on ctx.web
web-search-deepseek/Searches the web through DeepSeek native searchregisters on ctx.web
web-fetch-http/Fetches public HTTP(S) pages anonymouslyregisters on ctx.web
tool-web/Exposes web_search and web_fetch to the modelregisters 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.