前言¶
DeepSeek Harness (DSH) 的智能體在回答問題時,往往需要獲取網頁全文而非搜索摘要。直接在本地發起 HTTP 請求抓取目標網址會引入 SSRF(服務器端請求僞造)攻擊面。dsh-fetch-third-party 插件通過“快遞員模式”解決這個問題:本機不直連目標網址,而是將抓取請求委託給用戶配置的第三方服務。所有 API Key 存儲在 DSH 託管的憑證保險箱中,並附帶會話級預算與抓取緩存機制。
核心功能¶
本插件提供安全的第三方網頁抓取能力,主要包含以下特性:
- 安全代理抓取:本機不直接連接任意 URL,無 SSRF 攻擊面。
- 多服務商支持:支持 Tavily、Jina Reader、Firecrawl,以及符合契約 v1 的自定義服務。
- 憑證安全存儲:API Key 僅寫入
~/.dsh/.credentials.yaml(權限 0600),插件與 GUI 卡片均不顯示明文。 - 會話級預算:默認每會話限制 10 次抓取,超限拒絕並提示。
- 抓取緩存:同一 URL 在有效期內(默認 600 秒)走內存緩存,不消耗第三方額度與預算。
- 自建 Crawl4AI 棧管理:當配置本地自定義服務時,插件可自動管理 Crawl4AI 容器與包裝進程。
- 結構化輸出:
web_fetch_url返回標題、大綱、鏈接、字數及閱讀時長等信息。
安裝與啓用¶
安裝前請確保已安裝 DeepSeek Harness (dsh) 與 pnpm。
執行以下命令安裝插件:
dsh plugin --profile web add https://github.com/tallahandsome-ux/dsh-fetch-third-party.git
安裝完成後,重啓 dsh web。在 設置 → 插件 → 插件配置 中找到「網頁抓取(第三方)」卡片,即表示安裝成功。
使用說明¶
配置第三方服務商¶
- 進入設置界面,找到「網頁抓取(第三方)」卡片。
- 在「服務商」下拉框中選擇目標服務(如
Jina Reader)。 - 點擊「測試連接」驗證配置是否可用。
- 在「接口地址」中輸入服務端點(通常默認即可)。
- 在「本地代理」中配置代理地址(例如
http://127.0.0.1:27822),用於解決網絡阻斷問題。
自定義服務與自建棧¶
若需使用自建抓取工具(如 Crawl4AI),需配置自定義契約服務:
- 在卡片中選擇「自定義」類型。
- 設置名稱(如
crawl4ai)。 - 類型選擇
custom(契約 v1)。 - 接口地址設置爲本地迴環地址(如
http://127.0.0.1:8787)。 - 保存後,插件會自動拉起對應的本地服務棧。
安全機制說明¶
- 憑證隔離:插件禁止明文讀取 Key,所有 Key 僅存於 DSH 託管保險箱。設置卡片只顯示“已配置/未配置”狀態。
- 縱深防禦:插件在轉發請求前會拒絕內網/保留地址目標,防止 SSRF 攻擊。
- 唯一齣站面:本機唯一的外部出站連接指向用戶配置的第三方端點。
總結¶
該插件通過委託外部服務實現了安全的網頁抓取能力,適合需要在 DSH 環境中安全獲取全網信息的場景。開發者可參考 GitHub 倉庫 獲取源碼與文檔,或在 技能庫目錄 查看更多信息。