Introduction¶
The built-in web_search tool in DeepSeek Harness (DSH) typically relies on a single provider. Once that service encounters rate limiting or failures, searching cannot proceed. The websearch-dsh plugin replaces this backend with a resilient multi-provider fallback chain, and supports keyless DuckDuckGo so it can continue working without a DeepSeek API key.
Plugin Overview¶
This plugin is maintained by takasurazeem under the MIT license. It registers on DSH’s ctx.web interface, keeps the web_search tool interface unchanged, but provides results through a provider chain.
Core Capabilities¶
- Replaces the built-in single-provider
web_searchwith a resilient multi-provider fallback chain. - Works without
DEEPSEEK_API_KEYby using keyless DuckDuckGo. - Fault tolerance: survives provider rate limits, quota exhaustion, and outages.
- Enable/disable via a GUI switch (Settings -> Plugins -> Configurable -> Web Search).
- Update keys and switches without restarting.
- Provides the
websearch_statustool and the/websearch statuscommand. - Supports API keys via environment variables or the DSH credentials screen.
Installation and Enabling¶
Add the dependency to your profile’s package.json, and add the plugin package to the dsh.bundles list. Then run pnpm install in the configuration directory, and finally restart DSH.
Example package.json configuration:
{
"name": "my-profile",
"dependencies": {
"websearch-dsh": "file:/path/to/websearch-dsh"
},
"dsh": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"websearch-dsh"
]
}
}
Enable:
In the DSH web client, navigate to Settings -> Plugins -> Configurable -> Web Search. Click the switch to enable it.
Configuring API Keys¶
Keys can be stored in environment variables or the DSH credentials screen.
- Environment variable: ~/.dsh/.env (chmod 600 recommended).
- DSH credentials screen.
Available key variables:
- TAVILY_API_KEY
- EXA_API_KEY
- FIRECRAWL_API_KEY
- BRAVE_API_KEY
- SERPER_API_KEY
How It Works¶
When web_search is called, the system checks providers in the following order:
1. Tavily
2. Exa
3. Firecrawl
4. Brave
5. Serper
6. DuckDuckGo (always last, no key required)
Keys are resolved on each search, so adding a key does not require a restart.
Notes¶
- MIT license.
- No MCP server and no sidecar process.
maxResultsis limited to 1-50.
Usage¶
- Use the
web_searchtool normally. - Run
/websearch statusto check provider status.