前言¶
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)、相對值(如3d、12h)和絕對日期(如2026-07-01)。帶時間過濾時,支持該參數的引擎會優先排到回退鏈前面。free_search_test:逐個測試所有引擎並報告可用性。web_fetch:抓取網頁正文(基於官方dsh-web-fetch-httpprovider)。注意:該工具無 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_search,timeRange: "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