dsh-keyless-search:DeepSeek Harness 的免 Key 多引擎搜索 Provider

DeepSeek Harness (DSH) 內置的 web_search 工具依賴 DeepSeek 的服務端接口,既需要 DEEPSEEK_API_KEY,又會消耗一個完整的模型輪次。dsh-keyless-search 是一個第三方 Provider 插件,用於替換 ctx.web 的底層搜索後端。它通過本地發起真實瀏覽器請求,實現了免 Key、不消耗模型輪次的檢索功能。

核心功能

該插件基於 Node.js 實現,不依賴 DeepSeek 官方包,具備以下能力:

  • 免 API Key:不消耗模型輪次,也不依賴環境變量中的 Key。
  • 真實瀏覽器渲染:使用本地 Chrome/Edge 渲染 Google,繞過 HTTP 抓取必然遇到的 JS 牆。
  • 多引擎併發與降級:默認鏈路爲 google-browser(代理)+ bing-global(國際版)+ bing(直連)。代理不可用時自動收斂爲直連,google-browser 失敗時自動降級。
  • 代理自動探測:無需手動配置 proxyUrl,插件會自動掃描本地常見端口(如 7890、1080 等)。
  • 語言感知:檢測到中日韓字符時,自動跳過國際版 Bing,避免英文結果污染。
  • 多主題拆分:針對“主題1、主題2”的複合查詢,自動拆分爲最多 8 個子查詢,去重後合併返回。
  • 瀏覽器實例回收:空閒(默認 5 分鐘)後自動關閉由插件拉起的 Chrome 實例,不佔用系統資源。
  • 零 Host 依賴:僅使用 node: 內置模塊,不從 @deepseek-ai/* import 任何東西。

安裝與啓用

安裝該插件需要 DeepSeek Harness 環境。請確保 Node 版本 ≥ 22。

dsh plugin --profile <profile> add github:Wandering233/dsh-keyless-search

安裝後需重啓 DSH 生效。插件通過 dsh.bundle.patch 自動應用配置,無需手動修改 cordis.patch.yml。

配置說明

在 profile 的 cordis.patch.yml 中配置 web-search-local:

- insert:
    - id: web-search-local
      name: 'dsh-keyless-search'
      config:
        engines: [google-browser, bing-global, bing]
        proxyUrl: ''            # '' = 自動探測;'off' = 強制直連;或 'http://host:port'
        maxSources: 16
        browserTimeoutMs: 30000
        searchTimeoutMs: 15000
        chromePath: ''          # 留空自動探測瀏覽器路徑
        browserIdleTimeoutMs: 300000 # 5分鐘空閒後回收

關鍵字段說明:
* engines:指定搜索引擎列表。默認爲 [google-browser, bing-global, bing]。
* proxyUrl:留空時自動探測本地端口;設置爲 'off' 時強制直連。
* browserIdleTimeoutMs:設置瀏覽器實例空閒多久後回收,0 表示禁用回收。

已知限制

  1. 冷啓動成本:首次使用瀏覽器引擎需要拉起 Chrome(約 3-6 秒),複用實例約 3-4 秒。
  2. 結果截斷:工具層默認最多返回 8 條結果(searchMaxResults),即使插件返回更多,也會被截斷。該上限無法通過配置調整。
  3. 特定引擎問題:
    • DuckDuckGo 已不可用,返回 botnet 頁面。
    • Mojeek 實測返回 0 條。
    • SearXNG 需要特定配置且依賴 Unix 特有模塊(如 os.uname()),公共實例通常不可用。
  4. 依賴要求:需要本地安裝 Chrome / Chromium / Edge,且本地目錄安裝時建議顯式安裝 puppeteer-core。

開發與自檢

包內提供 selftest.mjs,可在不啓動 DSH 的情況下進行純 Node 自檢:

node selftest.mjs

總結

dsh-keyless-search 通過引入本地瀏覽器渲染和智能拆分策略,解決了 DSH 原生搜索需消耗模型輪次的問題。它適合需要高頻、免 Key 搜索能力的場景,但在使用前需留意冷啓動延遲及結果數量上限。

項目地址:https://github.com/Wandering233/dsh-keyless-search

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

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

小夜