🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

搜索路由 MCJF28/dsh-web-search-router

DeepSeek Harness
MCJF2815 天前有提交已提供中文文档扫描:含敏感能力

按模型通道自动切换官方或自建搜索服务

29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MCJF28/dsh-web-search-router
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · search
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    index.js:62
    const parsed = JSON.parse(readFileSync(CONFIG_FILE, 'utf8'))
  • 写入本地文件
    index.js:83
    mkdirSync(DSH_HOME, { recursive: true })
  • 写入本地文件
    index.js:84
    writeFileSync(CONFIG_FILE, JSON.stringify(next, null, 2), 'utf8')
  • 发起网络请求
    index.js:246
    response = await fetch(endpoint, {
  • 发起网络请求
    index.js:320
    response = await fetch(endpoint, {
  • 发起网络请求
    client.js:67
    const response = await fetch(path, init)
扫描于 2026/11/2(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

为 DeepSeek Harness 做按通道分流的网页搜索路由:走官方 DeepSeek 搜索,或接你自己兼容 Parallel 的端点,失败原因看得懂。

README

由 DeepSeek 最新模型翻译生成
dsh-web-search-router 搜索路由插件:按「用的是哪个模型通道」决定走官方搜索还是你自己的搜索服务,两者都不可用时给出可读的原因,而不是一句 500。 为什么需要 DSH 自带的搜索只对官方 DeepSeek 账号通道生效。用第三方模型通道时搜索会静默失败,用户看到的只是一个模糊的错误。这个插件把两种情况都接上: | 当前通道 | 走哪条路 | | 官方 DeepSeek 账号 | Anthropic Messages 协议里的 web_search 工具 | | 第三方通道 | 你自己配置的搜索服务(Parallel 兼容接口) | 配置 设置 → 搜索,填搜索服务的 API Key 与接口地址。 凭据按以下顺序解析,前一个取不到就用下一个: 1. 账号令牌 2. 凭据存储里的 DEEPSEEK_API_KEY 3. 启动环境变量 失败提示 搜索失败时右下角弹提示,说明具体是哪一步不行: - 没配 Key → 「还没有可用的搜索服务。请到「设置 → 搜索」填写 API Key。」 - 请求被拒 → 带上游返回的状态与原因 - 超时 / 网络错误 → 单独区分,不混为一谈 提示 12 秒自动消失,也可以手动确认。 安装 推荐:内置插件安装程序。
展开完整文档(README 剩余 1 节)
dsh-web-search-router

搜索路由插件:按「用的是哪个模型通道」决定走官方搜索还是你自己的搜索服务,两者都不可用时给出可读的原因,而不是一句 500。

为什么需要

DSH 自带的搜索只对官方 DeepSeek 账号通道生效。用第三方模型通道时搜索会静默失败,用户看到的只是一个模糊的错误。这个插件把两种情况都接上:

| 当前通道 | 走哪条路 |
| 官方 DeepSeek 账号 | Anthropic Messages 协议里的 web_search 工具 |
| 第三方通道 | 你自己配置的搜索服务(Parallel 兼容接口) |

配置

设置 → 搜索,填搜索服务的 API Key 与接口地址。

凭据按以下顺序解析,前一个取不到就用下一个:

1. 账号令牌
2. 凭据存储里的 DEEPSEEK_API_KEY
3. 启动环境变量

失败提示

搜索失败时右下角弹提示,说明具体是哪一步不行:

- 没配 Key → 「还没有可用的搜索服务。请到「设置 → 搜索」填写 API Key。」
- 请求被拒 → 带上游返回的状态与原因
- 超时 / 网络错误 → 单独区分,不混为一谈

提示 12 秒自动消失,也可以手动确认。

安装

推荐:内置插件安装程序。 打开「设置 → 内置插件」,粘贴包名,点安装,再重启应用:

dsh-web-search-router

安装程序会自动写进 dsh.profile.bundles,不用手改任何文件。

命令行方式(先完全退出应用):

cd ~/.dsh/profiles/desktop
pnpm add dsh-web-search-router

然后把包名加进 dsh.profile.bundles,重启应用。

注意

如果你的 profile patch 里 web 这一行被 base 包写死了 searchProvider: deepseek-official,需要在 profile 的 cordis.patch.yml 里覆盖它,否则这个插件注册的 provider 不会被选中:

- id: web
name: "@deepseek-ai/dsh-web"
config:
searchProvider: custom-search
fetchProvider: http

原因:resolveProvider 只在 configuredId === undefined 时才遍历 provider 列表找可用项。一旦配置里写死了名字,插件的 available() 根本不会被调用。

Channel-aware search routing for DeepSeek Harness: which provider a search uses depends on which model route is active, and when neither side is usable you get a readable reason instead of a bare 500.

Why it exists

The built-in search only works on the official DeepSeek account route. On a third-party model route it fails silently, leaving the user with a vague error. This plugin wires up both sides:

| Active route | What gets used |
| Official DeepSeek account | The web_search tool over the Anthropic Messages protocol |
| Third-party route | Your own search endpoint (Parallel-compatible API) |

Configuration

Settings → Search, then fill in the API key and endpoint of your search service.

Credentials resolve in this order; the first one that exists wins:

1. Account token
2. DEEPSEEK_API_KEY in the credential store
3. Launch environment variable

Failure reporting

When a search fails, a notice appears in the bottom-right corner and names the step that failed:

- No key configured → "No search service is available yet. Set an API key in Settings → Search."
- Upstream refused → status and reason from the upstream response
- Timeout / network error → reported separately, never lumped together

Notices disappear after 12 seconds, and can also be dismissed manually.

Install

The built-in plugin installer is the recommended way. Open Settings → Built-in Plugins, paste the package name, press install, then restart the app:

dsh-web-search-router

The installer writes the entry into dsh.profile.bundles for you; no manual file edits.

From the command line (quit the app completely first):

cd ~/.dsh/profiles/desktop
pnpm add dsh-web-search-router

把包名加进 dsh.profile.bundles,然后重启应用。

注意事项

如果基础 bundle 在你的配置档补丁里把 web 这一行硬编码成了 searchProvider: deepseek-official,就在配置档的 cordis.patch.yml 里覆盖它——否则这个插件注册的服务商永远不会被选中:

- id: web
name: "@deepseek-ai/dsh-web"
config:
searchProvider: custom-search
fetchProvider: http

原因:resolveProvider 只在 configuredId === undefined 时才会遍历服务商列表,寻找可用的那个。一旦配置里硬编码了名字,插件的 available() 根本不会被调用。
预览分享卡片长什么样 ↓MCJF28/dsh-web-search-router
分享 · DeepSeek Harness Hub
MCJF28/dsh-web-search-router

按模型通道自动切换官方或自建搜索服务

回到顶部