dsh-web-search-pool:DeepSeek Harness 的多供应商搜索 Key 池

Preface

When using web_search in DeepSeek Harness with only a single Tavily or Exa API key configured, search calls may be interrupted when encountering 429 rate limits, exhausted quotas, or network errors. DSH’s plugin mechanism allows such search capabilities to be integrated as plugins, and community repositories have seen solutions for multi-key management.

Below is an introduction to dsh-web-search-pool. It is a DeepSeek Harness plugin that organizes multiple Tavily and Exa API keys into a search key pool and schedules them based on rate limit status; when a key becomes unavailable, it automatically switches to the next key.

What Is This

dsh-web-search-pool is a multi-provider search load balancing plugin for DeepSeek Harness. It addresses the issue of unstable web_search tool usage when a single search API key encounters RPM rate limits, quota exhaustion, or network anomalies.

The repository address is:

https://github.com/dreamrift/dsh-web-search-pool

The license is MIT.

Core Features

The plugin primarily provides the following capabilities:

  • Supports multiple Tavily + Exa keys with unified management.
  • Weighted round-robin scheduling based on RPM (requests per minute).
  • Automatically switches to the next key upon 429 rate limits, quota exhaustion, or network errors.
  • Real-time view of used quota, total limits, and a refresh button on the Settings page card.
  • API keys are stored via the DSH credentials service and are not written to configuration files.
  • Built-in free anonymous layer (1 req/sec), with REST-based quota improvements when keys are present.
  • Supports native Bundle integration for DeepSeek Harness rc.7.

Installation and Enablement

The following prerequisites must be met before installation:

  • DeepSeek Harness version 0.1.0-rc.7 or higher.
  • At least one search provider API key, either Tavily or Exa.

If you already have a local tarball, run the following command to install it to the web profile:

dsh plugin --profile web add ./dsh-web-search-pool-0.1.0-rc.7.tgz

This command installs the local package dsh-web-search-pool-0.1.0-rc.7.tgz into DSH’s web profile.

Configuring the Key Pool

After installation, configure it through the DeepSeek Harness Settings UI:

  1. Open DeepSeek Harness and navigate to:
Settings → Plugins
  1. Locate the card:
Search Key Pool
  1. Add a Tavily or Exa key. The following fields are required:
  • Environment Variable Name, for example:
TAVILY_API_KEY_1
  • Rate Limit (RPM): number of requests per minute.
  • Remark: an optional note.
  1. Click Save.

After saving, API keys are stored via the DSH credentials service and are not written to plain-text configs.

Default Tool Behavior

Once configured, the plugin automatically becomes the default web_search tool without requiring manual selection.

During calls, the plugin selects keys based on current quota and load, switches keys upon failure, and respects the rate limits and quotas of different keys.

If the “Search Key Pool” card does not appear on the Settings page, follow the verified approach: update the key to use:

web-search-pool

Then restart DSH.

Development Validation

If you only need to validate the plugin package itself, you can run the following commands in the repository directory.

Run tests:

npm run test

Syntax check:

node --check src/**/*.js scripts/*.mjs

Package integrity check:

npm pack --dry-run

These commands are for local testing, syntax checking, and package integrity validation, not business call examples.

Applicable Scenarios and Notes

Suitable for the following scenarios:

  • You already have multiple Tavily or Exa API keys and want to consolidate them into a single pool.
  • You want to reduce the impact of a single key triggering 429 rate limits, quota exhaustion, or network errors on web_search.
  • You want API keys to be stored via the DSH credentials service rather than written directly into configuration files.

Important notes:

  • The plugin runs with the current DSH process permissions.
  • Before installation, review the repository source code, dependencies, and the MIT license.
  • The plugin claims that API keys are not logged and are not exposed in responses, but it should still only be used in trusted environments.
  • At least one Tavily or Exa API key is required to use paid or quota-limited search capabilities.
  • This repository is a community repository; verify version and local environment compatibility before installation.

Links

GitHub repository:

https://github.com/dreamrift/dsh-web-search-pool
羽毛球分组比赛记分
小程序二维码

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

Xiaoye