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_search tool with a fallback order of SearXNG → Tavily → Brave → DuckDuckGo.
  • Fetch: Provides the get_search_content tool 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-search fallback 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:

  1. Execute the installation command to install dsh-web-search.
  2. Restart DSH.
  3. Enable PIWA_SEARCH_ENABLED in Settings → Plugins → Web access.
  4. Fill in SEARXNG_BASE_URL, TAVILY_API_KEY, and BRAVE_API_KEY as needed; engines left unfilled will be skipped automatically.
  5. Use web_search for searching in DSH, and use get_search_content when 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 DuckDuckGo as 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 from nicobailon/pi-web-access (MIT).
  • The package.json version is 0.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