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

多源网页搜索 Rainpomelo/dsh-anysearch

DeepSeek Harness
Rainpomelo32 天前有提交已提供中文文档扫描:无法判定

网页检索源故障时自动切换备用源,避免中断

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · search
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 32 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · Rainpomelo
  • · dsh-anysearch
  • · tarball)
扫描于 2026/11/2(0 天前)

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

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

功能亮点

  • 多源自动容灾降级
  • 检索源故障自动切换

DeepSeek Harness 网页搜索插件:AnySearch 出故障时自动降级到 Tavily(DSH 网页搜索服务商)

README

由 DeepSeek 最新模型翻译生成
dsh-web-search-anysearch DeepSeek Harness (DSH) 的多源级联网页搜索插件。 当智能体触发网页检索时,本插件按优先级依次尝试可用的搜索源;首选源请求超时、限流、报错或返回零结果时,自动降级到备用源,避免单点故障导致搜索中断。 级联顺序 1. AnySearch(首选) - 使用 AnySearch Search API 获取结构化检索结果。 2. Tavily(备用源) - AnySearch 未配置、报错或零结果时自动切换。 为什么没有 DeepSeek 兜底 早期版本有第三层「DeepSeek 官方搜索」,已移除——它实现错了:它往 https://api.deepseek.com/chat/completions 发一个 search: true 参数,而 DeepSeek 的联网检索并不是聊天接口上的参数,而是 Anthropic 格式的 /messages 端点 + web_search_20250305 服务器工具。结果是那一层永远拿不到 sources,却把模型的一段聊天回复当作搜索结果返回。
展开完整文档(README 剩余 1 节)
dsh-web-search-anysearch

DeepSeek Harness (DSH) 的多源级联网页搜索插件。

当智能体触发网页检索时,本插件按优先级依次尝试可用的搜索源;首选源请求超时、限流、报错或返回零结果时,自动降级到备用源,避免单点故障导致搜索中断。

级联顺序

1. AnySearch(首选)
- 使用 AnySearch Search API 获取结构化检索结果。
2. Tavily(备用源)
- AnySearch 未配置、报错或零结果时自动切换。

为什么没有 DeepSeek 兜底

早期版本有第三层「DeepSeek 官方搜索」,已移除——它实现错了:它往 https://api.deepseek.com/chat/completions 发一个 search: true 参数,而 DeepSeek 的联网检索并不是聊天接口上的参数,而是 Anthropic 格式的 /messages 端点 + web_search_20250305 服务器工具。结果是那一层永远拿不到 sources,却把模型的一段聊天回复当作搜索结果返回。

如果你想要 DeepSeek 检索,DSH 自带正确的实现,把 web.searchProvider 指回 deepseek-official 即可:

- id: web
config:
searchProvider: deepseek-official

安装与接入

在 profile 的 package.json 里加依赖,并在 dsh.profile.bundles 里登记(用 dsh plugin add 或桌面端「添加插件」都会自动完成这两步):

{
"dependencies": {
"dsh-web-search-anysearch": "github:Rainpomelo/dsh-anysearch"
},
"dsh": { "profile": { "bundles": ["dsh-web-search-anysearch"] } }
}

仓库已改名为 dsh-anysearch(原 deepseek-harness-anysearch)。旧地址会自动 301 跳转,已发布的安装 spec 继续可用。
包内名字 dsh-web-search-anysearch 刻意未改——它是既有 profile 已经解析的身份,也是 bundle patch 里 insert 的那个名字。

然后确认 patch 生效:
- insert:
- id: web-search-anysearch
name: dsh-web-search-anysearch

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

不需要另外安装 @deepseek-ai/dsh-web-fetch-http。DSH 0.2.0-rc.2 的基础包已经自带它,且注册的 id 就是 http。
如果你此前按旧版本文档手动装过一份(file: 指向本地目录),请卸掉:它的 patch 会再 insert 一次同一个 id web-fetch-http,与基础包冲突,插件列表会把那一条标成「异常」。

配置参数

API Key 可以通过插件配置或环境变量提供,两者都行。

方式 A:在 profile 的 patch 里配置

- id: web-search-anysearch
config:
apiKey: "as_sk_your_anysearch_key" # AnySearch API Key
tavilyKey: "tvly-your_tavily_key" # 可选:Tavily 备用 Key maxResults: 5 # 单次搜索返回条数(默认 5)

方式 B:使用环境变量

| 环境变量 | 说明 |
| ANYSEARCH_API_KEY | AnySearch 的认证密钥 |
| ANYSEARCH_BASE_URL | 自定义 AnySearch 接口地址(默认 https://api.anysearch.com/v1) |
| TAVILY_API_KEY | Tavily API Key |
| TAVILY_BASE_URL | 自定义 Tavily 接口地址(默认 https://api.tavily.com) |

两个 Key 至少要有一个,否则 available() 会返回 false,seam 会以 WEB_PROVIDER_CONFIGURED_UNAVAILABLE 拒绝这次搜索——这是刻意的:有凭据的 provider 谎报可用,只会让每次搜索都变成一个专属报错。

运行日志说明

插件在后台运行时会通过标准控制台输出当前命中的搜索源:

- [dsh-web-search] AnySearch 返回结果 (5 条) | 关键词: "..."
- [dsh-web-search] Tavily 返回结果 (5 条) | 关键词: "..."
- [dsh-web-search] AnySearch 请求异常,降级到下一个源: HTTP 429 ...

当所有源都没结果时,抛出的错误会逐条说明每个源到底发生了什么(未配置 API Key / 请求成功但没有结果 / 具体报错),而不是笼统地说一句「未配置有效的搜索 API Key」。

开发

node --test tests/*.test.mjs

tests/patch.test.mjs 检查 bundle patch 与模块导出的 id 是否仍然一致; tests/provider.test.mjs 用打桩的 fetch 驱动级联逻辑(降级、零结果、Key 缺失、 maxResults 透传、取消信号透传等)。

License

MIT
预览分享卡片长什么样 ↓Rainpomelo/dsh-anysearch
分享 · DeepSeek Harness Hub
Rainpomelo/dsh-anysearch

网页检索源故障时自动切换备用源,避免中断

回到顶部