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 topic and sources parameters; sources can be native, searxng, rag, parallel, or all.
  • Provides an opt-in parallel-extract web_fetch provider 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-web line.

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_search response.
  • 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:

  1. The current dsh process has permission to read your configured local directories and allow network access to target APIs.
  2. Dependencies meet peer dependencies, including @deepseek-ai/cordis and DSH web/tool related packages.
  3. 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.
  4. parallel-extract is opt-in and disabled by default.
  5. Parallel maxResults has 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