dsh-web-tools:爲 DeepSeek Harness 接入多源聯網搜索與抓取

前言

在 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_searchweb_fetch。對運維側來說,可以在 DSH 設置界面配置各 Provider 的 API Key、路由順序和降級鏈條,不必爲每個搜索源單獨寫工具聲明。

核心功能

統一接口,保留各家原生能力

插件通過 SearchHints 歸一化查詢中的技術/論文/新聞意圖、時效、域名、地區與語言等約束,再用確定性代碼(不額外調用 LLM)編譯成各 Provider 支持的參數。

以「搜索最近一週的 AI 編程資料」爲例,不同後端會走不同映射:

  • Exa:分類、ISO 日期範圍、域名限制
  • Firecrawl:技術查詢映射 github 分類,研究類映射 research,結合 tbs 時效
  • Parallel:組合 objectivesearch_queriessource_policy
  • Brave Search:freshness、國家與語言,優先 LLM Context 端點
  • You.comboost_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 HarnessX: ...;前綴只選平臺,實際站內搜索前會移除。

單次詳情抓取最多附帶 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_searchweb_fetch
  • 支持 HTTP_PROXYHTTPS_PROXYNO_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,在左側側邊欄進入 SettingsWeb 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 聯網鏈路

使用前注意:

  1. 插件以當前 dsh 進程權限運行,安裝前應閱讀 GitHub 源碼 並確認 MIT 許可證條款。
  2. 多數 Provider 需要自備 API Key(SearXNG 除外);Exa、Parallel 餘額需在各自控制檯查看。
  3. 小紅書與 Twitter / X 依賴本機已安裝的 Edge 或 Chrome 及獨立瀏覽器 Profile,首次使用需完成平臺登錄。
  4. 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜