前言¶
在 DeepSeek Harness(DSH)裏給智能體加聯網能力,常見做法是接一個搜索 API,或者自己包一層代理。單 Provider 方案的問題是:額度用完、限流、超時都會直接斷鏈;多 Provider 簡單拼接時,又往往只能用到各家都支持的最小公共能力,分類、時效、域名策略、正文提取等原生特性用不上。
下面介紹社區插件 dsh-web-tools(維護者 A3Boy,分類:聯網工具)。它把 Exa、Tavily、Firecrawl、Parallel、Brave、You.com、Jina、SearXNG,以及小紅書、Twitter / X 接到 DSH 標準的 web_search / web_fetch 接口上,在統一工具契約的前提下,用 SearchHints 把查詢意圖編譯成各 Provider 的原生參數,並配合多 Key 調度與自動降級提高可用性。插件當前版本 0.3.0,GitHub 約 16 stars,MIT 許可證。
這是什麼¶
dsh-web-tools 是面向 DSH 的聯網工具插件,定位是「多 Provider 搜索 + 正文抓取 + 社媒平臺檢索」的統一接入層。
對 Agent 側來說,接口不變:仍然調用標準的 web_search 和 web_fetch。對運維側來說,可以在 DSH 設置界面配置各 Provider 的 API Key、路由順序和降級鏈條,不必爲每個搜索源單獨寫工具聲明。
核心功能¶
統一接口,保留各家原生能力¶
插件通過 SearchHints 歸一化查詢中的技術/論文/新聞意圖、時效、域名、地區與語言等約束,再用確定性代碼(不額外調用 LLM)編譯成各 Provider 支持的參數。
以「搜索最近一週的 AI 編程資料」爲例,不同後端會走不同映射:
- Exa:分類、ISO 日期範圍、域名限制
- Firecrawl:技術查詢映射
github分類,研究類映射research,結合tbs時效 - Parallel:組合
objective、search_queries與source_policy - Brave Search:freshness、國家與語言,優先 LLM Context 端點
- You.com:
boost_domains軟加權
web_fetch 則按 Provider 原生提取接口路由,例如 Exa /contents、Tavily /extract、Firecrawl /scrape、Jina Reader 等。
8 大 Web Provider 支持矩陣¶
| Provider | 搜索 | 抓取/提取 | 備註 |
|---|---|---|---|
| Exa | 支持 | 支持 | 語義檢索、垂直分類、日期與域名限制 |
| Tavily | 支持 | 支持 | basic / advanced / fast / ultra-fast 深度檔位 |
| Firecrawl | 支持 | 支持 | 技術/學術分類映射,Clean Markdown 提取 |
| Parallel | 支持 | 支持 | objective 軟引導 + source_policy 過濾 |
| Brave Search | 支持 | — | LLM Context 優先,失敗回退 Classic |
| You.com | 支持 | 支持 | boost_domains、時效與地區過濾 |
| Jina | 支持 | 支持 | ReaderLM-v2 Markdown 轉換 |
| SearXNG | 支持 | — | 自託管元搜索,適配器無需 API Key |
小紅書與 Twitter / X¶
區別於通用搜索引擎,這兩個平臺通過本機 Edge / Chrome 專用 Profile 與 CDP 通信完成站內操作:
- 不依賴 Playwright 打包或瀏覽器擴展
- Cookie 由瀏覽器 Profile 管理,插件不寫入配置或日誌
- 小紅書:
web_fetch解析筆記詳情與評論;web_search從/explore真實搜索框進入 - Twitter / X:捕獲 GraphQL 數據流,支持
from:、since:、until:等算子
Agent 用平臺前綴路由,例如 小紅書: DeepSeek Harness 或 X: ...;前綴只選平臺,實際站內搜索前會移除。
單次詳情抓取最多附帶 30 條評論或回覆,單條內容最多 800 字符;超出分頁會標記截斷。
排查瀏覽器問題時,可設 XHS_NATIVE_SEARCH=0 臨時關閉小紅書站內搜索。
調度與容災¶
- 單 Provider 支持多 API Key,優先分配低
inFlight的 Key,401 自動切換 - 網絡異常、超時、5xx、429、配額耗盡時,按配置鏈條降級到下一 Provider
- 429 響應帶
Retry-After時進入零請求冷卻 web_search支持 Ordered / Round-Robin / Random 路由;web_fetch按確定性鏈條執行- 會話級 Search Mode:開啓後要求 Agent 回答前至少調用一次
web_search或web_fetch - 支持
HTTP_PROXY、HTTPS_PROXY、NO_PROXY與 Windows 系統代理
安裝與啓用¶
在 SkillHub 目錄頁或 GitHub README 中,官方安裝命令如下:
# 安裝插件
dsh plugin --profile web add github:A3Boy/dsh-web-tools
# 更新插件
dsh plugin --profile web update dsh-web-tools
# 卸載插件
dsh plugin --profile web remove dsh-web-tools
安裝後重啓 dsh web,在左側側邊欄進入 Settings → Web Search,配置各 Provider 的 API Key 與路由策略。新安裝默認首選 Provider 爲 Exa。
若本地包或軟鏈接升級遇到緩存問題,可在 Profile 目錄重裝:
cd ~/.dsh/profiles/web && pnpm install
典型用法¶
通用聯網搜索¶
Agent 直接調用 DSH 內置的 web_search / web_fetch 即可,無需學習新工具名。查詢中的時效、域名、地區等約束會由 SearchHints 自動解析並編譯。
社媒平臺檢索¶
在查詢前加平臺前綴選擇來源:
小紅書: DeepSeek Harness
X: DeepSeek Harness plugin
平臺來源未啓用或發生可重試故障時,會降級到已配置的通用 Web Provider;登錄失效、訪問受限等非重試錯誤會直接返回,不會用網頁索引冒充站內結果。
開啓會話級聯網模式¶
在設置中打開 Search Mode 後,Agent 回答前必須至少完成一次聯網調用;調用失敗也算已嘗試,但需說明哪些內容未能驗證。
適用場景與注意¶
適合誰:
- 需要爲 DSH Agent 配置多個搜索/抓取 Provider,並希望在單源故障時自動切換
- 希望保留 Exa、Tavily 等各家原生參數能力,而不是統一壓成最低公共集
- 需要在 Agent 工作流中檢索小紅書或 Twitter / X 站內內容
- 有自託管 SearXNG 實例,想接入 DSH 聯網鏈路
使用前注意:
- 插件以當前
dsh進程權限運行,安裝前應閱讀 GitHub 源碼 並確認 MIT 許可證條款。 - 多數 Provider 需要自備 API Key(SearXNG 除外);Exa、Parallel 餘額需在各自控制檯查看。
- 小紅書與 Twitter / X 依賴本機已安裝的 Edge 或 Chrome 及獨立瀏覽器 Profile,首次使用需完成平臺登錄。
- SkillHub(skillhub.cn)是社區插件目錄,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」理念,插件選擇與配置由使用者自行負責。
結尾¶
dsh-web-tools 把多源搜索、正文提取和社媒檢索收斂到 DSH 標準的 web_search / web_fetch 接口,用 SearchHints 保留各家原生能力,用多 Key 與 Fallback 提高鏈路可用性。若你正在爲 DSH 搭建聯網能力,可以從目錄頁瞭解概況,再到 GitHub 查看完整 Provider 矩陣與配置說明。
- 目錄頁:https://www.skillhub.cn/plugins/A3Boy/dsh-web-tools
- GitHub:https://github.com/A3Boy/dsh-web-tools