Introduction

In the DeepSeek Harness (DSH) ecosystem, building agents with web access usually requires adapting to a specific search backend. dsh-web-search-anysearch is an AnySearch web search provider plugin designed to provide out-of-the-box web search capabilities through the ctx.web capability seam, without requiring additional backend service code.

Plugin Scope

The plugin is maintained by fan56 and is released under the MIT license. As a DeepSeek Harness plugin, it provides web search functionality via the AnySearch service. The plugin uses a stateless design and does not depend on caching or persistent configuration writes.

Core Features

  • Unified Interface Invocation: Registers a WebSearchProvider with the ID anysearch. When the model calls the web_search tool, requests are uniformly handled through the ctx.web capability seam, keeping citation formatting and boundaries consistent.
  • Multi-scenario Support: Supports anonymous access. Supports domain pinning for specific-domain searches such as finance and academic.
  • Result Parsing: Parses Markdown result blocks returned by AnySearch into citable sources (including title, url, snippet).
  • Transport and Limits: Uses the node:https transport layer (not fetch/undici). The API limits max_results to 10.

Install and Enable

Installing the plugin requires DeepSeek Harness version >= 0.2.0-rc.2.

dsh plugin --profile <name> add @aiwayds/dsh-web-search-anysearch

After installation, restart DSH to apply the changes. The plugin is automatically registered in dsh.profile.bundles and mounted as the default engine for web_search.

Configuration Notes

All configuration options are optional.

  • API Key: API Key is optional. Anonymous access is available but has a lower rate limit. The key is stored in ~/.dsh/.credentials.yaml.
    version: 1
    refs:
      ANYSEARCH_API_KEY: <your_key>
  • Search Parameters:

    • maxResults: defaults to 8, maximum 10.
    • timeoutMs: defaults to 30000.
    • domain: used to pin the search domain (e.g., finance, academic).
    • endpoint: defaults to https://api.anysearch.com/mcp.
  • Default Engine Switching: If you want to keep another search engine as the default, manually specify it in the configuration file; this setting takes precedence over the default value registered by the plugin.

Usage Example

  1. Install and restart.
  2. Verify the current web_search engine:
   dsh --profile <name> --dump-config | grep -A3 'id: web$'
  1. Directly use the web_search tool in conversations.

Notes

  1. Version Requirement: You must use DSH >= 0.2.0-rc.2. The plugin only supports DSH RC/stable releases and no longer supports alpha releases.
  2. Error Types: Cancellation returns WEB_ABORTED; other errors (such as network, non-2xx status, JSON-RPC errors) return WEB_PROVIDER_ERROR.
  3. Configuration Precedence: A literal apiKey overrides an apiKeyEnv reference.
  4. Availability Check: available() is a local check that only verifies whether the endpoint can be resolved; it does not check permissions.