Introduction

DeepSeek Harness (DSH) adopts a plugin-based architecture, modularizing features to extend capabilities. When developing web search or content-fetching features, a single search engine often cannot meet the need for data breadth and lacks main-content extraction capabilities. The dsh-ventus-search plugin registers Bing, 360, and Bilibili into DSH’s ctx.web, providing multi-engine concurrent search, result scoring and deduplication, and Readability-like main-content fetching.

Core Features

  • Multi-engine concurrency: Supports concurrent search across Bing, 360, and Bilibili. Supports redirect URL decoding and per-domain limits (maximum number of results returned for a single domain).
  • Result quality control: Scoring mechanism based on hit weights (title ×3 + snippet ×2), with automatic URL normalization and deduplication.
  • Fault tolerance: Failed individual engines are automatically isolated without affecting other engines. Supports fallback query retry and an overall timeout safeguard.
  • Caching and performance: Provides query-level LRU caching (default TTL 300s) and supports AbortSignal.
  • Main-content fetching: Integrates a Readability-like algorithm, supports filtering via ad/tracking domain blacklists, and supports fallback to mirror domains.
  • Security and stability: The API is local-loopback-only, and state files use atomic writes (fsync + rename).

Installation and Enablement

Install via the official DSH plugin command:

dsh plugin --profile web add github:mmzm0808/dsh-ventus-search

After installation, restart DSH. The repository already includes complete build artifacts, so no build scripts need to be run.

Usage

  1. Enter the settings card: In the DSH UI, click “Settings” -> “Ventus Plugin” -> “Ventus Search” in order.
  2. Control availability:
    • Master switch: Controls the global availability of search and fetching providers.
    • Engine switches: Individually enable or disable Bing / 360 / Bilibili.
  3. Testing and monitoring:
    • Enter a keyword in the input box and click “Test Search” to view actual results, elapsed time, and source count.
    • Check the health status of each engine (green = healthy, red = failed, gray = untested) and the most recent success/failure details.

Configuration Options

The plugin provides detailed configuration options. Default values are shown in parentheses:

Key Default Value Description
enabled true Master switch
engines.bing true Enable Bing
engines.so360 true Enable 360 Search
engines.bilibili true Enable Bilibili
maxResults 8 Maximum number of returned sources
maxDomainResults 2 Maximum retained results per domain
requestTimeoutMs 8000 Single request timeout per engine
overallTimeoutMs 15000 Overall search timeout
gracefulDegradation true Return empty results instead of throwing errors when all engines fail
cache.enabled true Enable query-level LRU cache (TTL 300s)
fetch.enabled true Enable main-content fetching provider

Note: The actual enabled state of an engine is jointly determined by engines.<id> in the configuration file and engines.<id>.enabled in the runtime state file.

API and Data

The plugin provides a local API (Loopback-only, Cache-Control: no-store):

  • GET /api/ventus-search/state: Retrieve current state (master switch, engine switches, health status).
  • PATCH /api/ventus-search/state: Update state (the Body contains enabled or engines fields).
  • POST /api/ventus-search/test: Test search (the Body contains a query string).

The state file path is ~/.dsh/plugins/ventus-search/state.json.

Ecosystem Background

The DSH philosophy is “Everything is a plugin.” dsh-ventus-search is merely a community plugin, maintained by developer meto-ventus, and follows the MIT License.