DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Web Search Diy — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-web-search-diy

Web Search Diy

DSH 网页搜索提供商,支持三种可选协议:公开原生 web_search 工具的任意 OpenAI 兼容 Responses API 网关、Zhipu's Web Search API(基础检索)以及 Zhipu's Web Search in Chat(答案增强)。注册 ctx.web 搜索提供商,并将共享的 searc

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-web-search-diy@0.2.1
README兼容性版本

说明

DSH 网页搜索提供商,支持三种可选协议:公开原生 web_search 工具的任意 OpenAI 兼容 Responses API 网关、Zhipu's Web Search API(基础检索)以及 Zhipu's Web Search in Chat(答案增强)。注册 ctx.web 搜索提供商,并将共享的 searchProvider 覆盖为该提供商;界面文本遵循应用语言(zh / en)。

兼容性与来源证明

Web Search Diy 以 dsh-web-search-diy 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/18

版本

0.2.1
stable
2026/9/18
0.2.0stable
2026/9/7
0.1.4stable
2026/9/6

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
93.5 kB
文件数
7
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 2
周下载
0
最近提交
2026/9/18
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-web-search-diy

A web search provider plugin for the DeepSeek Harness (DSH) that backs the built-in web_search tool with multiple search backends, returning structured citation sources. A single mode switch selects the protocol:

modeProtocolBackend
responses (default)OpenAI-compatible Responses API + web_search toolQwen Token Plan (default example), OpenAI, any compatible gateway
zhipu-web-searchZhipu Web Search API (basic retrieval, POST /web_search)Zhipu open platform; raw structured results, no model turn
zhipu-chat-searchZhipu Web Search in Chat (answer augmentation, /chat/completions + web_search tool)Zhipu open platform; retrieval fused into a grounded answer

In responses mode, endpoint, model, and key reference are yours to swap — the only requirement is a model that actually exposes the web_search tool on its gateway.

  • Default model: deepseek-v4-flash-0731
  • Default endpoint: https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
  • Default key reference: QWEN_TOKEN_PLAN_CN_API_KEY

In zhipu-* modes: default endpoint https://open.bigmodel.cn/api/paas/v4, default key reference ZHIPU_API_KEY, and zhipu-chat-search defaults its model to glm-5.3-flash (with thinking effort low, ~3.5s live-verified — the free-tier glm-4.7-flash is frequently rate-limited with HTTP 429 and is not the default). See the Zhipu web search docs.

Why

The shipped DSH search provider (deepseek-official) calls DeepSeek's own Anthropic-compatible endpoint — it cannot be pointed at other gateways, and switching per deployment is hard. This plugin is a first-class DSH plugin: it registers a ctx.web search provider and overrides the shared searchProvider to it, exactly like the ecosystem's other provider plugins. Search and conversation models stay fully decoupled — use it with any chat LLM.

Why Responses API? Many OpenAI-compatible gateways only trigger their built-in web search through the Responses API (/responses) with an explicit tools: [{type: "web_search"}] declaration — Chat Completions search flags are silently ignored there. This plugin speaks the Responses protocol and parses the structured web_search_call blocks' action.sources into seam-standard citation sources.

Install

Published on npm:

dsh plugin --profile web add dsh-web-search-diy

The bundle patch then (no manual cordis.patch.yml edits needed):

  • inserts the web-search-diy loader entry
  • overrides the shared web row's searchProvider to diy-search and restates fetchProvider: http (a patch replaces the whole row config)
  • disables the shipped DeepSeek-official search (web-search-deepseek)

For local development, install the checkout as a linked package (the same way other local plugins are linked):

dsh plugin --profile web add link:./dsh-web-search-diy

(replace ./dsh-web-search-diy with the actual path to your local checkout)

Note for local linked installs: the plugin declares its @deepseek-ai/* hooks as peerDependencies (mirrored in devDependencies). A linked package resolves its own node_modules first, so run pnpm install inside the plugin directory once; the harness install supplies the runtime peers.

Configuration

The provider resolves options with precedence: UI-managed file ($DSH_HOME/dsh-web-search-diy.json, written by the configuration page) > settings section / entry config > package defaults.

KeyDefaultMeaning
moderesponsesProtocol mode: responses / zhipu-web-search / zhipu-chat-search
apiKey—Literal API key; overrides apiKeyEnv when set
apiKeyEnvper mode (see above)Credential reference resolved per search via ctx.credentials
baseURLper mode (see above)API base; /responses, /web_search, or /chat/completions is appended per mode
modelper mode (see above)Model served by the endpoint; zhipu-web-search has no model turn and ignores this key
maxOutputTokens1024Output cap for one search turn (max_output_tokens in responses, max_tokens in zhipu-chat-search)
searchEnginesearch_stdZhipu engine: search_std / search_pro / search_pro_sogou / search_pro_quark (Zhipu modes only)
count10Zhipu result count (1-50); a request-supplied maxResults cap takes precedence (Zhipu modes only)
searchRecencyFilternoLimitZhipu recency window: noLimit / oneDay / oneWeek / oneMonth / oneYear (Zhipu modes only)
contentSizemediumZhipu snippet size: medium / high (Zhipu modes only)
searchDomainFilter—Zhipu domain allowlist, e.g. www.example.com (Zhipu modes only)
searchIntentfalseZhipu intent recognition; off searches directly (Zhipu only)

apiKeyEnv / baseURL / model left empty inherit the current mode's default. Values fossilized into a section by the old schema defaults (the Qwen endpoint/model/reference) yield to the zhipu defaults when you switch to a zhipu mode; explicitly customized values are always honored.

Configuration page

The configuration page lives in the sidebar under Plugins → dsh-web-search-diy → the web-search-diy row's Configure (registered into the plugins.row.config slot introduced in dsh 0.1.6-alpha.2; the legacy Settings → Plugins → Plugin configuration page was removed in that release). The page matches the official plugin configuration pages: edits stage locally and only Save writes, while Discard reverts to the stored values. Saving takes effect immediately — no restart. Page copy follows Settings → Language (zh / en). The API key input is write-only: leave it blank to keep the stored key.

How it works

you ──> chat LLM
            │ decides it needs live info
            ▼
     web_search tool (model-agnostic)
            │ ctx.web seam ──> diy-search provider
            ▼
     ├─ responses:        POST {baseURL}/responses   tools: [{ type: "web_search" }]
     ├─ zhipu-web-search: POST {baseURL}/web_search  (raw retrieval, no model turn)
     └─ zhipu-chat-search:POST {baseURL}/chat/completions  tools: [{ type: "web_search", web_search: {...} }]
            │
            ▼
     chat LLM answers grounded in the results
  • responses: each search is one Responses API call (a full model turn). Results return as deduped sources[] (url + optional title from url_citation annotations) plus the model's grounded content. A response without any web_search_call block fails loudly with WEB_PROVIDER_ERROR — never a prose-scraping fallback.
  • zhipu-web-search: search_result[] maps directly into deduped sources[] (url + title), and a digest of the top title-plus-snippet entries becomes the content overview. An empty result set is a valid outcome and returns empty sources[] rather than an error.
  • zhipu-chat-search: choices[0].message.content is the grounded answer (content); the tool's search_result: true declaration makes the endpoint attach source details, which are parsed defensively from the message-level or root-level web_search field into sources[]. A grounded answer without source details is still a usable result.

Credential

Store the key through the web Models page / credentials service (the default reference is per mode: QWEN_TOKEN_PLAN_CN_API_KEY in responses mode, ZHIPU_API_KEY in the zhipu modes), or export it in the launching environment. The provider resolves it per search; no key is retained on the provider.

License

MIT — see LICENSE. Copyright (c) 2026 aaronlei.

zhipu-web-search
searchPrompt—Zhipu chat search prompt; blank uses the official default (zhipu-chat-search only)
reasoningEffortlowThinking effort (reasoning_effort) for the chat turn: low / high / max; low keeps thinking-only models like GLM-5.3-Flash fast (zhipu-chat-search only)
responsesReasoningEffort— (unset)OpenAI-standard reasoning.effort for the responses turn: low / high; unset sends no reasoning parameter and follows the model's own mode — keep it unset if the gateway rejects unknown parameters (responses mode only)

相关插件

继续浏览 search-research 分类下经过校验的插件。

Browser Skill Dsh Plugin@wxg-prc-cpg/browser-skill-dsh-plugin向模型提供 BrowserSkill 浏览器自动化(browser_* 工具)的 DeepSeek Harness 工具插件Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:13 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl 无需密钥;Parallel/Perplexity/SerpBase/DeepSeek 需要密钥),支持时间筛选、平台搜索和 web_fetch,并提供网页设置界面。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。Anysearch Dsh@anysearch/anysearch-dsh适用于 DeepSeek Harness 的 AnySearch 网络搜索和获取提供程序及高级工具