looeton/dsh-plugin-proxy-env

前言

DeepSeek Harness (DSH) 在處理內部請求時使用固定的 undici Agent,但外部工具(如 shell、git、npm)需要通過代理訪問網絡。手動配置環境變量既繁瑣又容易遺漏。這個插件旨在解決兩個問題:在 DSH 啓動時自動注入代理環境變量,並自檢整條代理鏈路。

核心功能

  1. 自動注入環境變量
    啓動時將 HTTP_PROXY、HTTPS_PROXY、NODE_USE_ENV_PROXY、NO_PROXY 寫入主進程環境。所有子進程會自動繼承這些變量,無需手動 setx 或重啓。

  2. 自檢整條代理鏈路
    按照端口監聽、CONNECT 請求、DNS 解析、TLS 隧道檢測的順序進行測試。結果會寫入 $DSH_HOME/proxy-env/report.json。

  3. 註冊工具
    註冊 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 環境:不讀取系統代理,僅依賴配置和環境變量。
羽毛球分组比赛记分
小程序二维码

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

小夜