Introduction¶
DeepSeek Harness (DSH) is a plugin-based framework for agent development. When using web search capabilities, large models typically participate in generating search queries, which consumes LLM tokens. The dsh-tavily-search plugin connects directly to the Tavily Search API, decoupling the search process from the large model and consuming only Tavily API quota.
Plugin Positioning¶
- Name:
dsh-tavily-search - Maintainer: ouones
- Positioning: A DSH online tool plugin that provides web search capabilities.
- Core capabilities: Registers as a search provider for the DSH
webseam (id:tavily-official), with the tool nameweb-search-tavily. Implemented in pure JavaScript (ESM) with no build step.
Installation and Activation¶
Before installing, make sure the DSH environment is installed (officially requires Node.js 22.19+).
- Run the installation command in the DSH profile directory:
dsh plugin --profile web add dsh-tavily-search
- After installation is complete, restart the service:
dsh web
Note: If the first-time installation encounters the ERR_PNPM_IGNORED_BUILDS error, add the corresponding dependency to the allowBuilds field in pnpm-workspace.yaml in the profile directory and retry.
Configuration and Usage¶
After installation, the plugin is automatically mounted, but an API key must be configured before use.
1. Provide Credentials¶
Register on the official Tavily website to obtain an API key, and inject it using any of the following methods:
- Environment variable: Export
TAVILY_API_KEYbefore startingdsh web. - DSH credential service: Recommended method. Store
TAVILY_API_KEYin the DSH credential storage. - Note: It is not recommended to write
apiKeydirectly in a configuration file, as this may persist the secret to disk.
2. Override Default Configuration¶
The plugin defaults to searchDepth: basic and includeAnswer: true. To adjust the settings, override them in the profile’s cordis.patch.yml using the same entry id:
# ~/.dsh/profiles/<name>/cordis.patch.yml
- id: web-search-tavily
name: dsh-tavily-search
config:
apiKeyEnv: TAVILY_API_KEY
searchDepth: advanced # basic | advanced
includeAnswer: true # 是否返回 Tavily 生成的自然语言回答
3. Switch Default Search Provider¶
If you want the default search to use Tavily and disable the official DeepSeek search (to avoid consuming LLM tokens), append the following to cordis.patch.yml:
- id: web
name: '@deepseek-ai/dsh-web'
config:
searchProvider: tavily-official
- id: web-search-deepseek
name: '@deepseek-ai/dsh-web-search-deepseek'
disabled: true
Verification¶
After restarting dsh web, run the following command to verify that the configuration is effective:
dsh --profile web --dump-config
In the output, you should see the configuration for the id: web-search-tavily entry.
Notes¶
- License: MIT
- Token consumption: The search process does not consume LLM tokens; it only consumes Tavily API quota (Tavily offers a free quota).
- Runtime permissions: The plugin runs with the permissions of the current DSH process. Review its source code and license before use.
References¶
- GitHub: https://github.com/ouones/dsh-tavily-search
- Community catalog: https://www.skillhub.cn/plugins/ouones/dsh-tavily-search