前言¶
DeepSeek Harness (DSH) 的 ctx.web 接口本身是模型無關的,默認提供程序 dsh-web-search-deepseek 卻依賴 DeepSeek 服務端的搜索能力。當切換到本地模型(如 Ollama)時,由於缺少 API Key,搜索功能會失效。gausszhou/dsh-web-search-local 插件通過註冊本地提供程序,繞過 DeepSeek 服務端搜索,支持本地模型直接調用網絡搜索與頁面抓取。
功能概覽¶
該插件提供兩類提供程序:
- local-multi:本地多引擎網絡搜索提供程序。
- local-fetch:本地頁面抓取提供程序。
搜索採用分層策略:SearXNG(私有)-> 全球(Google, DuckDuckGo, Mojeek)-> CN(Bing, Baidu, Sogou, 360)。同層引擎並行查詢,結果合併輪詢。單層無結果時降級至下一層。頁面抓取支持字符集感知解碼(含 GBK)。
安裝與啓用¶
通過 DSH CLI 安裝,插件會自動激活。
dsh plugin add @gausszhou/dsh-web-search-local
安裝後,web 配置會自動切換到 local-multi / local-fetch 提供程序,並禁用 web-search-deepseek。如需調整默認配置,可在 cordis.patch.yml 中覆蓋。
配置說明¶
在 cordis.patch.yml 中配置引擎列表、代理及超時等參數。
config:
engines: [searxng, google, duckduckgo, mojeek, bing, baidu, sogou, 360]
skipWithoutProxy: [google, duckduckgo, mojeek]
proxyUrl: '' # ''自動 | 'off' | 'http://host:port'
searxngBaseUrl: 'http://127.0.0.1:8080'
searchTimeoutMs: 12000
engineMinIntervalMs: 1500
支持通過環境變量 HTTPS_PROXY 或 HTTP_PROXY 設置代理。代理僅對全球引擎生效,CN 引擎直連。
速率限制與韌性¶
插件內置應對引擎限流的機制:
- 節流:engineMinIntervalMs 防止單引擎重複調用。
- 熔斷器:遇到驗證牆或異常時觸發冷卻。
- 降級:DuckDuckGo 遇到限制時自動嘗試 Lite 接口。
注意事項¶
- 需要運行 Node.js >= 20.3。
- Node 進程不讀取系統瀏覽器代理,需通過配置或環境變量指定。
- Google 引擎易受抓取限制,建議配置 SearXNG。