前言¶
DeepSeek Harness(DSH)採用“一切皆插件”的生態理念。在本地化部署或開發智能體時,聯網搜索能力往往需要對接多個第三方 API。手動管理多個數據源、密鑰輪詢與回退邏輯不僅繁瑣,而且容易出錯。um-dsh-websearch 是一個由 UnforgetMemory 維護的插件,旨在通過統一的策略層封裝 Exa、Parallel 與 DeepSeek 官方數據源,提供從配置到運行時的完整解決方案。
核心功能¶
插件通過策略層與門控機制實現了靈活且安全的搜索配置:
- 多 provider 策略層:支持 Exa、Parallel 與 DeepSeek 官方數據源。通過數組順序定義優先級,主源失敗時自動降級。
- 付費 / 免費雙檔位 + 門控回退:每個數據源包含 REST(付費)和匿名 MCP(免費)兩個檔位,雙方向開關獨立控制,強制關閉跨檔回退邏輯。
- 多密鑰策略:每條數據源可掛載多條憑據,支持按序輪詢或隨機洗牌策略。
- 併發扇出:當併發數大於 1 時,同時向所有啓用源發起請求,結果按 URL 去重合並。
- 樂觀緩存:內置內存結果緩存,可配置 TTL(1–86400 秒)。
- 憑據安全:使用
UM_WS_命名空間隔離,密鑰僅存儲爲引用,不落盤明文。 - 官方 primitives 設置卡:複用 DSH 官方設置表單,支持行內編輯總開關、默認源、併發數與緩存。
安裝與啓用¶
使用 pnpm 在 web profile 中安裝插件:
pnpm exec dsh plugin --profile web add github:UnforgetMemory/um-dsh-websearch
安裝後需要重啓 DSH。進入 設置 → 插件 → UM 網頁搜索,將 enabled 開關打開。插件安裝時會自動接管默認搜索(通過 dsh bundle 與 cordis.patch),卸載時自動回退到部署原默認後端。
典型用法¶
在設置卡中,你可以通過行內配置控制整體行爲:
1. 總開關與默認源:設置 enabled 控制啓用,defaultProvider 決定順序鏈起點。
2. 併發模式:設置 concurrency 爲 1 時爲順序回退鏈;設置爲 2–8 時爲併發扇出所有啓用源。
3. 憑據配置:在“詳細配置”中爲每個 provider 添加密鑰引用,密鑰值通過官方憑據接口寫入,不直接暴露在配置文件中。
適用場景與注意¶
- 版本要求:需要 DeepSeek Harness 版本在
>= 0.2.0-rc.1且< 0.3.0之間,Node.js 版本需>= 20。 - DeepSeek 官方源限制:DeepSeek 官方免費檔默認強制關閉,僅支持付費 REST 檔位。
- 遷移提示:若此前按舊版 README 手工插入了
id: web-search-exa的配置行,需先從 profile 的cordis.patch.yml中刪除該行,否則會因重複加載導致衝突。 - 許可證:MIT 許可證。
短結尾¶
um-dsh-websearch 通過策略層封裝與原生 UI,降低了多源搜索的維護成本,適合需要靈活切換或負載均衡的 DSH 用戶。更多細節與源碼請參考其 GitHub 倉庫。