Introduction

In DeepSeek Harness (DSH), a common problem when integrating Web search for agents is that different search engines have different access methods. Free, keyless engines and API key engines are often mixed together, and configuration, fallback, and persistence logic can easily become scattered. dsh-web-search-multi converges these requirements into a single DSH plugin: providing multi-provider Web search, DuckDuckGo global fallback, and a Web Settings UI within DSH Web.

What is it

dsh-web-search-multi is a multi-provider Web search plugin for DeepSeek Harness, maintained by cinob and licensed under the MIT License. It supports free, keyless direct connection engines such as 360, Bing, and Baidu, as well as providers like Tavily, Brave Search, Serper/Google, Bocha AI, and SearXNG. It also provides DuckDuckGo global fallback and DSH Web UI settings pages.

Core Capabilities

  • Free, keyless direct connection: 360, Bing, Baidu.
  • Free tier providers: Tavily (1,000/month), Brave Search (2,000/month), Serper/Google (2,500 requests), Bocha AI.
  • SearXNG: Supports private/self-hosted instances and token authentication; SEARXNG_TOKEN is an optional configuration.
  • Fallback: DuckDuckGo global fallback.
  • Web GUI: Provides Settings -> Multi-source Web Search page in DSH Web UI, supporting real-time connection testing and immediate persistence.
  • Credential Storage: Secrets are saved to ~/.dsh/.credentials.yaml (mode 0600), and non-secret settings are saved to ~/.dsh/settings.yaml.
  • Permissions and Risks: Risk level is low; network permissions involve making outbound HTTPS requests to the selected search provider.
  • Compatibility Requirements: Node.js >=20.0.0, DeepSeek Harness mainline v0.1.0+, Linux/macOS/Windows.

Installation and Enablement

First, execute the installation command below. This plugin is installed as a Profile Bundle; the built-in cordis.patch.yml automatically mounts and activates multi-search, so there is no need to manually insert web-search-multi.

dsh plugin --profile web add github:cinob/dsh-web-search-multi

If you need to remove it later, execute the uninstall command:

dsh plugin --profile web remove dsh-web-search-multi

Typical Usage

The following introduces enabling and configuring search sources in DSH Web. First, start the Web service:

dsh web

Then open http://127.0.0.1:3080 and go to Settings -> Multi-source Web Search.

  1. Select a search engine, or keep Auto Strategy.
  2. If you need to call a free-tier provider, you can optionally fill in TAVILY_API_KEY, BRAVE_API_KEY, SERPER_API_KEY, BOCHA_API_KEY, or SEARXNG_TOKEN.
  3. Save and perform a real-time test.

Applicable Scenarios and Notes

Suitable for the following situations:

  • Want to use free, keyless direct connection engines like 360, Bing, or Baidu first.
  • Already using the free tiers of Tavily, Brave Search, Serper/Google, or Bocha AI.
  • Need to integrate private/self-hosted SearXNG.
  • Want to maintain search sources, credentials, and connection status via DSH Web UI.

Notes:

  • The plugin initiates outbound HTTPS requests to the selected search provider.
  • Secrets like API keys are saved to ~/.dsh/.credentials.yaml (mode 0600), and ordinary settings are saved to ~/.dsh/settings.yaml.
  • The plugin runs within the dsh process context and executes with the current dsh process permissions; it is recommended to check the source code and MIT License before installation.
  • Confirm that the environment meets Node.js >=20.0.0 and DeepSeek Harness mainline v0.1.0+, and the platform is Linux/macOS/Windows before use.

Conclusion

The value of dsh-web-search-multi lies in consolidating multi-provider Web search, fallback logic, and the Web settings page into the DSH plugin system, reducing the switching cost between searching for sources, configuration, and testing. Project repository address: https://github.com/cinob/dsh-web-search-multi.