前言¶
DeepSeek Harness (DSH) 在处理内部请求时使用固定的 undici Agent,但外部工具(如 shell、git、npm)需要通过代理访问网络。手动配置环境变量既繁琐又容易遗漏。这个插件旨在解决两个问题:在 DSH 启动时自动注入代理环境变量,并自检整条代理链路。
核心功能¶
-
自动注入环境变量
启动时将HTTP_PROXY、HTTPS_PROXY、NODE_USE_ENV_PROXY、NO_PROXY写入主进程环境。所有子进程会自动继承这些变量,无需手动setx或重启。 -
自检整条代理链路
按照端口监听、CONNECT 请求、DNS 解析、TLS 隧道检测的顺序进行测试。结果会写入$DSH_HOME/proxy-env/report.json。 -
注册工具
注册proxy_env_check工具,可随时执行诊断。
安装与启用¶
使用 pnpm 安装:
pnpm add github:looeton/dsh-plugin-proxy-env
在配置文件中引入:
* 通过 cordis.patch.yml 配置。
* 或在 profile 的 dsh.profile.bundles 中添加包名。
典型用法¶
- id: proxy-env
config:
proxyUrl: http://127.0.0.1:7897
noProxy: localhost,127.0.0.1,::1,api.deepseek.com
selfCheck: true
tool: true
配置项说明:
* proxyUrl: 代理地址,留空则自动探测。
* noProxy: 需要绕过代理的地址列表。
* selfCheck: 启动时是否执行自检。
* tool: 是否注册 proxy_env_check 工具。
* override: 是否覆盖已存在的同名环境变量。
* patchGlobalDispatcher: 是否动态切换全局 dispatcher 为 EnvHttpProxyAgent(需 undici 支持)。
适用场景与注意¶
- 版本要求:需要 Node.js ^22.19.0 || >=24.0.0。
- 进程环境 vs Web Fetch:此插件管理进程环境变量,不影响 DSH 内部的
web_fetch(后者使用固定 IP 的 undici Agent)。 - Windows 依赖:自检逻辑依赖
reg.exe读取系统代理,且使用文件重定向而非管道(受限于受限令牌沙箱)。 - 非 Windows 环境:不读取系统代理,仅依赖配置和环境变量。