DeepSeek Harness (DSH) 通過插件機制支持 web_search 和 web_fetch 工具。DSH 默認內置了 deepseek-official 搜索提供者和 http 抓取提供者,但本地抓取器在處理 JavaScript 渲染、PDF 解碼及複雜機器人防護時存在侷限。dsh-web-tinyfish 插件爲 DSH 引入了 TinyFish 作爲替代方案,解決了上述痛點。
插件簡介¶
此插件爲 DSH 提供了 TinyFish 搜索和抓取提供者,用於支撐內置的 web_search 和 web_fetch 工具。
- 名稱:dsh-web-tinyfish
- 倉庫:https://github.com/HateYouLittle/dsh-web-tinyfish
- 作者:HateYouLittle
- 類別:聯網工具
- 許可證:MIT
安裝與配置¶
安裝此插件需要 DSH 運行環境以及一個有效的 TinyFish API 密鑰。
- 安裝插件
使用官方命令安裝:
dsh plugin --profile <profile> add dsh-web-tinyfish
安裝後,插件會註冊 `tinyfish` 提供者 ID。
-
配置 API 密鑰
插件本身不內置 API 密鑰,必須在環境變量或配置中提供。如果未配置,提供者將報告爲不可用。- 環境變量:設置
TINYFISH_API_KEY。 - 配置文件:在私有配置覆蓋中設置
apiKey字段。
- 環境變量:設置
核心能力¶
使用 TinyFish 提供者可獲得以下能力:
- 搜索支持:通過
ctx.web.search()調用,提供標題、片段和發佈日期。 - 抓取支持:通過
ctx.web.fetch()調用,支持 JavaScript 渲染,可抓取 SPA 類網站內容。 - PDF 文本提取:可解析和提取 PDF 文本內容,本地抓取器無法完成此操作。
- 機器人防護處理:將機器人防護挑戰顯式標記爲
bot_blocked錯誤,而非返回挑戰頁面正文。 - 輸出格式:生成乾淨的 Markdown、HTML 或 JSON 輸出,而非原始 HTML。
行爲與限制¶
- SSRF 保護:抓取請求的 URL 會發送到 TinyFish 服務器。TinyFish 會拒絕私有 IP、localhost 和雲元數據端點,因此 SSRF 保護由 TinyFish 側處理。對於敏感數據抓取,建議重置爲
http提供者。 - 重置方式:如需切換回默認提供者,需修改配置:
searchProvider: 'deepseek-official'
fetchProvider: 'http'
總結¶
該插件爲 DSH 提供了更強大的網頁處理能力,適合需要處理動態內容、PDF 文檔或複雜反爬場景的開發場景。插件倉庫:https://github.com/HateYouLittle/dsh-web-tinyfish