Preface¶
When building agents in DeepSeek Harness (DSH), web search is a common capability. The DSH web capability seam exposes ctx.web, and the built-in web_search tool by default uses the shipped DeepSeek route. If you want the same web_search tool to instead use Tavily, and you don’t want to force configure an API key from the start, you can check out dsh-web-search-tavily.
What This Is¶
dsh-web-search-tavily is a DSH plugin maintained by cnChenKai, licensed under MIT.
It provides a Tavily-backed WebSearchProvider for DeepSeek Harness’s web seam (ctx.web), allowing the built-in web_search tool to invoke Tavily’s search API at runtime instead of the default DeepSeek route.
Core Capabilities¶
- Keyless mode: When no API key is configured, the plugin sends the official header
X-Tavily-Access-Mode: keyless, so it can be used directly without requiringTAVILY_API_KEY. - Keyed upgrade: If
TAVILY_API_KEYis set, the plugin switches to keyed mode; the key can be read from environment variables or~/.dsh/.credentials.yaml, and it is re-parsed on every search. - Official default parameters:
search_depth: basic(1 credit),include_answer: false,max_results: 5,chunks_per_source: 3. - Replaces default search route: The plugin makes the built-in
web_searchtool use the Tavily search API instead of DSH’s built-in DeepSeek route.
Installation and Enablement¶
The plugin requires Node >= 22.
First, install the plugin:
dsh plugin --profile web add dsh-web-search-tavily
After installation, if you don’t want to configure an API key, you can use keyless mode directly.
To use keyed mode, configure it in ~/.dsh/.credentials.yaml:
# ~/.dsh/.credentials.yaml
TAVILY_API_KEY: tvly-...
The key here will be re-parsed on every search.
The plugin’s bundle patch automatically sets the provider. If you prefer to switch manually, you can also set it in your own cordis.patch.yml:
# cordis.patch.yml
- id: web
name: '@deepseek-ai/dsh-web'
config:
searchProvider: tavily
Typical Usage¶
The following steps can get you through the minimal path first:
- Confirm the environment is
Node >= 22. - Run the installation command:
dsh plugin --profile web add dsh-web-search-tavily
- Without setting
TAVILY_API_KEY,web_searchwill use Tavily’s keyless mode. - If you need higher quotas, write
TAVILY_API_KEYinto~/.dsh/.credentials.yamlor environment variables. - If the plugin does not automatically select the provider, manually set
searchProvider: tavilyincordis.patch.yml.
Default request parameters are:
search_depth: basic
include_answer: false
max_results: 5
chunks_per_source: 3
Applicable Scenarios and Notes¶
Suitable for the following situations:
- You are using DSH and need the built-in
web_searchto use Tavily. - You want to try it out without a key first, then switch to keyed mode as needed.
- Your runtime environment satisfies
Node >= 22.
Notes:
- The plugin runs with the current DSH process permissions; it is recommended to review the source code and license before installation.
- This plugin is a DSH community plugin and should not be presented as an official DeepSeek / High-Flyer app store application.
- For keyed mode, refer to Tavily’s free tier:
app.tavily.comprovides 1,000 free credits/month.
Conclusion¶
The value of dsh-web-search-tavily lies in providing an optional Tavily backend for DSH’s web_search: it can run directly without a key, and with a key, you can continue to increase quotas and usage tiers.
GitHub:
https://github.com/cnChenKai/dsh-web-search-tavily
The directory page can be found in the DSH community directory by searching for dsh-web-search-tavily.