前言¶
DSH 的智能体在沙箱中执行命令时,可能需要访问外部网站、文档或 API。若这些请求需要经过本地 HTTP 代理,代理地址就需要在抓取动作中正确指定。
下面介绍 izwarm195/dsh-net-tools:它的定位是“让 DSH 使用你的魔法”——把沙箱里的 agent 接上你本地的 HTTP 代理,一条命令就能抓取被墙的网站、文档和 API。
这是什么¶
izwarm195/dsh-net-tools 是一个 DSH 插件,由 izwarm195 维护,许可证为 MIT。
项目说明指出:代码、测试与文档均由 AI(DeepSeek Harness 编码代理)生成,人工仅负责审阅、验收与发布。
它主要解决一个具体问题:DSH 宿主进程可以使用正常的 Node.js 网络路径,而插件提供 net_fetch 和 net_proxy_status 两个工具,让 agent 能统一通过本地 HTTP 代理抓取 HTTP(S) 内容,并检查代理状态。
核心功能¶
net_fetch¶
net_fetch 用于抓取 HTTP(S) 内容。
它通过用户代理的手动 CONNECT 隧道完成请求,不走 schannel,零依赖。调用后可以自动跟随重定向,并返回文本或截断后的响应体。
它同时执行以下限制:
- 仅允许
http:/https:协议 - 超时上限默认 30 秒
- 响应大小上限默认 1 MiB
- 重定向最多 5 次,且每次重定向都重新执行同样的安全校验
- 默认拒绝私网 / 回环 / 链路本地地址;传
allowPrivate: true可放行
net_proxy_status¶
net_proxy_status 用于报告 DSH 进程会使用的代理,并检测其可达性。
它会检查以下来源:
- 用户级环境变量
- 当前进程环境变量
- Windows 系统代理
代理发现顺序如下:
- 显式
proxy参数 HTTPS_PROXY/HTTP_PROXY环境变量- Windows 系统代理(注册表
Internet Settings)
安装与启用¶
先确认运行环境满足以下要求:
node >=20- peerDependencies:
@deepseek-ai/cordis >=4.0.0、@deepseek-ai/dsh-tools >=0.1.0-rc.5
安装命令如下。命令中的 <本包> 为插件包占位符,需按实际安装来源替换:
dsh plugin --profile web add <本包>
# 或:dsh plugin --profile desktop add <本包>
经过上面的步骤后,重启 DSH,agent 即可使用 net_fetch 和 net_proxy_status 两个工具。
典型用法¶
抓取被墙的页面¶
在 agent 中调用:
net_fetch(url: "https://github.com/")
这一步用于抓取页面、文档或 API,并按代理发现顺序使用本地 HTTP 代理。
排查代理配置¶
调用:
net_proxy_status(checkReachability: true)
这一步用于确认 DSH 进程将使用哪个代理,并检测该代理是否可达。
适用场景与注意¶
适合以下场景:
- 需要 DSH agent 抓取外部网站、文档或 API
- 本地已有可用 HTTP 代理
- 希望把代理抓取和代理诊断放在统一工具中
- 希望避免每个抓取动作都单独处理代理地址
使用前需要注意:
- 工具运行在 DSH 宿主进程(Node.js)中,位于文件沙箱之外,因此会以当前 DSH 进程的运行环境工作。
- 安装前应检查源码与 MIT 许可证。
allowPrivate: true会放行默认被拒绝的私网 / 回环 / 链路本地地址,只在确需访问内网资源时开启。net_fetch仅处理http:/https:请求,并受 1 MiB 响应大小、30 秒超时和 5 次重定向限制。
结尾¶
izwarm195/dsh-net-tools 的价值是把本地 HTTP 代理接入 DSH 的 agent 工具链:net_fetch 负责抓取,net_proxy_status 负责诊断。
项目地址:
- GitHub:https://github.com/izwarm195/dsh-net-tools