configure-network-proxy
Windows git/Node layered proxy configuration skill for AI agents: probe endpoints, configure per layer, verify by measurement, print exact rollback
- Stars
- 0
- Language
- PowerShell
- Created
- Oct 6, 2026
- Updated
- Oct 6, 2026
Introduction
configure-network-proxy
面向 Windows 的 git / Node 分层网络代理配置规程,供 AI 智能体自动加载使用(DSH skill)。 一个给 AI 智能体(以及人)用的 Windows 网络代理配置规程:把「git 连不上 GitHub / Node 下载超时 / 插件下载卡死」这类问题一次性诊断清楚并配好。
它同时以 DSH skill 的形式提供——放进 %DSH_HOME%\skills\ 后,智能体遇到相关任务会自动加载。
它解决什么问题
同一台机器上至少有三套互不相通的代理机制,很多人只配了其中一套,于是出现「浏览器能上、git 不能」「git 能 clone、插件下载却超时」这类怪现象:
| 机制 | 谁在用 | 读什么配置 |
|---|---|---|
| git(libcurl) | git clone/fetch/ls-remote、pnpm 的 github: 依赖 | 自己的 http.proxy / URL 级配置,或 http_proxy 环境变量 |
| 系统代理(WinINET) | 浏览器、Electron 渲染进程 | 注册表 Internet Settings |
Node fetch(undici) | DSH 主进程、pnpm 的 URL 下载、各类 Node 工具 | 默认什么代理都不读;Node ≥ 24 需 NODE_USE_ENV_PROXY=1 才读 |
本 skill 会分层次实测、按需配置,而不是让你反复试。
主要特性
- 一次运行完成勘察 → 配置 → 对照验证 → 打印回退命令,不拆成多次读写全局配置
- 优先尊重既有配置:代理端点优先采用环境变量/系统代理里已写明的,而不是「碰巧也在监听的其它端口」
- 只写最小影响面:git 层使用 URL 级配置
http.https://github.com.proxy,不碰全局http.proxy - 用测量说话:直连与代理各测一次比差值,
VERIFIED段通过才算成功——写进去了不等于生效 - 精确回退:记录每个键的原值再还原,不会用「一律清空」破坏你原有的代理设置
- 死端口技巧:把代理指向
127.0.0.1:9来精确判定某个客户端到底有没有读代理配置
安装
# 复制整个目录到 DSH 的 skills 目录
Copy-Item -Recurse .\configure-network-proxy "$env:USERPROFILE\.dsh\skills\"
使用
# 先干跑,只看勘察与实测结果,不写任何配置
& powershell.exe -NoProfile -ExecutionPolicy Bypass -File `
".\scripts\configure-network-proxy.ps1" -WhatIf
# 正式配置:自动勘察端点,并把 deepseek.com 加入 NO_PROXY 白名单
& powershell.exe -NoProfile -ExecutionPolicy Bypass -File `
".\scripts\configure-network-proxy.ps1" -NoProxyExtra deepseek.com
| 参数 | 作用 |
|---|---|
-ProxyUrl | 显式指定代理端点;省略则自动勘察(环境变量 → 系统代理 → 代理客户端进程的监听端口) |
-NoProxyExtra | 追加 NO_PROXY 白名单,只能放能直连的域名 |
-Layers | git / node / both(默认)/ none(只勘察) |
-NodeTestAssetUrl | 用于测速的 Releases 资产 URL,建议换成一个你自己关注的大文件 |
-WhatIf | 只勘察与实测,不写任何配置 |
没有 pwsh 7 时用
powershell.exe;Windows 默认执行策略是Restricted,-ExecutionPolicy Bypass不能省。
关于 NO_PROXY 的判断准则
只有一条:这个域名离开代理还能不能活。
- 国内可直连的模型 API、内网服务、自建中转站 → 加
- 必须走代理才能访问的(OpenAI / Anthropic / Google 等)→ 绝对不要加
NO_PROXY 支持后缀匹配,写 deepseek.com 即可覆盖 api.deepseek.com。
输出说明
| 段落 | 含义 |
|---|---|
PROBE | 勘察到的候选端点、选中哪个、为什么 |
BASELINE | 未配置代理时的实测(直连能否连、耗时、速度) |
APPLIED | 实际写入的配置项(含作用域) |
VERIFIED | 配置后的对照实测,逐项 PASS / FAIL |
NEXT | 需要你做的事(通常是重启某个程序) |
ROLLBACK | 精确回退命令 |
WARN | 不影响成功、但需要知晓的副作用 |
退出码:0 成功 / 2 未发现可用代理(此时不会瞎写配置)/ 3 配置写入但验证失败 / 4 无可回退状态。
回退
& powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\rollback-network-proxy.ps1
原值备份在 %LOCALAPPDATA%\dsh-network-proxy\state.json,回退时逐项还原。
平台支持
目前是 Windows(PowerShell 5.1 兼容)。macOS / Linux 的等价做法见 SKILL.md 最后一节。
已知限制
- Node 侧测试需要能找到
node(PATH 或 DSH runtime),找不到会跳过并明确告警 - 不会替你判断「哪些域名该进
NO_PROXY」——这是需要决策的事,文档给了准则与实测方法 - 默认测速资产是一个示例 GitHub Release 文件,建议用
-NodeTestAssetUrl换成你自己的大文件,以验证是否会被下载器的硬超时卡住
License
MIT