Introduction

The core philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” When an agent needs web capabilities, it usually requires additional implementation. The lemoncat7/dsh-web-search plugin provides native web tools for DSH, addressing developers’ need to uniformly manage search backends and web fetching workflows.

What is this

This is a plugin that provides configurable and secure multi-provider web capabilities for DeepSeek Harness. It injects native web_search and web_fetch tools into DSH, while also providing a restricted web_source tool for validating raw HTML data.

It is maintained by lemoncat7 and released under the MIT license. It allows administrators to choose a search provider while ensuring secure and controllable network access through plugin-scoped proxy and boundary controls.

Core features

The plugin mainly provides the following capabilities:

  • Native tool injection: Provides native web_search and web_fetch tools for DSH.
  • Multi-provider support: Supports SearXNG, Wikipedia, Tavily, Brave Search, and Gemini Grounded Search.
  • Data validation tool: Provides the web_source tool for validating raw HTML markup or script-embedded data.
  • Security restrictions:
    • Search JSON and fetched text are capped at 2 MiB.
    • web_fetch only accepts public HTTP(S) URLs without credentials and blocks loopback, private, and reserved destinations.
    • Redirects are limited to a maximum of 5.
    • web_source returns at most 120,000 characters.
    • Binary response bodies are rejected.
  • Credential management: API keys are resolved via DSH credential storage.

Installation and setup

In a DSH environment, install the plugin through the plugin manager:

dsh plugin --profile web add @lemoncat7/dsh-web-search

After installation, go to the DSH settings interface to configure it:
1. Open Settings.
2. Go to Plugins.
3. Select Plugin configuration.
4. Find the Web search option.
5. Select the desired provider and save.

Typical usage

Configuring local SearXNG

To use general web search, you can deploy SearXNG locally. Start the service using the provided deployment file:

docker compose -f deploy/searxng/compose.yml up -d

After starting it, you can test the connection with the following command:

curl -fsS -X POST http://127.0.0.1:8080/search -d 'q=DeepSeek&format='

Default plugin behavior

A newly installed plugin defaults to a keyless Chinese Wikipedia backend and can be verified directly. For broader web search, it is recommended to configure a SearXNG, Tavily, Brave, or Gemini provider.

Notes

  • Environment dependency: The plugin depends on a Node.js environment and requires version ^22.19.0 or >=24.0.0.
  • Host version: The current target host for this plugin is DSH 0.2.0-rc.2.
  • Network restrictions: The plugin is limited to public network access and does not support internal network access or command execution.
  • Proxy settings: A global proxy can be set with the environment variable DSH_WEB_SEARCH_PROXY, or DSH_WEB_SEARCH_NO_PROXY can be used to specify hosts that should bypass the proxy.

Summary

lemoncat7/dsh-web-search provides DeepSeek Harness with a standardized web solution. Through multi-provider support and strict security restrictions, it balances functionality and security. Developers can directly use native web tools in DSH without maintaining complex network request logic.

For more details and source code, please refer to the GitHub repository.