前言¶
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 仓库 获取源码与文档,或在 技能库目录 查看更多信息。