Preface

Adding internet capabilities to agents in DeepSeek Harness (DSH) typically involves integrating a search API or wrapping one’s own proxy. The issue with a single-provider approach is that quota exhaustion, rate limiting, and timeouts directly break the link. When simply stitching multiple providers together, one often ends up using only the least common denominator of features supported by all, leaving native capabilities like categorization, timeliness, domain policies, and content extraction unused.

Below is an introduction to the community plugin dsh-web-tools (maintainer A3Boy, category: networking tools). It integrates Exa, Tavily, Firecrawl, Parallel, Brave, You.com, Jina, SearXNG, as well as Xiaohongshu (RedNote) and Twitter/X onto the DSH standard web_search / web_fetch interfaces. Under a unified tool contract, it uses SearchHints to compile query intents into native parameters for each provider and enhances availability through multi-key scheduling and automatic degradation. The current plugin version is 0.3.0, with approximately 16 stars on GitHub and an MIT license.

What This Is

dsh-web-tools is a networking tool plugin for DSH, positioned as a unified access layer for “multi-provider search + content fetching + social media platform search.”

For the Agent side, the interface remains unchanged: it still calls the standard web_search and web_fetch. For operations, API keys, routing order, and degradation chains for each provider can be configured in the DSH settings interface, eliminating the need to write separate tool declarations for each search source.

Core Features

Unified Interface, Preserving Native Capabilities of Each Provider

The plugin uses SearchHints to normalize technical/paper/news intents, timeliness, domain, region, and language constraints in queries, then compiles them into parameters supported by each provider using deterministic code (without additional LLM calls).

Taking “search for AI programming resources from the past week” as an example, different backends will follow different mappings:

  • Exa: Categorization, ISO date range, domain restrictions
  • Firecrawl: Technical queries map to github category, research to research, combined with tbs timeliness
  • Parallel: Combines objective, search_queries, and source_policy
  • Brave Search: Freshness, country and language, prioritizing the LLM Context endpoint
  • You.com: boost_domains for soft weighting

web_fetch routes based on each provider’s native extraction interfaces, such as Exa /contents, Tavily /extract, Firecrawl /scrape, Jina Reader, etc.

8 Major Web Provider Support Matrix

Provider Search Fetch/Extract Notes
Exa Supported Supported Semantic search, vertical categorization, date and domain restrictions
Tavily Supported Supported basic / advanced / fast / ultra-fast depth tiers
Firecrawl Supported Supported Technical/academic category mapping, Clean Markdown extraction
Parallel Supported Supported objective soft guidance + source_policy filtering
Brave Search Supported LLM Context prioritized, falls back to Classic on failure
You.com Supported Supported boost_domains, timeliness and region filtering
Jina Supported Supported ReaderLM-v2 Markdown conversion
SearXNG Supported Self-hosted meta-search, adapter requires no API key

Xiaohongshu and Twitter/X

Unlike general search engines, these two platforms perform in-site operations via communication with a dedicated local Edge/Chrome Profile and CDP:

  • Does not rely on Playwright packaging or browser extensions
  • Cookies are managed by the browser profile; the plugin does not write them to config or logs
  • Xiaohongshu: web_fetch parses note details and comments; web_search enters via the real search bar on /explore
  • Twitter/X: Captures GraphQL data streams, supports operators like from:, since:, until:, etc.

Agents use platform prefixes to route, e.g., Xiaohongshu: DeepSeek Harness or X: ...; the prefix only selects the platform and is removed before actual in-site search.

A single detail fetch includes up to 30 comments or replies, with each content item limited to 800 characters; truncation is marked if pagination exceeds limits.

To troubleshoot browser issues, set XHS_NATIVE_SEARCH=0 to temporarily disable Xiaohongshu in-site search.

Scheduling and Disaster Recovery

  • Single provider supports multiple API keys, prioritizing keys with low inFlight counts, automatically switching on 401 errors
  • On network exceptions, timeouts, 5xx, 429, or quota exhaustion, degrades to the next provider according to the configured chain
  • Enters zero-request cooldown on 429 responses with Retry-After
  • web_search supports Ordered / Round-Robin / Random routing; web_fetch executes per the deterministic chain
  • Session-level Search Mode: When enabled, requires the agent to call web_search or web_fetch at least once before answering
  • Supports HTTP_PROXY, HTTPS_PROXY, NO_PROXY, and Windows system proxies

Installation and Activation

The official installation commands in the SkillHub directory or GitHub README are as follows:

# Install plugin
dsh plugin --profile web add github:A3Boy/dsh-web-tools

# Update plugin
dsh plugin --profile web update dsh-web-tools

# Uninstall plugin
dsh plugin --profile web remove dsh-web-tools

After installation, restart dsh web and go to SettingsWeb Search in the left sidebar to configure API keys and routing strategies for each provider. By default, the newly installed primary provider is Exa.

If you encounter cache issues when upgrading local packages or symlinks, reinstall in the profile directory:

cd ~/.dsh/profiles/web && pnpm install

Typical Usage

Agents can directly call DSH’s built-in web_search / web_fetch without learning new tool names. Constraints like timeliness, domain, and region in queries are automatically parsed and compiled by SearchHints.

Add a platform prefix before the query to select the source:

Xiaohongshu: DeepSeek Harness
X: DeepSeek Harness plugin

If the platform source is not enabled or encounters a retryable fault, it falls back to the configured general web provider; non-retryable errors like login invalidation or access restrictions return directly without using web index results to mimic in-site results.

Enabling Session-Level Web Mode

After enabling Search Mode in settings, the agent must complete at least one web call before answering; failed calls count as attempted, but it must specify which content could not be verified.

Applicable Scenarios and Notes

Who is this for:

  • Those who need to configure multiple search/fetch providers for DSH agents and want automatic switching on single-source failures
  • Those who wish to preserve native parameter capabilities from Exa, Tavily, etc., rather than compressing them to the lowest common set
  • Those who need to search in-site content from Xiaohongshu or Twitter/X in agent workflows
  • Those with self-hosted SearXNG instances who want to integrate them into the DSH networking chain

Notes before use:

  1. The plugin runs with the permissions of the current dsh process. Before installation, read the GitHub source code and confirm the MIT license terms.
  2. Most providers require your own API keys (except SearXNG); check balances for Exa and Parallel in their respective consoles.
  3. Xiaohongshu and Twitter/X rely on locally installed Edge or Chrome and a dedicated browser profile; first-time use requires completing platform login.
  4. SkillHub (skillhub.cn) is a community plugin directory with no official affiliation to DeepSeek / High-Flyer; the DSH ecosystem follows the “everything is a plugin” philosophy, and users are responsible for their own plugin selection and configuration.

Conclusion

dsh-web-tools consolidates multi-source search, content extraction, and social media search into DSH’s standard web_search / web_fetch interfaces, preserving native capabilities via SearchHints and enhancing link availability with multi-key and fallback mechanisms. If you are building networking capabilities for DSH, you can learn more from the directory page and check the complete provider matrix and configuration instructions on GitHub.

  • Directory page: https://www.skillhub.cn/plugins/A3Boy/dsh-web-tools
  • GitHub: https://github.com/A3Boy/dsh-web-tools