DSH 自帶的聯網搜索按官方 token 額度計費。即便已經自配網關,這部分調用仍會走官方通道,費用在不知不覺中累積。該插件通過讓聯網搜索跟隨當前會話所選模型(該次調用同樣計入 dsh-cost-meter 賬本並歸入本會話),並配合自建檢索後端取回真實網頁來源,來解決這一問題。
安裝¶
使用官方命令安裝:
dsh plugin add dsh-web-search-session
安裝後重啓 DSH。插件通過 bundle patch 把 web 行的 searchProvider 切換爲 session。
如果需要從源碼安裝,在具備 plugin_manager 工具的會話中,對插件目錄執行 install_bundle,target 填目錄絕對路徑。安裝會寫入當前 profile 並應用 patch,無需手工編輯配置文件。
功能特性¶
- 會話路由:改寫檢索詞時使用當前會話的 provider/model,而非固定模型。
- 自建檢索:支持 SearXNG(免密鑰,推薦)、Tavily、Brave,端點與密鑰均可配置。
- 可控回退:無路由或檢索失敗時,按
noRoute選擇回退官方提供方、用原始問題檢索或直接報錯。 - 憑據隔離:密鑰僅通過憑據服務或環境變量引用,不寫入插件與設置文件。
- 可視化配置:在「插件」頁直接配置地址、密鑰與調用次數。
配置說明¶
配置項寫在 profile 的 cordis.patch.yml 中;標有「界面」的項也可在插件頁直接修改。
| 字段 | 類型 | 默認 | 說明 |
|---|---|---|---|
backend |
string | none |
檢索後端:none / searxng / tavily / brave |
endpoint |
string | '' |
後端基址;留空時使用該後端默認端點 |
apiKeyEnv |
string | '' |
密鑰引用名;留空時使用該後端的默認名 |
sessionPlanning |
boolean | true |
是否用會話模型改寫檢索詞 |
noRoute |
string | official |
無路由或檢索失敗時:official / raw / error |
providerId |
string | session |
本插件註冊的提供方 id,須與 web.searchProvider 一致 |
officialProviderId |
string | deepseek-official |
回退時委派的官方提供方 id |
maxQueries |
number | 3 |
單次請求最多調用後端幾次,範圍 1–20 |
maxResults |
number | 8 |
返回來源條數上限,最大 20 |
planMaxTokens |
number | 512 |
檢索詞改寫的輸出 token 上限 |
planTimeoutMs |
number | 20000 |
檢索詞改寫超時(毫秒) |
searchTimeoutMs |
number | 20000 |
單次後端檢索超時(毫秒) |
debug |
boolean | false |
輸出檢索詞與來源數量的調試日誌 |
後端與密鑰¶
| 後端 | 默認端點 | 密鑰變量 |
|---|---|---|
searxng |
http://127.0.0.1:8888 |
不需要 |
tavily |
https://api.tavily.com |
TAVILY_API_KEY |
brave |
https://api.search.brave.com |
BRAVE_API_KEY |
憑據解析優先級¶
密鑰不寫入插件或設置文件,按以下優先級解析:
- 憑據服務,引用名取
apiKeyEnv,留空時取該後端的默認名; - 同名環境變量。
缺少憑據屬確定性配置錯誤,不會靜默回退官方提供方。
工作原理¶
- 讀取當前會話的 provider/model 路由。
- 由該模型把用戶問題改寫爲若干檢索詞,受
sessionPlanning與maxQueries約束。 - 併發調用所選後端,按 URL 去重後返回不超過
maxResults條來源。 - 任一步驟失敗時按
noRoute處理。
兼容性要求¶
- Node.js >= 20
- DSH >= 0.1.7-rc.2(該版本起內置
@deepseek-ai/schemastery>= 3.18.3,設置項的即時生效依賴其.volatile())
快速開始示例¶
- 準備一個 SearXNG 實例,確認
http://<host>:8888/search?q=test&format=json返回 JSON。 - 打開「插件 → 已安裝 → dsh-web-search-session」,把平臺地址指向該實例。
- 正常發起一次聯網搜索。