Introduction

The default search backend in DeepSeek Harness (DSH) may not meet requirements in certain scenarios. dsh-tavily-provider is a community plugin that provides Tavily-based web_search and web_fetch capabilities for DSH, replacing the built-in search backend. The plugin is maintained by MirrMeur and is released under the MIT license.

Core Features

The plugin mainly provides the following two Provider IDs:

  • web_search (provider id: tavily)
  • web_fetch (provider id: tavily-extract)

Installation and Activation

Install it into the web profile using DSH’s plugin management command:

# 从 GitHub 直接安装
dsh plugin --profile web add github:MirrMeur/dsh-tavily-provider

# 钉住版本安装(推荐用于生产环境)
dsh plugin --profile web add github:MirrMeur/dsh-tavily-provider#v0.1.0

After installation, restart the Harness process for that profile and reference the corresponding Provider IDs in cordis.patch.yml.

Configuration

The plugin does not provide a settings card (UI). All configuration must be manually written into the profile’s cordis.patch.yml. A basic configuration example is as follows:

- id: tavily-provider
  config:
    maxResults: 5          # 1..20,默认值
    searchDepth: basic     # basic | advanced
    topic: general         # general | news
    apiKeyEnv: TAVILY_API_KEY   # 凭证名
    baseURL: https://api.tavily.com

The priority order for resolving the API Key is as follows:
1. The apiKey literal in the configuration file.
2. The credential service (TAVILY_API_KEY in ~/.dsh/.credentials.yaml).
3. The process environment variable TAVILY_API_KEY.
4. Tavily’s keyless anonymous mode (when no key is available).

Behavior

  • web_search: Calls POST /search and maps the returned results to the {url, title, snippet, publishedAt} format.
  • web_fetch: Calls POST /extract, returns Markdown-formatted text, and maps it to {url, statusCode, body:{kind:"text",content}}.

Error handling follows the DSH host specification: network or timeout errors return WEB_PROVIDER_ERROR (including HTTP status code hints), and caller cancellation returns WEB_ABORTED.

Limitations

  • No UI card: Requires manual configuration file editing.
  • web_fetch limitations: Supports only text and Markdown; does not support image or PDF parsing.
  • Firecrawl not implemented: This feature is not implemented in the plugin.
  • Version compatibility: Compatible with the DSH 0.1.1-rc.x and 0.1.5 lines, but does not depend on any @deepseek-ai/* internal packages.

Conclusion

dsh-tavily-provider is a lightweight alternative search backend suitable for scenarios requiring more controllable search depth or extraction logic. Review the source code and license before installing.

  • GitHub: https://github.com/MirrMeur/dsh-tavily-provider
  • Catalog: https://www.skillhub.cn/plugins/MirrMeur/dsh-tavily-provider