Introduction¶
DeepSeek Harness (DSH) extends its capabilities through a plugin mechanism. The built-in web_search tool is suitable for quick lookups, but it can feel limited when search requirements demand detailed sources, titles, links, and abstracts. The dsh-exa-search plugin integrates with the Exa Search API to provide more detailed web search capabilities, making it suitable for technical research and academic source discovery.
Plugin Overview¶
This is a web search tool plugin maintained by Kev-ZJY. It registers the exa_search tool and leverages Exa’s search capabilities to provide the model with more detailed web search results. The plugin is not tied to a specific model or GPU runtime.
Core Features¶
- Uses the Exa
/searchAPI and supportsauto,fast,instant,deep-lite,deep, anddeep-reasoningsearch types. - Allows the model to pass
query,numResults, andtypeparameters. - Sets limits on query content, result count, response body size, and model-visible output.
- Supports request cancellation and timeout settings.
- API keys are not written to request logs, and configuration items are marked as sensitive.
- Returns stable error codes to facilitate log analysis and upstream processing.
Installation and Enablement¶
Install it using the following commands:
# 从 npm 安装
dsh plugin --profile web add dsh-exa-search
# 从 GitHub 安装
dsh plugin --profile web add github:Kev-ZJY/dsh-exa-search
# 从本地构建的包安装
dsh plugin --profile web add ./dsh-exa-search-0.1.0.tgz
Configuration¶
It is recommended to configure the API key using environment variables:
export EXA_API_KEY="你的 Exa API 密钥"
You can also set apiKey in the DSH plugin configuration. Plugin configuration has higher priority than environment variables; the plugin falls back to EXA_API_KEY only when the key is empty.
The plugin provides the following configuration items (they can be overridden via the DSH settings UI or bundle patch; restart the corresponding profile after changes):
| Configuration Item | Default Value | Description |
|---|---|---|
apiKey |
Empty | Exa API key; reads EXA_API_KEY when empty |
apiBaseUrl |
https://api.exa.ai |
Exa API endpoint; only HTTP/HTTPS is supported |
timeoutMs |
30000 |
Timeout for a single request; range is 1–120000 milliseconds |
defaultType |
auto |
Default search type |
defaultNumResults |
5 |
Number of results when not specified |
maxNumResults |
25 |
Maximum number of results requested per call |
maxOutputChars |
40000 |
Maximum text returned to the model |
maxResponseChars |
1000000 |
Maximum Exa response body size |
Typical Usage¶
When the model invokes the tool, pass the following parameters:
{
"query": "DeepSeek Harness plugin development requirements",
"numResults": 8,
"type": "deep"
}
Parameter Limitations:
* query cannot be empty
* numResults must be an integer and must not exceed maxNumResults
Use Cases and Notes¶
- Use Cases: In-depth research, technical research, or academic source discovery; scenarios where you need to retrieve more sources in a single search while preserving titles, links, authors, dates, and abstracts.
- Notes:
- Do not commit real keys to repositories, configuration patches, or logs.
- After changing the configuration, restart the corresponding DSH profile to ensure that default values and limits in the tool description are updated.
- License: MIT
Summary¶
dsh-exa-search strengthens DSH’s web capabilities and is suitable for scenarios that require greater search depth and result quality. For more details, see the DSH Plugin Directory or the GitHub Repository.