前言¶
DeepSeek Harness (DSH) 的理念是「一切皆插件」。在開發智能體或使用大模型進行復雜任務時,模型容易產生幻覺或缺乏實時信息。dsh-search-first 插件通過在 agent/pre-step 階段強制執行多源搜索,解決了回答缺乏實時性和準確性問題。
插件定位¶
這是一個 DeepSeek Harness (DSH) Cordis 插件,遵循 “Search first, verify facts, reply last” 的原則。它接管了宿主模型的回答前奏,負責查詢提取、統一搜索、頁面抓取、結果組織與緩存,最後將組織好的實時情報注入給宿主模型,最終回答仍由宿主模型生成。
核心功能¶
- 可配置的查詢提取模型:在提取搜索意圖時使用的子模型可自定義,留空則跟隨會話模型。
- 引用格式引導:強制引導宿主模型使用標準化的引用格式,便於溯源。
- 多源排序與抓取:對多來源的搜索結果進行排序,並選擇性抓取頁面內容返回給宿主模型。
- 全鏈路執行:覆蓋查詢提取、統一搜索引擎、頁面抓取、結果組織、緩存及運行持久化。
安裝與啓用¶
環境要求¶
- 掛載
dshweb profile,版本需 >= 0.1.1-rc.2。 - 系統安裝 Node.js,版本需 >= 22。
安裝命令¶
dsh plugin --profile web add https://github.com/v587d/dsh-search-first.git
安裝完成後必須重啓 dsh web。
卸載¶
dsh plugin --profile web remove dsh-search-first
典型用法¶
- 配置搜索 API:進入設置中的 “Search first” -> “Search APIs” 點擊 “Test all connections” 測試連通性。
- 設置密鑰:必須導出至少一個 API 密鑰(支持 AnySearch / Tinyfish / Tavily)。密鑰可配置在環境變量(如
TAVILY_API_KEY)或$DSH_HOME/.credentials.yaml中。AnySearch 支持匿名模式(無需 Bearer header)。 - 使用開關:在會話輸入框下方找到 “Search First” 開關來控制單次會話的啓用狀態。右鍵點擊開關可返回全局默認設置。
配置說明¶
設置路徑爲:Settings -> Search first。
| 配置項 | 說明 |
|---|---|
| General | 默認啓用開關,失敗策略(continue/block),注入模式,總體超時時間。 |
| Query Extraction | 指定提取查詢的子模型,超時時間,最大 Token 數。 |
| Cache | 緩存目錄(默認 $DSH_HOME/search-first,重啓後 root 生效),搜索/抓取有效期,清除按鈕。 |
| Limits | 最大搜索結果數、最大抓取頁數、最大注入字符數。 |
| Search APIs | 運行模式(順序故障轉移/並行扇出合併),三大搜索引擎開關與優先級,單提供商超時,ctx.web 回退,本地 HTTP 回退。 |
適用場景與注意¶
- 使用成本:免費層級通常足夠使用。
- 權限風險:插件以當前
dsh進程的權限運行,安裝前請檢查源碼與許可證。 - 生態說明:DeepSeek Harness (DSH) 遵循「一切皆插件」的理念。本插件收錄於社區目錄,與 DeepSeek / 幻方無官方從屬關係。
總結¶
通過強制在回答前執行搜索與事實覈查,該插件能有效提升智能體回答的可靠性。更多細節與源碼可參考項目主頁。