前言¶
在 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 思路的獨立實現)。登錄一次後通過 authProfiles 與 browserBindings 按域名隔離保存 storageState;站點改版時用 platformRules 或 dsh-browser 的 rulePacks 調整選擇器。
Reddit、小紅書、Twitter 等 OpenCLI 平臺需要 Chrome 擴展在線;B站、YouTube 等需按需安裝 bili-cli、yt-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
安裝後依次檢查:
browser_status:確認 OpenCLI、Playwright/patchright 運行時、automationMode與usagePolicy。web_backend_status:確認搜索、CLI、Agent Reach 與瀏覽器後端是否 ready。- 打開
設置 → 插件 → 插件配置:確認「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.yaml 的 web-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 許可證,確認 automationMode、usagePolicy 與域名綁定符合你的安全預期。外部 UserScript 在頁面主世界運行,並非安全沙箱;生產 profile 建議保留 standard 模式。
生態說明: DSH 的理念是「一切皆插件」。SkillHub(skillhub.cn)是社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。