Introduction¶
In the DSH ecosystem, tool capabilities are typically extended as plugins. For agent developers, the stock web_search often returns only native results, while actual usage may require local SearXNG, local Markdown RAG, or Parallel results simultaneously.
dsh-tool-web-enhanced is a DSH plugin maintained by edusrez, under the MIT license. It is positioned as a drop-in replacement for the stock web_search: native results remain as the first section, while other sources are attached as optional sections to the same search response.
What is this¶
dsh-tool-web-enhanced is a web-search plugin. It establishes a sectioned structure around web_search: native results take priority, while modules such as SearXNG, RAG, and Parallel appear as separate sections.
When no additional modules are configured, it maintains the behavior of the stock web_search.
Core Features¶
- Drop-in replacement for stock
web_search. - Modular per-section architecture, with native results remaining first.
- Built-in SearXNG section, RAG section for local markdown databases, and Parallel section.
- Supports optional
topicandsourcesparameters;sourcescan benative,searxng,rag,parallel, orall. - Provides an opt-in
parallel-extractweb_fetchprovider that returns the full document of a URL as markdown; disabled by default. - Silent degradation when modules are missing, disabled, or unreachable: only the corresponding section is omitted, and the request is not turned into an error.
- Installed as a DSH bundle, inserting the enhanced line and disabling the stock
tool-webline.
Installation and Usage¶
First, ensure your current DSH environment meets the peer dependencies, including @deepseek-ai/cordis and DSH web/tool related packages.
Execute the installation:
npm install dsh-tool-web-enhanced
After installation, the DSH bundle patch is applied, inserting the enhanced plugin line and disabling the stock tool-web line.
Note: The plugin runs with the permissions of the current dsh process and may read your configured local file directories and access SearXNG, embedding, or Parallel services based on configuration. You should check the source code, dependencies, and license before installation.
Repository address:
https://github.com/edusrez/dsh-tool-web-enhanced
Typical Usage¶
Configuring SearXNG Section¶
If you already have a local SearXNG JSON API, you can configure sections.searxng.url to point to its base URL.
sections:
searxng:
url: '<local-searxng-json-api-base-url>'
After configuration, the SearXNG source will participate in the results as an independent section.
Configuring RAG Section¶
The RAG section is designed for local markdown databases. Add your local markdown file directory to sections.rag.databases and set the topK for each database.
sections:
rag:
databases:
- path: '<local-markdown-directory>'
topK: 5
RAG supports auto / local / remote embeddings.
Selecting Sources¶
You can specify the returned sources using the sources parameter when calling. The listed values include native, searxng, rag, parallel, and all.
Parameter example:
{
"sources": "all"
}
Enabling parallel-extract¶
parallel-extract is disabled by default. If you need web_fetch to return a full markdown document, you can configure it as an opt-in provider:
fetchProvider: 'parallel-extract'
The API key can be provided via an environment variable or a literal apiKey; the literal value takes precedence.
Configuring Parallel Section¶
The Parallel section can be configured with sections.parallel.mode and sections.parallel.maxResults. The upper limit for maxResults is 10, and this section does not support pagination.
sections:
parallel:
maxResults: 10
Use Cases and Notes¶
- Suitable for scenarios in DSH where you want to connect local SearXNG, local Markdown RAG, Parallel, and other sources into a single
web_searchresponse. - Suitable for users who wish to keep native search results first while viewing other sources by section.
- If you only need the stock
web_search, or wish to avoid introducing extra dependencies, local paths, and external API permissions, you can continue using the native tool.
Before use, it is recommended to confirm:
- The current
dshprocess has permission to read your configured local directories and allow network access to target APIs. - Dependencies meet peer dependencies, including
@deepseek-ai/cordisand DSH web/tool related packages. - Silent degradation does not throw errors: when a module’s URL, path, API key, or network fails, the corresponding section may simply disappear; check configuration and runtime logs during troubleshooting.
parallel-extractis opt-in and disabled by default.- Parallel
maxResultshas a maximum of 10 and does not support pagination.
Conclusion¶
The value of dsh-tool-web-enhanced lies in extending the native web_search into a composable retrieval entry: native results remain prioritized, while SearXNG, RAG, and Parallel appear optionally according to configuration.
If you wish to use multiple retrieval sources simultaneously in DeepSeek Harness, it serves as a viable location for a web-search plugin.
GitHub:
https://github.com/edusrez/dsh-tool-web-enhanced