Introduction¶
DeepSeek Harness (DSH) provides a set of web capability interfaces (ctx.web) that allow models to access external information. The built-in search provider in DSH consumes model turns while operating. The brilliant751/dsh-web-search-litellm plugin provides an alternative for DSH: it directly integrates with LiteLLM’s /v1/search endpoint, completing a search with a single HTTP request and without consuming model computation resources.
What Is It¶
This is a Web search provider based on LiteLLM /v1/search, dedicated to the ctx.web seam in DeepSeek Harness.
* Maintainer: brilliant751
* Purpose: Converts DSH search requests into LiteLLM search requests, reusing existing gateways and virtual keys.
Core Features¶
- Direct integration with LiteLLM: Calls LiteLLM’s
/v1/searchendpoint instead of using model turns. - Provider registration: Registers a
WebSearchProviderwith idlitellminctx.web. - Single request: Each search corresponds to one HTTP request.
- Resource reuse: Reuses existing LiteLLM gateways and virtual keys, keeping Chat and Search flowing through the same proxy.
Installation and Activation¶
Run the following command in the terminal to install the plugin. This command adds the plugin to dsh.profile.bundles, registering the litellm provider and setting it as the active search backend.
dsh plugin --profile web add @brilliant751/dsh-web-search-litellm
After installation, you need to restart dsh web for the configuration to take effect.
Configuration¶
The default configuration for the plugin is located in cordis.patch.yml and contains mainly the following three configuration items:
| Configuration Item | Default Value | Description |
|---|---|---|
baseURL |
https://your-litellm.example.com/v1 |
Base URL for the LiteLLM gateway; the program appends /search to this base URL. |
apiKeyEnv |
DEEPSEEK_API_KEY |
Environment variable name for the API key, used to look up the key in the credential store. |
searchToolName |
google |
Name of the search tool configured in the LiteLLM gateway. |
Note: The configuration in cordis.patch.yml completely replaces the content of the target line instead of merging. To modify the configuration, you must rewrite the entire configuration block.
Prerequisites¶
Before using this plugin, make sure the LiteLLM gateway has been properly configured with a search tool.
- Set
search_toolsin LiteLLM’sconfig.yamland specify a localsearch_tool_name(for example,google). - Use a virtual key to verify that the tool is accessible. Run the following command in the terminal:
curl https://your-litellm.example.com/v1/search/tools \
-H 'Authorization: Bearer YOUR_LITELLM_VIRTUAL_KEY'
The data[].search_tool_name values in the response must include the name you configured.
Compatibility and Limitations¶
- DSH version: Supports DSH Web Seam pre-release versions from
0.1.0-rc.6to0.1.2-rc.1. - Node.js: Node.js 20 or higher is required.
- Result mapping: The plugin only maps LiteLLM’s returned
resultsto thesourcesfield ofctx.web; the tool interface used by the model side remains unchanged (@deepseek-ai/dsh-tool-web).
Security and License¶
- License: MIT License.
- Permissions: Installing the plugin will run the plugin’s code with your current permissions.
- Security: The plugin sends the LiteLLM key only to the configured
baseURL; make sure this address points to a gateway you trust.
Directory and Source Code¶
- GitHub: https://github.com/brilliant751/dsh-web-search-litellm
- Plugin directory: https://www.skillhub.cn/plugins/brilliant751/dsh-web-search-litellm