DeepSeek Harness(DSH)採用“一切皆插件”的架構。在構建智能體或進行需要實時信息的任務時,一個穩定且可配置的網絡搜索後端是基礎。dsh-websearch-stack 旨在解決多源搜索和配置管理的問題,它爲 DSH 註冊了一個搜索提供者,並在其後端之上構建了一個有序的降級鏈。
是什麼¶
這是一個爲 DeepSeek Harness (dsh) 提供多提供商網絡搜索的插件。該插件在 ctx.web 接口上註冊一個搜索提供者,運行你啓用的後端組成的有序降級鏈。
- 維護者: orfeomorello
- 許可證: MIT
- 當前版本: v0.1.0 (MVP)
核心功能¶
多後端支持
插件實現了六個搜索後端:
* Tavily: 支持無密鑰模式。
* Parallel MCP: 無需憑據。
* SearXNG: 支持自託管。
* Brave, TinyFish, Exa: 需要對應的 API 密鑰或本地實例。
有序降級鏈
當請求發生可恢復錯誤(如網絡超時、速率限制、響應異常)時,系統會自動切換到鏈中的下一個後端;如果發生不可恢復錯誤,則中止並報錯;如果所有後端均失敗,錯誤信息會列出每一次嘗試的詳情。
動態配置
* 密鑰無需重啓: 四個需要密鑰的後端(Tavily, Brave, TinyFish, Exa)可以通過 Web 客戶端的 Plugins 頁面配置,寫入宿主的憑據存儲中,並在下一次請求時生效。
* 啓動時配置: 鏈的順序、SearXNG URL、結果上限、超時時間和緩存 TTL 等字段是易失字段,需要通過配置層設置。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add github:orfeomorello/dsh-websearch-stack
安裝完成後,重啓對應的 profile。默認的降級鏈 ['tavily', 'parallel-mcp'] 無需任何配置即可工作:Tavily 運行在無密鑰模式下,Parallel MCP 不需要憑據。重啓 profile 後,直接詢問需要當前信息的任務,web_search 將通過這個鏈返回結果。
配置¶
配置分爲兩個層面,因爲 Web 客戶端的 Plugins 頁面目前只能寫入憑據。
1. 動態密鑰配置(無需重啓)¶
在 Web 客戶端的 Plugins 頁面找到該插件,通過設置卡片輸入 API 密鑰(如 TAVILY_API_KEY)。這些密鑰會通過宿主的憑據存儲解析,無需重啓 profile 即可在下一次請求中生效。
2. 啓動時配置(需重啓)¶
在 dsh-client-ui-plugin-manager 0.2.0-rc.2 版本中,Web 客戶端的 Plugins 頁面渲染 plugins.bundle.config 時不包含該 Bundle 自身字段的配置表單。因此,鏈的順序、SearXNG URL 等字段需要通過配置層設置。
通常通過 profile 的 cordis.patch.yml 或 --patch 覆蓋層來配置。以下是一個啓用 SearXNG 的示例:
# ~/.dsh/profiles/web/cordis.patch.yml
- id: websearch-stack
name: dsh-websearch-stack
config:
enabled_providers: [searxng, tavily]
searxng_url: http://localhost:8080
default_max_results: 5
配置項說明:
* enabled_providers: 降級鏈順序,默認 ['tavily', 'parallel-mcp']。支持 tavily, parallel-mcp, searxng, brave, tinyfish, exa。
* searxng_url: SearXNG 實例的基礎 URL(如 http://localhost:8080)。
* default_max_results: 默認每查詢返回的結果數量(1–20),默認爲 5。
* default_timeout_ms: 後端請求超時時間(毫秒),默認爲 10000。
* cache_ttl_seconds: 緩存相同查詢的過期時間(秒),默認爲 60。
SearXNG 自託管設置:
如果你使用自託管 SearXNG,需要在 core-config/settings.yml 中啓用 JSON 格式(默認只有 HTML):
search:
formats:
- html
- json
適用場景與注意¶
- 適用場景:需要從多個搜索引擎獲取信息,或希望在不同後端間實現容錯的場景。
- 版本限制:Web 客戶端的配置表單目前僅支持寫入憑據,複雜的啓動時配置仍需依賴 patch 文件。
- 驗證狀態:插件目前處於 MVP 階段。已驗證可用的後端包括 Tavily (無密鑰) 和 Parallel MCP。Brave, TinyFish, Exa 需要相應的 API 密鑰或本地實例,但目前尚未驗證。
結語¶
dsh-websearch-stack 提供了在 DSH 中進行多源網絡搜索的基礎設施,通過有序的降級鏈和靈活的配置方式,降低了構建聯網智能體的門檻。
- GitHub: https://github.com/orfeomorello/dsh-websearch-stack
- 目錄頁: https://www.skillhub.cn/plugins/orfeomorello/dsh-websearch-stack