Introduction¶
DeepSeek Harness (DSH) can extend tool capabilities via plugins. For online scenarios, developers may need automatic fallback across multiple search sources, keyless fallback, and the extraction of web page bodies into readable text. haibinwang9/dsh-web-search is a plugin designed to fill in these online capabilities. Below is an introduction to its features, installation, configuration, and considerations.
What is it¶
dsh-web-search is maintained by haibinwang9 under the MIT license. It provides two things centered around DSH’s online capabilities:
- Search: Drives the built-in
web_searchtool with a fallback order ofSearXNG → Tavily → Brave → DuckDuckGo. - Fetch: Provides the
get_search_contenttool to fetch URLs and extract readable bodies.
The plugin also fills the fetch seam, registering both search and fetch providers, making the built-in web_fetch usable again.
Core Features¶
Multi-engine Search Fallback¶
In the plugin fallback chain, configured search engines are used in order, while unconfigured ones are skipped automatically. If SearXNG, Tavily, and Brave are not configured, DuckDuckGo can serve as a zero-configuration fallback.
URL Content Extraction¶
get_search_content is used to fetch a specified URL and convert the web content into readable plain text. With the configuration above, you can first use web_search to find the page, and then use get_search_content to read the body.
Switch Default Search Engine in Settings Page¶
The settings page provides a default search engine switch:
- Enabled: Uses the
dsh-web-searchfallback chain. - Disabled: Delegates to the official DeepSeek search.
Fill the Fetch Seam¶
The plugin registers both search and fetch providers. This allows the built-in web_fetch to become usable again.
Centralize Configuration in Settings Page¶
Keys for SearXNG, Tavily, and Brave can be written to the credentials service. The priority order is: environment variables first, followed by the harness credentials service; alternatively, they can be written to ~/.dsh/.credentials.yaml.
Installation and Enablement¶
Version and Dependencies¶
The version declared in package.json is 0.1.2, and the runtime environment requires node >=20. The peerDependencies requirements are:
@deepseek-ai/dsh-tools ^0.1.0-rc.6
@deepseek-ai/dsh-credentials ^0.1.0-rc.6
@deepseek-ai/dsh-web-search-deepseek ^0.1.0-rc.6
Confirm that your current DSH environment meets the above peer dependencies before proceeding with the installation.
Installation Command¶
Use the plugin installation command:
dsh plugin --profile web add dsh-web-search
If installing from source, first clone the repository, then install the local directory:
git clone https://github.com/haibinwang9/dsh-web-search.git
cd dsh-web-search && dsh plugin --profile web add .
Enable Configuration¶
After installation, restart DSH and navigate to:
Settings → Plugins → Web access
Configure the switch and keys in the settings page. Relevant configuration items include:
PIWA_SEARCH_ENABLED
SEARXNG_BASE_URL
TAVILY_API_KEY
BRAVE_API_KEY
Among them, PIWA_SEARCH_ENABLED controls whether to use the plugin fallback chain; the remaining three correspond to the address or key for SearXNG, Tavily, and Brave, respectively.
Typical Usage¶
The following is a basic usage path:
- Execute the installation command to install
dsh-web-search. - Restart DSH.
- Enable
PIWA_SEARCH_ENABLEDinSettings → Plugins → Web access. - Fill in
SEARXNG_BASE_URL,TAVILY_API_KEY, andBRAVE_API_KEYas needed; engines left unfilled will be skipped automatically. - Use
web_searchfor searching in DSH, and useget_search_contentwhen you need to read a specific page.
Suitable Scenarios and Notes¶
Suitable for the following scenarios:
- Need automatic fallback across multiple search engines.
- Wish to have
DuckDuckGoas a fallback even without configured keys. - Need to extract URL bodies into readable text for subsequent reading or processing.
Notes:
- The plugin runs with the permissions of the current DSH process. It is recommended to check the source code, license, and dependencies before installation.
- Search engine keys will be used for network access; confirm the source and scope of permissions before configuring.
- The license is
MIT. The search and body extraction logic is adapted fromnicobailon/pi-web-access(MIT). - The
package.jsonversion is0.1.2; if the DSH-side peer dependencies are not met, you should first confirm the environment version.
Get Information¶
- GitHub:
https://github.com/haibinwang9/dsh-web-search - Directory Page:
https://www.skillhub.cn/plugins/haibinwang9/dsh-web-search