Preface

DeepSeek Harness (DSH) provides the ctx.web interface for enabling connectivity in agents. When using DSH, developers typically need to switch web.searchProvider to a specific search backend. dsh-web-search-serper is a search provider plugin based on the Serper.dev API. It addresses the problem of replacing DSH’s default search capability with the Google search index.

Plugin Overview

The plugin is maintained by Dingpenghui-good and belongs to the “networking tool” category in the DSH ecosystem. Its core role is to provide a search provider named serper for DSH’s Web capability seam. With this plugin, developers can specify Serper for searches in the DSH configuration, obtaining more structured and faster search results.

Core Features

  • Fast Search: Uses Google’s actual index, with response times usually 1-2 seconds.
  • Structured Results: Returns JSON data, making it easy to parse and process.
  • Privacy-Friendly: Does not track users or collect cookies.
  • Generous Free Tier: Provides 2,500 free queries per month, with no credit card required.
  • Global Multilingual Support: Supports search results from regions and countries around the world.
  • Ready to Use Out of the Box: When installed as a Bundle, it automatically takes over web.searchProvider.
  • Automatic Fallback: When Serper is unavailable, the plugin internally routes the request to another available search provider instead of failing directly.

Installation and Enablement

Install the plugin using DSH’s plugin management tool:

dsh plugin --profile web add @dingpenghui/dsh-web-search-serper

Configuration Notes

Install as a Bundle (Recommended): If installed as a Bundle using the command above, the plugin’s included cordis.patch.yml takes effect automatically, taking over web.searchProvider without manual configuration.

Manual Configuration: If the Bundle mechanism is not used, manually inject the plugin configuration into cordis.patch.yml. Both the takeover configuration and the plugin declaration must be added:

- id: web
  name: '@deepseek-ai/dsh-web'
  config:
    searchProvider: serper     # 覆盖 dsh-base 的默认 provider
    fetchProvider: http
- insert:
    - id: web-search-serper
      name: '@dingpenghui/dsh-web-search-serper'

The resolution order for the API Key is: apiKey in the configuration -> environment variable SERPER_API_KEY -> reference in the credential store SERPER_API_KEY. Configuration items (such as gl, cr, numResults) can be added as needed.

Typical Usage

After installation and configuration, use DSH’s Web interface directly to search:

// 使用 ctx.web.search 调用 Serper 后端
const result = await ctx.web.search({
  query: 'latest AI developments 2026',
  maxResults: 5,
})

// 结果为结构化数据
console.log(result.sources)
// [
//   { url: '...', title: '...', snippet: '...' },
//   ...
// ]

Cautions and Use Cases

  • Google Search Only: The plugin supports only Google search; Bing, Baidu, and other search engines are not supported.
  • No Generated Answers: The plugin returns only raw search results and does not provide AI-generated summaries or answers.
  • Free Tier Limit: The free tier is limited to 2,500 queries per month; beyond that, a paid plan is required.
  • Manual Configuration Requirement: If not installed as a Bundle, a manual configuration patch is required; otherwise, the plugin will not take effect.
  • Fallback Mechanism: The DSH networking seam itself does not have fallback logic; fallback is handled internally by this plugin.
  • Permissions and License: Please review the source code and license (MIT) before installation. The plugin runs under DSH process permissions.

Conclusion

dsh-web-search-serper provides DSH with a stable and structured Google search backend. It reduces integration difficulty through automatic takeover and an internal fallback mechanism. To learn more or view the source code, visit its GitHub repository or the SkillHub plugin directory.