dsh-web-search-engine: DeepSeek Harness 多引擎混合搜索插件

前言

DeepSeek Harness (DSH) 默認的網絡搜索能力有時無法滿足複雜查詢或特定需求。該插件向 ctx.web 註冊了一個新的搜索 provider(id: web-search-multi),將默認的搜索行爲替換爲混合多個引擎的結果。

插件默認採用混合模式,並行詢問所有啓用的引擎,按名次輪轉混合結果。它支持 Bing / DuckDuckGo / Mojeek / Google / Brave 等多種引擎,並提供可視化的設置頁來配置代理、憑據和引擎順序。

安裝

在 DSH 的插件目錄下執行以下命令:

plugin_manager action=install_bundle target=<本目錄絕對路徑>

或者直接通過 Git 克隆:

git clone https://github.com/Gaozx1/dsh-web-search-engine.git

安裝完成後,插件會自動將 profile 中的 web 行配置指向新的 provider。刷新頁面(F5)後,設置頁中的搜索選項纔會生效。

核心功能

混合與回退模式

插件支持兩種結果組合模式:
1. 混合模式(默認 mode: merge):並行詢問所有啓用的引擎,按名次輪轉混合,按 URL 去重。即使某個引擎掛了或被牆,也不會拖垮整體搜索。
2. 按順序模式(mode: fallback):第一個出結果的引擎勝出。

無頭瀏覽器取數

對於 Brave / DuckDuckGo / Google,插件使用 Node 內置的 WebSocket 驅動本機 Chrome 或 Edge 進行渲染取數,不需要安裝 puppeteer 或 playwright。
* 冷啓動:約 1s。
* 單次搜索:0.7~3.5s。
* 空閒回收:開啓後,空閒一段時間會自動關閉瀏覽器實例。

相關性守衛

針對 Bing 中文查詢的噪音問題,插件內置了相關性守衛。當查詢中包含 ASCII 詞(如 dsh、rust)但結果中完全不包含這些詞時,該引擎會被判爲失敗,由其他引擎頂上。

引擎與取數方式

引擎 ID 取數方式 說明
bing 抓取結果頁 / RSS 直連速度快(0.4s),結果正確;不走全局代理,不跟隨 proxy 配置。
duckduckgo HTML 解析 / 瀏覽器 走代理可用;直連通常被牆。
mojeek 抓取結果頁 獨立索引,但部分出口 IP 可能被要求人機驗證。
google 官方 API / 瀏覽器 官方 API 對新客戶已關閉;瀏覽器取數需要開啓“有頭模式”且極易被限流。
brave 官方 API / 瀏覽器 需要配置 API Key;未實測。
brave-web 無頭瀏覽器 無需 Key,實測穩定,但連續查詢容易被限流。
ddg-web 無頭瀏覽器 比 HTML 版更穩定。
google-web 無頭瀏覽器 只有有頭模式(headlessForGoogle: true)能過,且會被限流。

Bing 的代理配置

Bing 會根據直連或走代理,將請求重定向到 cn.bing.com(直連)或 www.bing.com(代理)。直連中文結果通常更快且更準確,因此插件默認不跟隨全局 proxy 配置。若需強制走代理,需單獨配置 bing.proxy。

Google 的現實約束

Google 對非瀏覽器客戶端統一返回“需要 JavaScript”佔位頁,且官方 Programmable Search JSON API 已關閉。想要 Google 結果,只能使用 google-web 並開啓有頭模式,但這會很快觸發限流。

無頭瀏覽器配置

在設置頁的“瀏覽器取數”區域可進行詳細配置:

  • 總開關:browser.enabled
  • 可執行文件:browser.exe(留空自動探測 Chrome 或 Edge)
  • 無頭模式:browser.headless
  • Google 專用有頭模式:browser.headlessForGoogle
  • 瀏覽器代理:browser.proxy(留空使用全局 proxy)
  • 空閒回收時間:browser.idleMs(毫秒,0 表示不自動關閉)
  • 單引擎等待:browser.waitMs(超時則放棄該引擎)

使用示例

  1. 啓用引擎:進入設置 → 搜索,勾選需要的引擎(如 bing、brave-web),調整順序。
  2. 配置代理:在“默認代理”中填寫全局代理,或在各引擎的高級設置中單獨指定。
  3. 配置憑據:在高級設置中填寫 google.apiKey / google.cx 或 brave.apiKey。
  4. 修改配置文件:直接編輯 profile 的 cordis.patch.yml,將 web 行的 searchProvider 改爲 web-search-multi,或改回 deepseek-official。

注意事項

  • Mojeek:解析器在作者本機無法實測(403/Captcha),僅做了兜底處理。
  • Google/Brave API:未實測,依賴用戶自行配置。
  • 限流:brave-web 和 google-web 連續查詢時容易被限流,建議勾選多個引擎互爲備份,並配置 browser.profileDir 複用 Cookie。
  • 相關性守衛:僅攔截“ASCII 詞全未命中”的情況,純中文查詢的噪音屬於已知侷限。

總結

該插件通過混合多引擎搜索,顯著提升了 DSH 的網絡信息獲取能力。配合無頭瀏覽器和相關性守衛,能夠有效應對單一搜索引擎的侷限和噪音。安裝後即可在設置頁中快速調整,適合需要更廣覆蓋或特定搜索能力的開發者。

羽毛球分组比赛记分
小程序二维码

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

小夜