前言¶
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 環境:不讀取系統代理,僅依賴配置和環境變量。