DeepSeek Harness plugin

dsh-web-search

Registers Baidu, Doubao, Tavily, and Exa backends into ctx.web so official web_search can use them, and routes web_fetch through Tavily Extract or Exa Contents when that backend is active.

Jump to install

Source facts

Repository
yugasun/dsh-plugins
Latest update
Aug 19, 2026
Category
Browser & Web
GitHub stars
1

Install

Start with a prompt that asks an agent to read the source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to read the page and repository first.

Do not install anything yet. Read this DeepSeek Harness plugin and explain what it does, which files, networks, or credentials it can access, and how to install and remove it.

Plugin page: https://deepseekplugins.org/plugins/yugasun/dsh-plugins~23dsh-web-search
GitHub: https://github.com/yugasun/dsh-plugins/tree/main/packages/dsh-web-search
Plugin: dsh-plugins#dsh-web-search
Author: yugasun
Install command: dsh plugin --profile web add @yugasun/dsh-web-search

Do not run the install command until I confirm.

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-web-search

![npm](https://www.npmjs.com/package/@yugasun/dsh-web-search)

Multi-provider web search for DeepSeek Harness. It registers Baidu, Doubao, Tavily, and Exa backends into ctx.web. The model-facing web_search / web_fetch tools stay the official @deepseek-ai/dsh-tool-web schema.

Compatible with DeepSeek Harness 0.1.0-rc.7.

[中文文档](README.zh.md)

> Installing a plugin runs third-party code in the harness process with your permissions. Review the source before you install.

Install

From npm:

dsh plugin --profile web add @yugasun/dsh-web-search

From a clone of this monorepo (dsh plugin add links the source tree, so Node resolves @deepseek-ai/* from this package. Run pnpm install at the repo root first so those peers exist under packages/dsh-web-search/node_modules):

pnpm install
dsh plugin --profile web add ./packages/dsh-web-search

Restart dsh web. Settings has a Web search page. Turn Custom search off to keep DSH built-in web_search (deepseek-official) and web_fetch (http); turn it on to use Baidu / Doubao / Tavily / Exa. Page extract is independent: auto follows Tavily/Exa search, or pin Tavily Extract, Exa Contents, or DSH http.

![Web search settings](docs/settings.png)

From Git (subdirectory):

dsh plugin --profile web add github:yugasun/dsh-plugins#path:packages/dsh-web-search

Uninstall:

dsh plugin --profile web remove @yugasun/dsh-web-search

Providers

IdBackendKeyNotes
baiduQianfan Intelligent Search Generation POST /v2/ai_search/chat/completionsBAIDU_API_KEY or QIANFAN_API_KEYUses a Qianfan model to return a summary plus web references. Knowledge-style queries often return a summary with no references; the plugin then recovers https?:// URLs from the summary text when it can.
doubaoVolcengine Ark Responses + web_search toolARK_API_KEY or DOUBAO_API_KEYNeeds a Doubao model id that supports the web-search plugin.
tavilyTavily Search POST /search and Extract POST /extractTAVILY_API_KEYLLM-oriented snippets plus an optional answer. Available as a web_fetch backend.
exaExa Search POST /search and Contents POST /contentsEXA_API_KEYSearch returns links only (no answer). Default provider id is exa; change exaProviderId if the official @deepseek-ai/dsh-web-search-exa is also installed. Available as a web_fetch backend.

Keys are read in this order: plugin settings, DSH credentials (TAVILY_API_KEY and friends), then the launch environment / ~/.dsh/.env. Settings secrets are never echoed back to the client. A export TAVILY_API_KEY=… inside an agent bash tool does not reach the harness process.

Selection

Installing the plugin can retarget official web_search at this package's facade id dsh-web-search. Settings → Web search has a Custom search switch:

  • Off: web_search uses DSH built-in deepseek-official; web_fetch uses http
  • On (default): pick the search backend below

- Auto (default): first configured backend in order Baidu → Doubao → Tavily → Exa. If that request fails with a recoverable error, the next configured backend is tried and the harness log records which one was skipped. An explicit backend does not fail over. - Explicit: Baidu / Doubao / Tavily / Exa

  • Page extract (independent of search)

- Auto (default): Tavily Extract or Exa Contents when that search backend is active; otherwise DSH built-in http - Built-in HTTP / Tavily / Exa: pin web_fetch regardless of which search backend is active

  • Each backend card has Test connection, which runs a one-result web_search against that vendor. Status "configured" still means a key is present; the probe tells you whether the key works.

Develop

pnpm --filter @yugasun/dsh-web-search test
pnpm --filter @yugasun/dsh-web-search build

License

[MIT](LICENSE)