dsh-fetch-third-party: Safe Third-Party Web Fetch for DeepSeek Harness

前言

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。在 设置 → 插件 → 插件配置 中找到「网页抓取(第三方)」卡片,即表示安装成功。

使用说明

配置第三方服务商

  1. 进入设置界面,找到「网页抓取(第三方)」卡片。
  2. 在「服务商」下拉框中选择目标服务(如 Jina Reader)。
  3. 点击「测试连接」验证配置是否可用。
  4. 在「接口地址」中输入服务端点(通常默认即可)。
  5. 在「本地代理」中配置代理地址(例如 http://127.0.0.1:27822),用于解决网络阻断问题。

自定义服务与自建栈

若需使用自建抓取工具(如 Crawl4AI),需配置自定义契约服务:

  1. 在卡片中选择「自定义」类型。
  2. 设置名称(如 crawl4ai)。
  3. 类型选择 custom(契约 v1)。
  4. 接口地址设置为本地回环地址(如 http://127.0.0.1:8787)。
  5. 保存后,插件会自动拉起对应的本地服务栈。

安全机制说明

  • 凭证隔离:插件禁止明文读取 Key,所有 Key 仅存于 DSH 托管保险箱。设置卡片只显示“已配置/未配置”状态。
  • 纵深防御:插件在转发请求前会拒绝内网/保留地址目标,防止 SSRF 攻击。
  • 唯一出站面:本机唯一的外部出站连接指向用户配置的第三方端点。

总结

该插件通过委托外部服务实现了安全的网页抓取能力,适合需要在 DSH 环境中安全获取全网信息的场景。开发者可参考 GitHub 仓库 获取源码与文档,或在 技能库目录 查看更多信息。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜