Preface

The design philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” The default deepseek-official provider is usually suitable for general scenarios, but manually registering a custom provider is necessary when you need to integrate a specific gateway, proxy, or model that supports native web access. dsh-websearch-custom addresses this by allowing users to take over the web channel’s web access capability by configuring an OpenAI Responses-compatible endpoint.

Plugin Introduction

dsh-websearch-custom is an open-source plugin maintained by Jyjays (MIT license), and falls under DSH’s “Live Web Tools” category. It registers a configurable ctx.web provider, calls any OpenAI Responses-compatible API endpoint, and includes a browser-based settings interface. The plugin itself does not include vendor-specific default configuration; all key parameters (endpoint, model, and API key reference) are determined by the user.

Core Features

  1. Register a custom provider: Registers a provider named custom-openai in the DSH environment for the web channel to select.
  2. OpenAI Responses compatibility: Calls endpoints that support the POST /responses interface and leverages the native web search tool.
  3. Runtime configuration interface: Provides a browser settings page to dynamically adjust the endpoint, model, and API key reference without modifying configuration files.
  4. Behavioral constraints:
    • No web page crawling: Relies on the endpoint’s native search capability instead of the plugin’s own crawler.
    • No regular chat completions: Strictly uses the Responses API format.
    • No fabricated citations: A response is considered valid only when it includes native URL citations; otherwise it returns WEB_PROVIDER_ERROR.

Installation and Activation

Installing the plugin requires DSH plugin management commands, with the plugin path pointing to locally checked-out code or a Git repository.

dsh plugin --profile web add /absolute/path/to/dsh-websearch-custom

After installation, DSH Host must be restarted for the plugin to take effect.

Configuration Methods

After installation, the plugin registers the custom-openai provider. You can configure it in two ways:

1. Using the Browser Settings Interface

Open the DSH settings page and navigate to WebSearch Custom. Here you can edit the same parameters as in the configuration file. Changes take effect immediately after saving, with no restart required.

Main configuration options:
* Provider ID: The stable ID used for web channel selection (default custom-openai).
* API Key: Optional, stored as a settings key, and not echoed.
* API Key Env: Recommended. An environment variable name or DSH credential reference, resolved on each search.
* Base URL: The base address of the OpenAI Responses-compatible endpoint (without /responses); required.
* Model: The name of the model that supports native web access; required.
* Search tool type: web_search or web_search_preview, set according to the gateway documentation.
* Search context size: low / medium / high.
* Max output tokens: The output token limit.
* Allowed / Blocked domains: Comma-separated domain filter lists.

2. Modifying the Configuration File Directly

In DSH’s configuration layer (such as an overlay or composition), manually specify the web channel’s searchProvider as custom-openai.

- id: web
  name: '@deepseek-ai/dsh-web'
  config:
    searchProvider: custom-openai

For security reasons, avoid writing apiKey directly in the configuration file. It is recommended to use apiKeyEnv. The plugin prioritizes resolving the key through DSH credentials and falls back to environment variables.

Full configuration example:

- id: web-search-custom
  name: dsh-websearch-custom
  config:
    providerId: custom-openai
    apiKeyEnv: MY_PROVIDER_API_KEY
    baseURL: https://api.example.com/v1
    model: my-search-enabled-model
    searchToolType: web_search
    searchContextSize: low
    maxOutputTokens: 1024
    allowedDomains:
      - arxiv.org
      - openreview.net

Notes

  1. Does not replace the default provider: This plugin only registers custom-openai and does not override DSH’s default deepseek-official provider. You need to explicitly point the web channel’s searchProvider to it through configuration.
  2. Endpoint compatibility: Ensure that the target endpoint supports POST /responses and returns URL citations. If the endpoint only supports regular chat completions or lacks native search capability, the plugin will return an error.
  3. Response validation: Because the plugin does not generate fabricated citations, if the model’s returned text does not include URL citations, the provider will return WEB_PROVIDER_ERROR.
  4. Development environment: If installing from Git, ensure that the prepare script has been run to build the dist/ folder. You may also need to add dsh-websearch-custom: true in pnpm-workspace.yaml to allow the build.

Conclusion

dsh-websearch-custom provides DSH users with the ability to integrate custom OpenAI Responses gateways. Through its strict “no crawling, no completions, no fabricated citations” policy, it ensures controllable and accurate web access behavior. If you need to use a specific proxy service or private gateway, this is a ready-to-deploy solution.