DSH Hub
dsh-search-failover cover

Walvez/dsh-search-failover

dsh-search-failover

UIWeb UI2 GitHub stars· updated 2026-08-23

DSH provider-level web search failover pool: 8 free/paid backends with quota-aware circuit breaking (keeps native web_search)

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-search-failover

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-search-failover DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-search-failover.svg)](https://dshhub.dev/plugins/dsh-search-failover)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Walvez/dsh-search-failover, cleaned of badges and images.

dsh-search-failover

<b>DeepSeek Harness (DSH) 原生 provider 级智能搜索 / 抓取池</b><br> 直连检索端点,模型 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

装上即把 searchProviderfetchProvider 都指到 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

🏗️ 架构概览

Related plugins