前言¶
DeepSeek Harness(DSH)內置的 web_search 工具默認調用官方付費接口,會消耗 Token 併產生費用。dsh-plugin-ai-super-search 通過接管該工具並提供 TinyFish、AnySearch、Bing 爬取、Jina 與 DuckDuckGo 等免費鏈路,實現了零額外 Token 消耗的搜索功能。
安裝與啓用¶
本插件以 bundle 形式提供,安裝後會自動將配置補丁疊進 profile。
- 安裝插件:
dsh plugin --profile <profile> add dsh-plugin-ai-super-search
- 驗證安裝:
運行以下命令檢查插件是否被正確加載:
dsh --profile <profile> --dump-config
啓動後在插件列表中應出現 `ai-super-search`(模塊名 `dsh-plugin-ai-super-search`),狀態爲 active。工具列表中應出現四個獨立工具:`ai_super_search_web_search`、`ai_super_search_fetch_url`、`ai_super_search_local_files`、`ai_super_search_code`。
-
檢查依賴:
確認node_modules/dsh-plugin-ai-super-search文件夾存在。若該鏈接缺失,loader 會靜默跳過整層 patch,導致搜索功能回落到官方付費通道且無報錯。 -
桌面端安裝:
桌面端(Electron 應用)的desktopprofile 由應用獨佔管理,CLI 會拒絕操作。請在桌面端通過 設置 → 插件管理器 進行安裝或卸載。dsh plugin命令僅適用於web、acp、headless或其他 CLI 管理的 profile。
核心功能¶
插件主要包含兩層能力:
-
接管原生
web_search:
通過cordis.patch.yml將web.searchProvider切換至插件提供的tinyfish等後端,使得 DSH 內置的web_search工具直接走免費鏈路。 -
提供獨立工具組:
ai_super_search_web_search:免費搜索網頁,支持多引擎降級鏈路。ai_super_search_fetch_url:使用 Jina Reader 讀取網頁內容,失敗時回退直連 HTML。ai_super_search_local_files:在指定根目錄內搜索文本文件。ai_super_search_code:在指定根目錄內搜索代碼並返回語言、行號和上下文。
免費搜索鏈路¶
搜索鏈路的實際順序由 src/search.js 的 webSearch() 決定。可用後端包括 TinyFish、AnySearch、Bing(爬取)、Jina、DuckDuckGo Lite。即使一個 Key 都未配置,插件也會自動降級,不會中斷搜索功能。
| 順序 | 後端 | 進鏈條件 |
|---|---|---|
| 0 | DSH_SEARCH_ENGINE |
顯式設置時優先,失敗後仍按順序降級 |
| 1 | TinyFish | 必須配置 TINYFISH_API_KEY |
| 2 | AnySearch | 免 Key 也可進鏈,按 IP 走匿名額度 |
| 3 | Bing | 免 Key 直接抓取結果頁 HTML |
| 4 | Jina | 配置 DSH_JINA_API_KEY 可提額度 |
| 5 | DuckDuckGo Lite | 無 JS 輕量版兜底 |
可通過環境變量 DSH_SEARCH_ENGINE 指定首選引擎。
前端呈現¶
插件實現了與官方 web_search 完全一致的呈現鉤子,確保前端展示的搜索卡片與官方一致:
output.render:生成模型側文本(Markdown 源碼列表)。output.presentationMeta:提供可重放元數據{ sources, truncated }。presentCall:顯示運行中卡片。presentResult:顯示完成後的富卡片。
排障¶
安裝後若發現搜索功能未生效,需排查以下兩點:
-
Bundle 解析失敗:
若package.json中聲明的 bundle 名稱在node_modules中找不到對應的鏈接(例如包名變更未重新安裝、舊 link-projection 機制失效),loader 會靜默跳過整層 patch。此時插件列表可能顯示爲 inactive 或缺失,需重新運行pnpm install確保node_modules存在。 -
配置文件錯誤:
profile 目錄下的cordis.yml是“空根補丁文件”,每次啓動都會被覆寫。有效的配置來源順序爲:各 bundle 自帶的 patch → profile 的cordis.patch.yml→$DSH_HOME/cordis.patch.yml→--patchoverlay。修改cordis.yml無效。
適用場景與注意¶
- 場景:需要頻繁使用搜索功能且希望降低 Token 成本的開發者或智能體開發者。
- 運行權限:插件以當前 DSH 進程的權限運行,安裝前應檢查源碼與許可證。
- 構建腳本:從 GitHub 安裝時,若使用
pnpm >= 10,默認會拒絕執行 git 依賴的構建腳本。需在pnpm-workspace.yaml中添加allowBuilds配置或在安裝時指定版本(如#<sha>)。
參考資料¶
- GitHub 倉庫:https://github.com/huguangyu666/dsh-plugin-ai-super-search
- 社區目錄:https://www.skillhub.cn/plugins/huguangyu666/dsh-plugin-ai-super-search