DSH Web Automation

Preface

DeepSeek Harness (DSH) adopts a plugin-based architecture, allowing local models to be extended with web access capabilities. When building local-first agents, developers often face two pain points: first, external search APIs are expensive or unreliable; second, built-in Web features may not meet specific scenario requirements or conflict with custom configurations.

dsh-web-automation is designed to address these issues. It integrates multi-engine keyless search, cached fetching, and platform-specific search into a standalone plugin.

Plugin Overview

This is a DeepSeek Harness (DSH) plugin that provides a local-first Web stack for local models.

Maintainer: stelmakhdigital
License: MIT

It includes four core capabilities, all enabled by a single installation command:

  • Multi-engine search: Provides the web_search tool, supporting DuckDuckGo and Bing (keyless), with optional Exa / DeepSeek / Jina (API Key required). Supports fallback or fusion routing, cooldown mechanisms, and BM25 optimization.
  • Cached fetching: Provides the web_fetch tool, SQLite cache-based, with support for ETag/Last-Modified validation. Repeated requests within the TTL do not make network requests.
  • Web platform search: Provides the web_platform_search tool for direct searches on GitHub, Reddit, YouTube, Bilibili, V2EX, RSS, and more. Supports adding new platforms through configuration without code changes.
  • History & statistics: Provides the web_history, web_search_stats, and web_cache_clear tools, reading local shared storage without internet access.

All state is stored locally; no cloud services are required.

Core Capabilities

  1. Multi-engine search
    Supports routing to DuckDuckGo/Bing (keyless) and Exa/DeepSeek/Jina (optional). Supports fallback or fuse (parallel + RRF fusion) modes, plus region settings and BM25 enrichment.

  2. SQLite cache
    Backed by a SQLite page cache, using ETag and Last-Modified for conditional validation. If a page is repeatedly fetched within the TTL, no network request is made.

  3. Web platform search
    Searches specific platforms through the web_platform_search tool. The platform list includes GitHub, Reddit, YouTube, Bilibili, V2EX, RSS, and more. New platforms can be added by configuration or hot-loading rule packs.

  4. History and cache tools
    web_history views search history, web_search_stats views statistics, and web_cache_clear clears the cache. All data comes from the local database.

Installation & Activation

Prerequisites:
* Node.js 22.19+ or 24+ (DSH’s own requirement).
* DeepSeek Harness is installed (run it via npx @deepseek-ai/dsh or a source build).

  1. Install the plugin
    Use the official command to install the plugin into a specified Profile (for example, the web profile):
    dsh plugin --profile web add git+https://github.com/stelmakhdigital/dsh-web-automation.git
This command automatically applies the `local-web.cordis.yml` overlay, pins the `web` seam, and registers the related tools.
  1. Start and verify
    After installation, start the Profile:
    dsh web              # Start the Web UI at http://127.0.0.1:3080
    dsh --profile tui    # Start the TUI (ensure the Profile name is tui)
Run the smoke test in a DSH session:
    web_search "hello world"

Configuration & Notes

Configuration methods
The plugin enables all features by default with no extra configuration required. If adjustments are needed, add configuration sections in DSH’s cordis.yml or apply overlays via dsh --patch ....

Key configuration items include:
* search: Configure the engine list (engines), mode (mode: fallback or fuse), region (region), and API Keys for Exa/DeepSeek/Jina.
* fetch: Configure the cache validation strategy (revalidate).
* platforms: Register the web_platform_search tool, set the maximum number of results, or add custom platforms via id and searchUrl.
* history: Control enabling/disabling history, cache clearing, and statistics features.

Notes
1. Local storage: Plugin state is stored in $DSH_HOME/web.db; all data is local.
2. Mutual exclusivity: This plugin is mutually exclusive with DSH’s built-in Web packages (such as web-search-multi) and cannot be loaded simultaneously; otherwise startup will report WEB_DUPLICATE_PROVIDER.
3. Browser automation (optional): If web automation (such as browser_open) is needed, separately install the dsh-web-browser subpackage and run playwright install chromium.
4. License: The plugin follows the MIT License.

Conclusion

dsh-web-automation decouples the functionality required for a local Web stack into a plugin, making keyless, zero-cost search and localized caching in DSH simple. It is suitable for developers who want to run agents in local environments and avoid dependencies on external APIs.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye