dsh-web-search-tavily: Switch DSH's web_search to Tavily, Usable Without an API Key

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 requiring TAVILY_API_KEY.
  • Keyed upgrade: If TAVILY_API_KEY is 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_search tool 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:

  1. Confirm the environment is Node >= 22.
  2. Run the installation command:
   dsh plugin --profile web add dsh-web-search-tavily
  1. Without setting TAVILY_API_KEY, web_search will use Tavily’s keyless mode.
  2. If you need higher quotas, write TAVILY_API_KEY into ~/.dsh/.credentials.yaml or environment variables.
  3. If the plugin does not automatically select the provider, manually set searchProvider: tavily in cordis.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_search to 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.com provides 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.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye