DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-web-search-guide

x

dsh-web-search-guide

Discovered

DeepSeek Harness (DSH) Web Search Solution: AnySearch Search + Local Web Scraping, No Dependence on Chat Model Channels (ClinePass / Relay / Official API All Work)

Machine translated

DSH 联网搜索方案:AnySearch 搜索 + 本地网页抓取

给 DeepSeek Harness(DSH) 配一套不依赖对话模型渠道的联网搜索:

  • web_search 走 AnySearch(官方插件 @anysearch/anysearch-dsh),不需要 API key 就能用;
  • web_fetch 走 DSH 自带的本地 http 抓取;
  • 不管你用 DeepSeek 官方 API、ClinePass、还是中转站的 GPT / Claude / Gemini,搜索都一样能用,且不消耗模型 token。

测试环境:DSH 桌面端 0.2.0-rc.2 · Windows 11 · @anysearch/anysearch-dsh 0.1.8 · 2026-10-10。 搜索与抓取接口已用插件自带客户端实测;DSH 内重启后的端到端实测待补,欢迎在 Issue 里反馈你的结果。


解决什么问题

DSH 内置的搜索供应商 deepseek-official 只能走 DeepSeek 官方 API。一旦对话模型换成别的渠道,web_search 常见这些报错:

  • configured web provider "xxx" is registered but unavailable
  • WEB_PROVIDER_CREDENTIAL_MISSING(没配 DEEPSEEK_API_KEY)
  • 搜索“成功”了,但模型其实没搜,答案来自训练数据

社区里有一类插件让对话模型自己去搜(借用网关的服务端搜索工具,比如 Vercel 网关的 perplexity_search、OpenAI Responses 的 web_search)。这类方案的问题是搜索能力绑在了对话渠道上:

你的对话渠道“让模型自己搜”能不能用
ClinePass(Vercel 网关)部分模型能。实测 18 个模型里 8 个真搜了,glm-5.3-flash、mimo-v2.5-pro 不搜直接凭训练数据作答,mimo 系列带工具直接 500
DeepSeek 官方 API只能用内置 deepseek-official
中转站(one-api / new-api 等)看中转站是否实现/透传服务端搜索工具,大多不行

换一个模型、换一个渠道,搜索就可能坏掉。

方案:搜索和对话模型解耦

你提问
  ↓
① 你在 UI 里选的模型:要不要搜?搜什么关键词?        ← 模型(任意渠道)
  ↓ web_search("关键词")
② AnySearch 插件 → api.anysearch.com → 标题/链接/摘要  ← 不经过任何模型
  ↓
③ 模型读结果:够不够?要不要 web_fetch 打开某个链接?  ← 模型
  ↓ web_fetch(url)
④ DSH 本地 http 抓取网页正文                          ← 你本机直接访问
  ↓
⑤ 模型综合作答,附来源                                ← 模型
  • 判断、筛选、作答全部由你当前选的模型完成,换模型不影响搜索;
  • 搜索只是一次搜索 API 调用,不是一整轮模型回答;
  • 唯一要求:模型会调用工具(主流模型都可以)。

为什么网页抓取不用 AnySearch

AnySearch 插件默认把 web_fetch 也交给它的 /v1/extract。实测对一部分网站抓不出正文:

网页AnySearch extract本机直接访问
example.com、GitHub、DeepSeek 文档、nodejs.org✅✅
docs.cline.bot(JS 渲染的文档站)⚠️ 只有 183 字符✅ 332 KB
CSDN 博客❌ HTTP 422 Unable to extract content from the URL.✅
arXiv PDF❌ HTTP 422✅
知乎❌ HTTP 422❌ 403(需登录,两种方式都不行)

所以网页抓取改回 DSH 本地 http。顺带的好处:你要读的网址不会发给第三方。


安装

先确认你的 profile 名字:DSH 桌面端一般是 desktop,dsh web 命令行一般是 web。目录在 ~/.dsh/profiles/<profile>/(Windows 是 C:\Users\<你>\.dsh\profiles\<profile>\)。下面用 <profile> 代替。

动手前先备份 ~/.dsh/profiles/<profile>/ 下的 package.json、cordis.patch.yml、pnpm-lock.yaml、pnpm-workspace.yaml。

第 1 步:卸掉别的搜索供应商插件(如果装过)

DSH 同一时间只用一个搜索供应商(web 行的 searchProvider),多个插件都去改它时谁生效不确定。如果你装过 dsh-web-search-clinepass、dsh-web-search-free 之类,先移除:

dsh plugin --profile <profile> remove <之前的搜索插件包名>

如果你在 cordis.patch.yml 里为旧插件手写过配置(id: web-search-xxx 的条目),一并删掉。

第 2 步:安装 AnySearch 插件

dsh plugin --profile <profile> add @anysearch/anysearch-dsh
没有 dsh 命令(只装了桌面端)时的手动安装

桌面端自带 node 和 pnpm,在 ~/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/ 下。在 profile 目录里执行(Windows 用 Git Bash 示例):

R=~/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies
cd ~/.dsh/profiles/<profile>
"$R/node/bin/node.exe" "$R/pnpm/bin/pnpm.cjs" add @anysearch/anysearch-dsh
# 如需移除旧插件:
# "$R/node/bin/node.exe" "$R/pnpm/bin/pnpm.cjs" remove <旧插件包名>

然后编辑同目录的 package.json,把 "@anysearch/anysearch-dsh" 加进 dsh.profile.bundles 数组(旧搜索插件从数组里删掉),例如:

"dsh": {
  "profile": {
    "bundles": [
      "@deepseek-ai/dsh-base",
      "@deepseek-ai/dsh-web-app",
      "@anysearch/anysearch-dsh"
    ]
  }
}

pnpm 可能会在 pnpm-workspace.yaml 里自动加一条 minimumReleaseAgeExclude,属正常现象。

第 3 步:网页抓取改回本地

把 config/cordis.patch.snippet.yml 的内容追加到 ~/.dsh/profiles/<profile>/cordis.patch.yml 末尾:

- id: web
  config:
    searchProvider: anysearch
    fetchProvider: http

profile 自己的 cordis.patch.yml 在所有插件之后生效,所以插件升级不会覆盖它。patch 会整段替换 web 行的 config,searchProvider 必须一起写上。

第 4 步:重启 DSH

插件和 patch 都是启动时组装的,改完必须完整重启。

可选:配置 AnySearch API key

匿名额度即可试用。注册 anysearch.com 后免费额度为每天 1000 次(以官网为准)。写进 ~/.dsh/.credentials.yaml:

refs:
  ANYSEARCH_API_KEY: "as_sk_..."

.credentials.yaml 的具体结构以你本机文件为准(新版本把密钥放在 refs: 下)。插件每次请求都会重新读取凭据,改完不用重启;启动环境里的 ANYSEARCH_API_KEY 环境变量优先级更高。


验证

scripts/check.mjs 用你 profile 里已安装的插件客户端测试搜索和抓取,并对比本机直接访问:

node scripts/check.mjs                 # 默认 profile: desktop
node scripts/check.mjs --profile web

需要 Node.js 22.19+ 或 24+(DSH 自带的 ~/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/node/bin/node.exe 也可以)。不会打印任何密钥。设置了 HTTPS_PROXY / HTTP_PROXY 时脚本会自动让 Node 走代理(NODE_USE_ENV_PROXY=1,Node 24+)。

在 DSH 里也可以直接问一句需要联网的问题,例如“DeepSeek V4.1 Flash 是什么时候发布的?附上来源”,然后打开一个结果链接让它读全文。

回滚

  1. 用备份的四个文件覆盖回 ~/.dsh/profiles/<profile>/;
  2. 在该目录运行一次 pnpm install(或上面的手动 pnpm 命令);
  3. 重启 DSH。

只想把网页抓取交还 AnySearch:删掉第 3 步追加的那段即可。


FAQ

搜索内容会发给谁? 搜索关键词发给 AnySearch(api.anysearch.com)。网页抓取在本机完成,不经过第三方。

为什么知乎抓不到? 知乎对未登录访问返回 403,任何抓取方式都一样,只能用搜索结果里的摘要。

用代理上网时 web_fetch 打不开 GitHub 等国外网站? 本地抓取是 DSH 进程自己发请求。Node 内置的 fetch 默认不读 HTTP(S)_PROXY 环境变量(实测:同一台机器上 curl 走代理能通,Node 不设置就超时)。DSH 是否使用系统代理取决于版本和启动方式,这里没有验证。如果遇到超时,可以试着在启动 DSH 的环境里设置 HTTPS_PROXY、HTTP_PROXY 和 NODE_USE_ENV_PROXY=1(Node 24+)。AnySearch 搜索本身在国内直连可用。

用 glm-5.3-flash 这类“不搜索”的模型可以吗? 可以。搜索由插件完成,模型只要会调用 web_search 工具即可,不再依赖模型自己有没有搜索能力。

想换别的搜索引擎? 社区还有很多 ctx.web 搜索供应商插件,例如多引擎自动切换的 dsh-web-search-free(Tavily / Exa / Brave / 百度千帆 / 豆包 / SearXNG…,需各自的 key)、免 key 的 dsh-web-search-tavily。思路相同:装一个、卸掉其他、第 3 步的 searchProvider 改成对应的 provider id。

致谢

License

MIT

Comments

Loading…

Similar plugins

dsh-web-search-anysearch

by VinciBeans

AnySearch-backed WebSearchProvider for DeepSeek Harness (dsh): switch web_search between the official DeepSeek search endpoint and AnySearch from a Plugins settings card.

Tools & CapabilitiesManifest valid

★ 0

MIT

TypeScript

Sep 30, 2026

dsh plugin --profile web add @wenqi_bian/dsh-web-search-anysearch

by aaronlei

DSH web search provider with three selectable protocols: any OpenAI-compatible Responses API gateway exposing the native web_search tool, Zhipu's Web Search API (basic retrieval), and Zhipu's Web Search in Chat (answer augmentation). Registers a ctx.web search provider and overrides the shared searchProvider to it; UI copy follows the app language (zh / en).

Terminal & ClientsManifest valid

★ 4

↓ 247/wk

MIT

JavaScript

Oct 8, 2026

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

by Rainpomelo

DeepSeek Harness 网页搜索插件:AnySearch → Tavily 自动容灾降级(DSH web search provider)

Manifest valid

★ 0

MIT

JavaScript

Oct 1, 2026

dsh plugin --profile web add dsh-web-search-anysearch

by mcxianyujun

Native AnySearch /v1/search WebSearchProvider for DeepSeek Harness with Web UI, credentials integration, and Web/Headless support.

Tools & CapabilitiesManifest valid

★ 4

↓ 131/wk

MIT

TypeScript

Sep 9, 2026

dsh plugin --profile web add dsh-web-search-anysearch

by MYCF711

免 API Key 的 dsh 联网搜索 / 网页抓取插件:引擎=逻辑源、入口=直连/镜像/加速路由自动回退,不消耗任何模型 token

Tools & CapabilitiesManifest valid

★ 4

GPL-3.0

JavaScript

Sep 29, 2026

dsh plugin --profile web add dsh-websearch-direct

by abcdream-Lary

DeepSeek Harness (DSH) 的多提供商网页搜索和页面获取插件:AnySearch、Bing、DuckDuckGo、Tavily、Exa

Terminal & ClientsTools & CapabilitiesManifest valid

★ 2

↓ 35/wk

MIT

JavaScript

Aug 22, 2026

dsh plugin --profile web add dshsearch-multi