dsh-web-search-pro:DSH 多引擎網頁搜索與持久化緩存

前言

在 DeepSeek Harness(DSH)裏做聯網檢索,常見做法是臨時接一個搜索 API,或讓模型直接 fetch 頁面。前者往往只覆蓋單一引擎、缺少回退;後者對動態頁面和登錄態站點不穩定,重複查詢也缺少緩存。若你希望把「多引擎搜索、平臺檢索、正文抓取、按站規則、Playwright 渲染」收成模型可直接調用的工具集,並帶 SQLite 持久化與歷史回放,可以看一下社區插件 dsh-web-search-pro(維護者 anweat,GitHub 約 41 stars,分類:聯網工具)。

這是什麼

dsh-web-search-pro 是一個 DSH bundle 插件:把多引擎網頁搜索、20 個平臺搜索、可讀化抓取、持久化緩存、按站提取規則,以及 Playwright 渲染打包成 11 個工具。路由控制面借鑑 Agent-Reach 的後端探測、順序選擇與失敗冷卻思路,核心邏輯爲本項目原生 TypeScript 實現。許可證爲 MIT。

它與 @anweat/dsh-browser 成對使用:瀏覽器自動化、OpenCLI、審批策略與爬取預算由 dsh-browser 管轄;Web Search Pro 負責搜索後端與緩存層。兩個插件都必須是 profile 的直接依賴——DSH 只激活直接依賴的 bundle layer,且標準 profile 可能設置 autoInstallPeers: false,不要只裝搜索插件後指望 peer 自動補齊。

核心功能

搜索與抓取

工具 作用
web_search_pro 多引擎搜索 + RRF 融合 + 內存/SQLite 雙層緩存 + 歷史
web_exa_contents 原生 Exa /contents 批量正文抓取(1–100 URL)
web_fetch_pro 可讀化抓取(Jina → HTTP+規則抽取 → Playwright 兜底)+ 快照緩存
web_platform_search 20 平臺:GitHub/B站/YouTube/V2EX/小紅書/Twitter/Reddit/IG/FB/RSS,以及知乎/微博/豆瓣/貼吧/抖音/快手等

默認引擎順序爲 ddg, bing, exa, seam, jina(免費優先),失敗自動回退並短時冷卻;也可指定單一引擎或 multi 並行融合。Exa 有 API Key 時走原生客戶端;僅有 Exa MCP 連接時會經 mcporter 回退(高級篩選與 web_exa_contents 仍要求 EXA_API_KEY)。

緩存、歷史與規則

工具 作用
web_history / web_cache_clear / web_search_stats 持久歷史、清緩存、存儲統計
web_rule 持久化按站提取規則(list/upsert/remove/import/export)
web_backend_status 後端探測、失敗/冷卻診斷與 CLI 狀態
web_deps 檢測/安裝搜索後端外部依賴
web_snapshot Playwright HTML + 文本落盤;screenshot=false 時不生成 PNG

緩存使用 SQLite + LRU;不同查詢、引擎順序和單/多引擎模式使用不同緩存指紋。web_history 支持按 kind/query/engine/platform 過濾、replay 和 JSON export。

平臺與中文社區登錄態

知乎、微博、豆瓣、貼吧、抖音、快手等站點的免登錄公開接口常被風控,插件對這類平臺走 Playwright 驅動登錄態瀏覽器(借鑑 MediaCrawler 思路的獨立實現)。登錄一次後通過 authProfilesbrowserBindings 按域名隔離保存 storageState;站點改版時用 platformRules 或 dsh-browser 的 rulePacks 調整選擇器。

Reddit、小紅書、Twitter 等 OpenCLI 平臺需要 Chrome 擴展在線;B站、YouTube 等需按需安裝 bili-cliyt-dlp 等 CLI,可用 web_deps 檢測與安裝。

安裝與啓用

下面介紹官方 README 中的安裝方式。dsh-web-search-pro >= 0.1.8 要求 @anweat/dsh-browser >= 0.1.8;升級時應兩個包一起升,完成後完整停止並重新啓動 Web profile(僅刷新網頁不會重新掃描插件的 client.js)。

dsh plugin --profile web add @anweat/dsh-browser@^0.1.8 dsh-web-search-pro@^0.1.8
# 或本地目錄 / tarball:
dsh plugin --profile web add ../dsh-browser ./dsh-web-search-pro
# 重啓(web profile 關閉了 HMR):
dsh --profile web

安裝後依次檢查:

  1. browser_status:確認 OpenCLI、Playwright/patchright 運行時、automationModeusagePolicy
  2. web_backend_status:確認搜索、CLI、Agent Reach 與瀏覽器後端是否 ready。
  3. 打開 設置 → 插件 → 插件配置:確認「Web Search Pro」和「瀏覽器自動化」兩張卡片都已加載。

依賴 @deepseek-ai/* 已發佈到 npm(^0.1.0-rc.6)。若 harness 是本地源碼 checkout,版本號可能有出入,可用 dsh plugin --profile web add ./<path> 並在 profile 的 pnpm-workspace.yaml 裏對齊版本後重裝。

典型用法

安裝並重啓後,在 DSH 會話裏直接要求模型調用工具即可。下面是一個可復現的示例:

請調用 web_backend_status 檢查後端,然後用 web_search_pro 搜索
"DeepSeek Harness community feedback",指定 exa、fresh=true、返回 8 條來源。

按場景選擇入口:

情形 推薦入口 說明
日常網頁搜索 web_search_pro 默認按配置順序回退;需要強制刷新時傳 fresh=true
語義研究、社區觀點 web_search_pro + exa 有 API Key 時走原生 Exa API
已知 URL 的批量正文 web_exa_contents 必須配置 EXA_API_KEY
GitHub/B站/Reddit 等平臺 web_platform_search Reddit 等需 Chrome 擴展在線
登錄後頁面或私有論壇 browserBindings + AuthProfile Cookie 保存在本地 storageState,默認只讀
頁面改版、懶加載 platformRules 或 RulePack 優先改選擇器;需要等待/點擊/滾動時用有界 RulePack

先運行 web_backend_status 判斷後端是否 ready。指定單一引擎時失敗會原樣返回;不指定時纔會按 engines 順序自動回退。

配置要點

日常配置優先用 DSH 可視化面板:設置 → 插件 → 插件配置 → Web Search Pro。Exa、Jina、GitHub 密鑰通過 DSH Credentials 寫入,面板只顯示「已配置/未配置」,不會把明文密鑰讀回瀏覽器。

也可在 $DSH_HOME/settings.yamlweb-search-pro: 段熱重載:

web-search-pro:
  exaApiKeyEnv: EXA_API_KEY
  jinaApiKeyEnv: JINA_API_KEY
  engines: [ddg, bing, exa, seam, jina]
  parallelEngines: false
  ttlSeconds: 3600
  searchMaxResults: 8
  browserBindings:
    zhihu:
      authProfile: china-community
      rulePack: zhihu-enhanced

瀏覽器工具的審批自由度由 dsh-browser.automationMode 管轄:read-only 拒絕寫操作;standard(默認)對交互、寫 Recipe、外部腳本等審批;unrestricted 僅建議用於隔離測試 profile。所有模式仍保留域名、參數、大小和步驟上限校驗。

適用場景與注意

適合誰: 在 DSH Web profile 裏做日常聯網檢索、語義搜索、平臺內容抓取,或需要持久化緩存與搜索歷史的智能體開發者。

權限與安全: 插件以當前 dsh 進程權限運行,可訪問本機網絡、憑據與瀏覽器登錄態。安裝前應閱讀源碼與 MIT 許可證,確認 automationModeusagePolicy 與域名綁定符合你的安全預期。外部 UserScript 在頁面主世界運行,並非安全沙箱;生產 profile 建議保留 standard 模式。

生態說明: DSH 的理念是「一切皆插件」。SkillHub(skillhub.cn)是社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。

鏈接

羽毛球分组比赛记分
小程序二维码

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

小夜