dsh-free-search:爲 DeepSeek Harness 提供免 API Key 的多引擎聯網搜索

前言

DeepSeek Harness(dsh)內置的搜索 provider 依賴 DeepSeek 官方 API key(DEEPSEEK_API_KEY)。沒有 key、或走 opencode-go 等不支持 web_search 工具的 OpenAI 兼容網關時,agent 往往會直接報「無法聯網」。若你希望在 dsh 裏低成本、可切換地聯網檢索,就需要一個註冊進 ctx.web seam 的替代方案。

下面介紹社區插件 dsh-free-search(維護者 DDDMUC,SkillHub 分類:聯網工具)。它實現官方 WebSearchProvider 接口,內置多引擎與統一回退,默認用 Bing 免費搜索,無需 API key 即可開箱使用。

這是什麼

dsh-free-search 是一個給 DeepSeek Harness 添加多引擎搜索 provider 的插件。它向 dsh 註冊 web_search 等工具,並提供網頁設置頁、聊天框快捷命令和 YAML 配置,用於切換引擎、填寫付費引擎 key、測試連通性與調整緩存。

  • 維護者:DDDMUC
  • 當前版本:v0.4.12(MIT 許可證)
  • GitHub:51 stars,3 forks
  • 目錄頁:https://www.skillhub.cn/plugins/DDDMUC/dsh-free-search
  • 源碼:https://github.com/DDDMUC/dsh-free-search

核心功能

多引擎與自動回退

插件內置 10 個搜索引擎,免費與付費均可配置。默認引擎爲 bing(免費,中文市場 zh-CN)。

id 引擎 費用 說明
ddg DuckDuckGo HTML 免費 偶發限流,解封后自動恢復
ddg-lite DuckDuckGo Lite 免費 輕量版
bing Bing 免費 默認引擎,較穩定
anysearch AnySearch AI 免費 匿名公共額度
searxng SearXNG 免費 支持自定義實例
exa Exa 免費 無 key 可走 MCP 匿名;配 key 提升額度
tavily Tavily 免費 無 key 可走 keyless 匿名
keenable Keenable 免費 無 key 可走 MCP 匿名
perplexity Perplexity 付費 PERPLEXITY_API_KEY
deepseek-official DeepSeek 官方 付費 DEEPSEEK_API_KEY

任一引擎失敗(缺 key、401、限流、網絡錯誤)時,插件會按統一回退鏈輪流嘗試下一個引擎,並在結果頂部註明實際生效的引擎,例如 Note: perplexity unavailable or failed, using exa.。搜索不會因單個引擎故障而直接中斷。

網頁設置與快捷切換

安裝後,在 設置 → 插件 → 可配置 中找到 Free Search 卡片:

  • 下拉切換 Search engine,保存即生效
  • 爲 Exa / Tavily / Keenable / Perplexity / DeepSeek 填寫 API key(保存後界面只顯示「已配置」)
  • Test engine 直測當前引擎(不走回退鏈)
  • Use Bing default 一鍵切回 Bing
  • 勾選啓用 GitHub / V2EX / Bilibili 等平臺搜索
  • 支持中英文界面切換

聊天框輸入 /free-search-engine 可彈出引擎選擇窗口,點選即切換,等效於設置頁保存。設置頁還顯示當前版本,並提供「檢查更新」按鈕對比 npm registry。

工具能力

除標準 web_search 外,插件還提供:

  • advanced_search:帶 timeRange 的時間過濾搜索。支持固定檔(day / week / month / year)、相對值(如 3d12h)和絕對日期(如 2026-07-01)。帶時間過濾時,支持該參數的引擎會優先排到回退鏈前面。
  • free_search_test:逐個測試所有引擎並報告可用性。
  • web_fetch:抓取網頁正文(基於官方 dsh-web-fetch-http provider)。注意:該工具無 SSRF 防護,agent 理論上可訪問內網地址。
  • platform_search:搜 GitHub、V2EX、B 站、Reddit、Hacker News、Stack Overflow、維基百科、npm 等平臺(公開 API,零依賴)。

相同查詢(含引擎與時間過濾參數)默認緩存 5 分鐘(LRU 50 條),可在設置頁配置 0–5 分鐘,0 爲關閉。

安裝與啓用

插件要求 Node.js >= 20。對 @deepseek-ai/dsh-settings@deepseek-ai/dsh-tools 使用 peerDependencies,須通過 dsh plugin 安裝,不要把 DSH 核心包複製進 profile 本地 node_modules,否則工具調度器可能失效。

先做 clone,再添加到 web profile:

git clone https://github.com/DDDMUC/dsh-free-search.git
dsh plugin --profile web add /path/to/dsh-free-search

然後重啓 dsh web:

dsh web

典型用法

網頁設置(推薦)

按上文路徑打開 Free Search 卡片,選擇引擎並保存。免費引擎帶綠色 FREE 徽章,付費引擎帶橙色 API KEY 徽章及獲取 key 的鏈接。

配置文件

配置寫入 ~/.dsh/settings.yaml

free-search:
  provider: bing              # ddg / ddg-lite / bing / searxng / anysearch / exa / tavily / keenable / perplexity / deepseek-official
  lang: zh                    # 設置頁界面語言(zh / en)
  bingMarket: zh-CN           # Bing 市場
  region: cn-zh               # DuckDuckGo 區域(可選)
  searxngInstances:           # 自定義 SearXNG 實例(可選)
    - https://your-instance.example
  exaApiKey: ...
  tavilyApiKey: ...
  keenableApiKey: ...
  perplexityApiKey: ...
  deepseekApiKey: ...

讓 agent 測試引擎

對 agent 說「測試一下所有搜索引擎」,它會調用 free_search_test,輸出類似:

Search engine test:
- ddg: FAIL - DuckDuckGo is rate-limited right now (anti-bot challenge, usually temporary) - Bing works
- bing: OK (2 results, e.g. "DeepSeek Harness developer preview...")
- exa: FAIL - EXA_API_KEY not configured

時間過濾搜索

例如「幫我搜最近 3 天關於 DSH 的新聞」,agent 會調用 advanced_searchtimeRange: "3d"。Exa、Keenable 支持較精確的時間參數;Tavily、SearXNG、DuckDuckGo 對自定義天數會映射到最近似固定檔;Bing、AnySearch 忽略時間過濾。

平臺搜索與網頁抓取

  • 「在 GitHub 上搜 deepseek harness」→ platform_search
  • 搜到 URL 後說「打開第一個鏈接看看內容」→ web_fetch

適用場景與注意

適合誰:

  • 沒有 DeepSeek 官方 key,但仍希望 dsh agent 能聯網檢索
  • 使用不支持 web_search 的第三方網關,需要獨立搜索 provider
  • 需要在 Bing、DuckDuckGo、SearXNG 等免費引擎間切換,或爲 Exa / Tavily 等配置 key 以提升額度
  • 需要按時間範圍過濾結果,或在 GitHub、V2EX 等平臺定向搜索

使用前請注意:

  • 插件以當前 dsh 進程的權限運行;安裝前應自行檢查源碼與 MIT 許可證,確認可接受其行爲(含 web_fetch 無 SSRF 防護)。
  • 免費引擎可能遭遇限流或反爬,插件靠多引擎回退緩解,但不能保證每次首選引擎都可用。
  • SkillHub 爲獨立社區目錄,與 DeepSeek / 幻方無官方從屬關係;插件與官方 dsh 插件可共存,均實現同一 seam 接口。

結尾

dsh-free-search 把 dsh 的聯網搜索從「必須有 DeepSeek 官方 key」擴展爲「多引擎可選、失敗自動回退、零 key 也能用」。若你在搭 dsh 環境時卡在聯網這一步,可以先裝這個插件,用 Bing 默認引擎跑通,再按需切換或補充付費 key。

  • 目錄頁:https://www.skillhub.cn/plugins/DDDMUC/dsh-free-search
  • GitHub:https://github.com/DDDMUC/dsh-free-search
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜