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