dsh-search-failover

DSH PLUGIN记忆与知识

仓库 Walvez/dsh-search-failover · npm dsh-search-failover

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH 插件,提供 provider 级智能搜索与抓取池,多引擎故障转移、加权轮询、额度感知熔断,零模型 token 消耗,并带 Web GUI 设置面板。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 4 复刻 0 · 未关闭 issue 1
最近更新 2026-08-28 创建于 2026-08-17
README 14.3 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.2.0-rc.2 等 12 个版本版本不匹配时安装会报错
Node.js 要求>=22来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/dsh-launch-environment@^0.1.0-rc.6、@deepseek-ai/dsh-settings@^0.1.0-rc.7 等 4 个需要同时安装的同级依赖
npm 包名dsh-search-failover可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-search-failover:DeepSeek Harness 的多引擎搜索容灾与熔断池

  • 多引擎故障转移
  • 加权轮询调度
  • 额度感知熔断
  • 零 token 搜索
  • Web GUI 设置

适用场景

联网搜索

上游标签

dsh-pluginfailoverweb-search

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方Walvez仓库 dsh-search-failover · 默认分支 main
分类记忆与知识knowledge
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue4 / 0 / 1收录时的数值,非实时
创建 / 更新2026-08-17 · 2026-08-28最后推送 2026-08-28
本站收录2026-08-21首次进入本站目录的时间

README 全文

14.3 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-search-failover

DeepSeek Harness (DSH) 原生 provider 级智能搜索 / 抓取池
直连检索端点,模型 Token = 0 · 多源容灾 · 加权轮询 · 额度感知熔断 · AI 自主换源 · 现代卡片流 Web GUI


为什么不用官方默认搜索?

DSH 默认通道 deepseek-official 不是专用搜索 API:每次 web_search 都会发起一轮完整 Messages 模型调用,由 DeepSeek 在服务端执行搜索。这意味着:

官方 deepseek-official 本插件 search-pool
检索方式 一整轮 LLM 调用 + 服务端 web_search 工具 直连 Exa / Tavily / Jina / Firecrawl 等检索端点
模型 token 每次搜索都烧(input + output),结果还会回灌上下文 0(纯检索,不碰任何 LLM)
计费来源 DEEPSEEK_API_KEY 余额 各引擎自己的免费额度
抓取 web_fetch 同样走官方通道 同步接管:Jina Reader / Exa Contents / Tavily Extract / Firecrawl Scrape
宕机 / 额度耗尽 整条链路挂掉 熔断冷却 + 自动下探下一个引擎 / 下一个 Key

装上即把 searchProvider 与 fetchProvider 都指到 search-pool。卸载后自动回落到官方通道。


✨ 核心特性

  • 🛡️ Provider 级透明替换:无侵入接管 DSH ctx.web 的 搜索 + 抓取,保持原生 web_search / web_fetch 工具签名不变。
  • 🔄 双重路由策略:
  • 优先顺序 (Failover):按优先级从高到低依次尝试,前一个后端失败或熔断自动下探下一个。
  • 加权轮询 (Weighted Rotate):按 1~10 权重将搜索流量平摊到所有健康引擎,最大化榨干各大搜索源的免费额度。
  • ⚡ 智能额度感知与熔断器 (Circuit Breaker):
  • 遇到额度耗尽(HTTP 402/429/Quota Exceeded)→ 长冷却 (1h),避免无效请求;
  • 遇到临时网络抖动(Transient Error)→ 5 分钟内连续 3 次失败触发 短冷却 (60s);
  • 冷却到期自动半开探活,成功立即恢复。
  • 🤖 AI 自主换源技能 (web_search_from):
  • 为 Agent 注入专属换源工具。当 AI 认为默认结果不够理想、信息过时或源单一时,可自主选择 exa / serper / tavily / jina / firecrawl 等引擎重新搜索并对比。
  • 🎛️ 现代卡片流 Web GUI 设置面板:
  • 在 DSH 设置页一键填写/修改 API Key、切换策略、拖拽排序、测试连通性,保存即实时生效,无需重启进程。
  • 密钥安全保存在本地 ~/.dsh/settings.yaml,绝不上报。
  • 🔑 单引擎多 Key 轮换:同一后端可换行或逗号填多个 Key;Key A 额度耗尽先切 Key B,全部挂了才熔断下探下一个引擎。
  • 🔌 全生态适配:
  • 搜索:Exa, Serper, Tavily (keyless 匿名档), Jina, SerpApi, Firecrawl, SearXNG (自托管), DuckDuckGo, Brave
  • 抓取:Jina Reader (r.jina.ai) · Exa Contents · Tavily Extract · Firecrawl Scrape

🏗️ 架构概览

┌──────────────────────────────────────────────────────────────┐
│                    AI Agent / User Chat                      │
└──────────────┬────────────────────────────────┬──────────────┘
│ (默认搜索 / 抓取)                │ (显式换源)
▼                                ▼
┌──────────────────────────────┐ ┌─────────────────────────────┐
│  原生 web_search / web_fetch  │ │  web_search_from (增强工具)   │
└──────────────┬───────────────┘ └──────────────┬──────────────┘
│                                │
▼                                ▼
┌──────────────────────────────────────────────────────────────┐
│               SearchPoolProvider (search-pool)               │
│                                                              │
│  [调度决策]                                                   │
│   ├── 指定源 (source): 直连指定引擎, 不走池                      │
│   ├── Failover: 按 priority 升序依次尝试                       │
│   └── Rotate: 按 weight 展开加权轮转                           │
│                                                              │
│  [熔断与健康守护]                                              │
│   ├── CircuitBreaker 监控各后端健康度                          │
│   └── 额度耗尽(1h 冷却) / 瞬时错误(60s 冷却) / 探活恢复           │
└──────────────────────────────┬───────────────────────────────┘
│
┌──────────┬──────────┬─────┴────┬──────────┬──────────┬──────────┐
▼          ▼          ▼          ▼          ▼          ▼          ▼
┌─────┐    ┌──────┐   ┌──────┐   ┌──────┐   ┌─────────┐┌─────┐   ┌─────────┐
│ Exa │    │Serper│   │Tavily│   │ Jina │   │Firecrawl││Serp-│   │ SearXNG │
│     │    │ .dev │   │(Anon)│   │  AI  │   │ .dev    ││ Api │   │ (Local) │
└─────┘    └──────┘   └──────┘   └──────┘   └─────────┘└─────┘   └─────────┘

🎛️ 设置面板实机预览

  • 实时密钥填写:随时填写或更新各引擎 API Key(支持多行多 Key),点击保存立即热生效。行内「↗」直达各引擎申请页。
  • 网页抓取接管:web_fetch 同步走搜索池(Jina Reader / Exa / Tavily / Firecrawl),享受同一套熔断与多 Key。
  • 一键测试连接 (▶ 测试):对指定后端发起 1 条测试搜索,毫秒级反馈连通状态与响应耗时。
  • 动态优先级调整 (↑ / ↓):通过按钮调整引擎在 Failover 链中的优先级。
  • 轮询权重调节:在轮询分摊模式下,为不同引擎设置 1~10 权重值。
  • 添加自定义后端:无需改写代码或配置文件,直接在界面添加 SearXNG 实例或新后端。
  • 额度余量透视:行内直接显示支持额度查询的后端(如 SerpApi)的套餐类型、剩余次数及重置日期。

🚀 快速开始

1. 安装插件

在你的 DSH 项目或 Web Profile 下安装:

# 方式 A: 从 npm 安装 (推荐)
dsh plugin --profile web add dsh-search-failover

# 方式 B: 本地克隆软链调试 (开发者)
git clone https://github.com/Walvez/dsh-search-failover.git
dsh plugin --profile web add link:$(pwd)/dsh-search-failover

2. 启用配置

在 cordis.patch.yml 中声明挂载与默认后端配置:

- id: search-pool
name: dsh-search-failover
config:
strategy: failover          # failover (优先顺序) | rotate (轮询分摊)
maxResults: 8               # 默认返回条数上限
timeoutMs: 15000            # 单个请求超时时间 (ms)
backends:
- id: exa
kind: exa
apiKeyEnv: EXA_API_KEY  # 从 ~/.dsh/.env 读取
priority: 1
- id: serper
kind: serper
apiKeyEnv: SERPER_API_KEY
priority: 2
- id: tavily
kind: tavily
apiKeyEnv: TAVILY_API_KEY
priority: 3
- id: jina
kind: jina
apiKeyEnv: JINA_API_KEY
priority: 4
- id: firecrawl
kind: firecrawl
apiKeyEnv: FIRECRAWL_API_KEY
priority: 5
- id: serpapi
kind: serpapi
apiKeyEnv: SERPAPI_API_KEY
priority: 6
- id: searxng
kind: searxng
baseURL: http://127.0.0.1:8080
priority: 7
# opencodex web-search sidecar (可选, 默认不启用):
# 本机 opencodex 代理的 Codex 登录额度执行真搜索, 结果带摘要质量最高,
# 但比纯检索端点慢 (~3-15s)。需要本机运行 opencodex (127.0.0.1:10100)。
# - id: opencodex
#   kind: opencodex
#   priority: 0              # 置顶 = 首选, 失败熔断自动下探
#   # baseURL: http://127.0.0.1:10100
#   # apiKey: ocx_data_dsh   # 默认免 token / 自定义 token 时填
#   # carrierModel: opencode-go/glm-5.3-flash
circuit:
threshold: 3              # 连续错误阈值
burstWindowMs: 300000     # 统计时间窗口 (5 分钟)
cooldownMs: 60000         # 瞬时错误冷却时间 (1 分钟)
quotaCooldownMs: 3600000  # 额度耗尽冷却时间 (1 小时)

3. 启动 DSH Web

dsh web

打开 Web GUI (默认 http://127.0.0.1:3080),进入 设置 → 搜索池 即可在界面直接管理所有 Key。


📊 后端引擎支持与额度参考

引擎标识 (kind) 搜索 抓取 官方免费额度 (核实) 密钥 申请页
exa ✓ ✓ 注册送 $20,每月赠 $10 必须 dashboard.exa.ai
serper ✓ ✗ 注册赠送 2,500 次 必须 serper.dev
tavily ✓ ✓ 每月 1,000 credits;无 key 走匿名档 可选 app.tavily.com
jina ✓ ✓ 免费注册 Key;s.jina.ai 搜索 / r.jina.ai 抓取 必须 jina.ai
firecrawl ✓ ✓ 每月 1,000 credits 必须 firecrawl.dev
serpapi ✓ ✗ 每月 250 次,支持实时额度查询 必须 serpapi.com
searxng ✓ ✗ 自托管无限 无 docs.searxng.org
brave ✓ ✗ 需绑卡 必须 brave.com/search/api
ddg ✓ ✗ 完全免费 无 —
opencodex ✓ ✗ 走本机 opencodex 的 Codex 登录额度 无 (loopback 免 token) opencodex

> opencodex 后端默认不启用:仅在用户 patch 的 backends 里显式声明时进入搜索链。
> 它不是纯检索端点——搜索经 opencodex 的 web-search sidecar(Codex forward 登录额度)执行,
> 结果带模型整合的摘要与 sources,质量最高但延迟更高(sidecar 整合约 3–15s)。
> 适合置顶做首选,失败/额度耗尽由熔断器自动下探到 exa 等纯检索后端。

同一后端可换行或逗号填多个 Key。Key A 额度耗尽先切 Key B,全部挂了才熔断下探下一个引擎。


🤖 AI 自主换源工具 (web_search_from)

当 Agent 认为默认搜索结果不理想时,可以主动调用由本插件注册的 web_search_from 工具:

工具参数

{
"name": "web_search_from",
"description": "用指定的搜索后端(引擎)搜索当前信息并返回该源原始结果。可用于多源对比或换引擎重试。",
"parameters": {
"query": { "type": "string", "description": "搜索关键词" },
"source": { "type": "string", "description": "指定后端类型 (例如 exa, serper, tavily, jina, firecrawl, searxng 等)" },
"maxResults": { "type": "number", "description": "返回结果数量上限 (默认 8)" }
}
}

Agent 典型工作流

  1. Agent 执行 web_search(query="最新技术动态") 走默认搜索池;
  2. 发现结果大多是旧闻或不相关,Agent 主动调用 web_search_from(query="最新技术动态", source="serper") 从 Google 实时索引获取结果;
  3. 对比各源信息,输出最准确、最及时的回答。

🧪 单元测试

项目包含完善的单元测试套件(覆盖熔断器状态机、加权轮询、优先级排序、多源容灾、自愈探活等):

# 运行单元测试
npm test

# 运行真实网络冒烟测试
EXA_API_KEY=your_key node scripts/smoke.mjs exa serper tavily

📄 开源许可证

本项目基于 MIT License 开源。

欢迎提交 Issue 和 Pull Request 共同改进!

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-search-failover 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-search-failover`。

dsh-search-failover 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-search-failover 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-search-failover 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-rc.1、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-search-failover 需要什么运行环境?

Node.js >=22;需要同时安装 @deepseek-ai/dsh-launch-environment@^0.1.0-rc.6、@deepseek-ai/dsh-settings@^0.1.0-rc.7、@deepseek-ai/dsh-web@^0.1.0-rc.6、@deepseek-ai/schemastery@^3.18.1。环境不满足时安装会失败,建议先确认本机版本。

dsh-search-failover 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-search-failover 有哪些功能?

多引擎故障转移、加权轮询调度、额度感知熔断、零 token 搜索、Web GUI 设置。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

Walvez 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。