前言¶
在 DeepSeek Harness(DSH)裏讓模型查當前網頁信息,常見有兩條路:用內置的 web_search(往往對接官方或第三方搜索 API,按次計費、要配密鑰),或自己寫插件去調搜索引擎。若你只是希望對話裏能「搜一下再讀正文」,又不想先申請一堆 API Key,leiming2333/dsh-web-search-lite 針對的是這個場景:開箱即用抓取多家公開結果頁,聚合並去重;需要更穩的結果時再可選 Tavily、Serper 等 API。它和 npm 上的 dsh-web-search-pro(作者 anweat)不是同一個包,裝包前看清名稱。
這是什麼¶
dsh-web-search-lite 是社區維護的 DSH 聯網工具插件(維護者 leiming2333,MIT 許可,當前 npm 版本 1.3.2)。它向模型註冊兩個新工具 web_search_api 與 web_fetch_api,不接管、不修改 DSH 自帶的 web_search;內置搜索仍在官方「插件 → 網頁搜索」裏配置。
默認同時查詢 DuckDuckGo、Bing 網頁、百度、360 搜索四家,合併去重後返回來源列表;並可把命中 URL 讀成純文本。免密鑰引擎通過讀取公開結果頁拿數據,零額外 npm 運行時依賴(宿主側僅用 Node 內置模塊)。
目錄頁:https://www.skillhub.cn/plugins/leiming2333/dsh-web-search-lite
源碼:https://github.com/leiming2333/dsh-web-search-lite
核心功能¶
模型可用的工具¶
| 工具 | 作用 |
|---|---|
web_search_api |
一次搜索,返回排序後的來源(標題、URL、摘要、發佈時間)。默認 provider 爲全部引擎聚合;支持單次調用臨時指定 provider、language、maxResults,不寫進設置。 |
web_fetch_api |
將 URL 轉爲純文本(去掉標籤、腳本、樣式),用於打開搜索命中的頁面;可在設置裏關閉註冊。 |
出錯時工具會給出可操作的提示(反爬建議換引擎或配 API、解析失敗說明頁面結構變化、401/403/429/超時等),而不是隻拋狀態碼。
搜索引擎與 all 合併邏輯¶
免密鑰(默認 provider: all)
provider |
引擎 | 說明 |
|---|---|---|
all |
四家合計 | 併發查詢,輪轉交錯合併,按 URL 去重後截斷到 maxResults |
duckduckgo |
DuckDuckGo | 讀 html.duckduckgo.com 結果頁 |
bingweb |
Bing 網頁 | 讀 bing.com/search 結果頁 |
baidu |
百度 | 讀 baidu.com/s,過濾推廣位 |
so360 |
360 搜索 | 讀 so.com/s;密集請求可能觸發攔截頁,聚合模式下不影響其他引擎 |
searxng |
自建 SearXNG | 須填服務地址;配置後也會加入 all |
合併策略要點:各引擎併發、各自至少取 max(count, 6) 條;輪轉而非簡單首尾拼接,避免某一引擎霸佔靠前位置;URL 去重時忽略常見跟蹤參數;用 allSettled,單家失敗不拖垮整次搜索,並在輸出中標註「未返回」的引擎。
需要 API Key(可選)
支持 tavily、serper、brave、exa、bing(Azure Bing Web Search API)等;密鑰與端點在設置頁填寫。
設置與存儲¶
配置項保存在 <DSH_HOME>/web-search-pro/settings.json(默認 ~/.dsh/web-search-pro/settings.json)。目錄名與 API 前綴使用組合行 id web-search-pro,與 npm 包名 dsh-web-search-lite 不同,改包名不會動已有配置。
在 DSH 客戶端打開 設置 → 網絡搜索,可改引擎、密鑰、條數、超時等;保存後下一條消息生效,無需重啓(僅改設置時)。頁面提供 測試連接,用已保存配置跑一次真實查詢。
主要字段(節選):
| 字段 | 默認 | 說明 |
|---|---|---|
provider |
all |
搜索引擎 |
apiKey / endpoint |
空 | API 密鑰與自定義地址(SearXNG 必填 endpoint) |
maxResults |
8 |
1–50 |
timeoutMs |
20000 |
1000–120000 |
enableFetch |
true |
是否啓用 web_fetch_api |
fetchMaxChars |
20000 |
單頁保留字符上限 |
安裝與啓用¶
安裝前確認包名爲 dsh-web-search-lite,不要誤裝 dsh-web-search-pro。本插件 peerDependencies 聲明 @deepseek-ai/dsh-tools 爲 ^0.2.0-rc.1,在 DSH 0.2.2-rc.1 等版本上可通過兼容性檢查。
從 npm 安裝(推薦)
任選其一:
- 插件 → 發現,找到「網絡搜索 Lite」安裝
- 在對話中說「裝 dsh-web-search-lite」,由
plugin_manager安裝 - 若本機有
dshCLI:
dsh plugin add dsh-web-search-lite
npm 包:https://www.npmjs.com/package/dsh-web-search-lite
從 GitHub 倉庫安裝(改代碼或跟 main)
倉庫根目錄即插件包;可用 _dev/install.mjs 寫入 desktop profile(會先備份 package.json)。也可在對話中讓 DSH 對本地路徑執行 install_bundle。
裝完後的重啓
- 首次安裝必須完全退出並重啓 DeepSeek Harness(profile 組合列表在啓動時讀取)。
- 若設置頁已出現但
/api/web-search-pro/settings返回 404,檢查~/.dsh/web-search-pro/host-status.json;無此文件表示宿主未加載插件,需重啓應用而非僅刷新頁面。 - 之後只改插件文件時,宿主側可由文件監聽重載;瀏覽器側仍需刷新頁面。
插件以當前 DSH 進程權限運行;安裝前建議瀏覽源碼與 MIT 許可證,確認可接受抓取型引擎對目標站點的訪問方式。
典型用法¶
- 安裝並重啓後,在 設置 → 網絡搜索 確認
provider(默認all)與maxResults,點 測試連接 看提供方、條數、耗時與前三條來源。 - 在對話中直接提問,例如:「搜索一下今天的科技新聞」——模型可調用
web_search_api,再按需用web_fetch_api讀正文。 - 單次搜索若需臨時指定引擎或語言,由模型在
web_search_api參數裏傳入provider、language、maxResults,不修改settings.json。
抓取型引擎依賴公開結果頁結構,改版或反爬可能導致單家失敗;需要每天大量、穩定查詢時,建議在設置中改用一家 API provider 並填寫 apiKey。
適用場景與注意¶
適合
- 個人或小團隊想在 DSH 裏快速具備聯網檢索與讀頁,又不想先配置搜索 API。
- 希望多源結果交叉驗證,且能接受偶發單引擎解析失敗。
- 已有官方
web_search計費方案,想並行使用免費的web_search_api/web_fetch_api,而不是替換內置工具。
注意
- 免密鑰模式是讀取搜索引擎結果頁,遵守各站服務條款與本地合規要求;360 等對高頻請求敏感,宜控制調用頻率。
- 與內置
web_search並存時,模型會看到兩套工具,由提示詞或任務說明引導選用哪一套。 - 社區插件目錄(如 SkillHub)與 DeepSeek / 幻方無官方從屬關係;星標、版本以 GitHub / npm 爲準。
結尾¶
dsh-web-search-lite 把四家免密鑰抓取與可選商業 API 收成兩個 DSH 工具,並配上可視化設置與測試連接,降低「先配密鑰才能聯網」的門檻;同時明確不改動內置 web_search,便於和官方搜索方案共存。