前言¶
DeepSeek Harness (DSH) 的設計理念是「一切皆插件」。DSH 自帶的搜索路由 (deepseek-official) 在執行 web_search 時,會調用昂貴的模型(如 deepseek-v4-flash)進行完整的一輪對話,無論當前會話模型是什麼。這會帶來不必要的 Token 消耗和成本。
dsh-web-search-ddg 是 DeepSeek Harness 的一個聯網工具插件,由 aooyoo 維護。它提供零 Token 的 Web 搜索能力,通過本地無頭瀏覽器和 API 調用替換了 DSH 內置的高成本搜索路由。
核心功能¶
- 替換路由:將 DSH 內置的搜索路由替換爲零成本引擎(Bing 和 DuckDuckGo)。
- 零成本:不消耗模型 Token,無需 API 密鑰,不發起輔助模型請求。
- 零依賴:僅使用 Node.js 內置模塊,無需 Playwright 或 Puppeteer 等外部依賴。
- 回退機制:引擎回退機制(先成功者勝出),若一個引擎被阻斷或 HTML 變更,另一個引擎會接管。
- 保留兼容:保留內置提供者註冊,切換回官方搜索只需一行配置。
安裝與啓用¶
在 DSH 的 profile 目錄(例如 ~/.dsh/profiles/web)中,以離線插件的形式安裝:
pnpm add dsh-web-search-ddg
在 profile 的 package.json 中聲明 bundle,使 DSH 將其加載爲一級層(在插件管理器可見,可乾淨移除):
"bundles": [..., "dsh-web-search-ddg"]
在 profile 的 cordis.patch.yml 中選擇 provider:
# 選擇該提供者供模型側的 web_search 工具使用。
- id: web
config:
searchProvider: ddg-browser
注意:patch 行會替換目標行的整個配置(不支持深度合併),因此
web行必須重申所有鍵。內置的web-search-deepseek行保持不變,切換回官方搜索只需將searchProvider改回deepseek-official。
典型用法¶
- 安裝:執行
pnpm add dsh-web-search-ddg。 - 聲明:在 profile package.json 的
bundles中加入"dsh-web-search-ddg"。 - 配置:在 cordis.patch.yml 中設置
searchProvider: ddg-browser。
適用場景與注意¶
- 環境要求:需要一個 DSH 主機環境(版本 ≥ 0.1.0-rc)和 Node.js ≥ 18。
- 本地瀏覽器:DuckDuckGo 引擎需要本地 Chromium 家族瀏覽器。插件會自動檢測 macOS 上的 Chrome、Edge、Chromium 或 Linux 上的
/usr/bin/chromium//usr/bin/google-chrome。Bing 引擎不需要瀏覽器。 - Cookie 依賴:Bing 引擎的質量依賴於 Cookies。插件會在會話期間訪問 Bing 首頁並注入 Cookie;如果結果爲空,會重新引導 Cookie。
- 權限:插件以主機權限運行,安裝前請務必檢查源碼與許可證。
結尾¶
該插件通過本地引擎和瀏覽器解決了 DSH 官方搜索的高成本問題,同時保留了良好的靈活性和回退機制。相關文檔與源碼位於 GitHub 倉庫。