前言¶
在 DeepSeek Harness(DSH)里做智能体开发时,模型请求、MCP、网页抓取和命令工具往往共用同一套出口网络。官方自带的 @deepseek-ai/dsh-http-proxy 只在启动时读取 HTTPS_PROXY 等环境变量,且不读取操作系统代理设置。结果是:只在代理软件里打开「系统代理」时,Harness 仍可能直连;换代理要改环境变量并重启;各子系统对代理的策略也不一致。
dsh-network-proxy 由社区维护者 baizhizzl 发布,属于客户端类 DSH 插件。它在 设置 → 通用设置 增加一行 HTTP 代理,支持直连、跟随系统、自定义三种模式,保存后立即生效,无需重启 Harness。
这是什么¶
包名:@local/dsh-network-proxy。许可:MIT。支持平台:Windows(通过 WinINET 相关注册表读取系统代理)、macOS(scutil --proxy)。
插件在运行时检测系统代理(含 PAC),把策略挂到进程级 fetch 的 dispatcher 上,并支持原地热切换;同时把策略同步到子进程常用的 HTTP_PROXY / HTTPS_PROXY / NO_PROXY 等环境变量。
核心功能¶
系统代理检测¶
- Windows:读取
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings下的ProxyEnable、ProxyServer、ProxyOverride、AutoConfigURL;支持http=…;https=…分协议代理与 PAC(内置精简 PAC 求值器,按目标域名求值)。 - macOS:通过
scutil --proxy获取系统代理。 - 系统代理开关关闭时,界面仍会展示检测到的代理地址,便于在系统设置里打开代理。
热切换与覆盖范围¶
保存设置时直接替换全局 dispatcher,下一次请求即生效。覆盖 Harness 进程内走 Node 内置 fetch() 的出口,包括模型、MCP HTTP、web 搜索/抓取、各命令工具里的 fetch()。
不覆盖:桌面窗口 Chromium 自身网络栈(本身跟随系统代理)、遥测(node:http,设计上直连)、模型生成的 PTC/workflow 子进程(由 Harness 自有代理策略管理)。
旁路与子进程¶
localhost、127.0.0.0/8、::1、0.0.0.0 永远直连;系统旁路列表(如 <local>、*.example.com、10.0.0.0/8)一并生效。
子进程侧设置 NODE_USE_ENV_PROXY,使 curl、git、pnpm 等跟随同一策略。
持久化与恢复¶
选择写入 $DSH_HOME/network-proxy.json,下次启动由 Host 半自动应用。插件卸载或停用会恢复启动时的 dispatcher 与环境变量。
安装与启用¶
方式一:会话内让 Agent 安装¶
在 Harness 会话中说:
安装插件 https://github.com/baizhizzl/dsh-network-proxy
Agent 会调用插件管理器的 install_bundle,参数为:
git+https://github.com/baizhizzl/dsh-network-proxy.git
方式二:本地目录¶
plugin_manager install_bundle target: /path/to/dsh-network-proxy
安装完成后打开 设置 → 通用设置,在「会话显示」下方可见 HTTP 代理 一行。
三种模式¶
| 模式 | 行为 |
|---|---|
| 直连 | 丢弃代理;进程内 fetch() 与子进程均直连 |
| 跟随系统 | 读取操作系统当前代理;系统代理关闭时直连,界面显示检测到的代理地址 |
| 自定义 | 使用填写的 http://host:port(可带 user:pass@),保存后立即生效 |
默认模式为 跟随系统。
典型用法¶
- 本机已用 Clash、Surge 等工具开启「系统代理」:安装插件后保持 跟随系统,保存即可让模型与 MCP 走同一出口,无需再设
HTTPS_PROXY并重启 Harness。 - 仅需临时指定固定代理:选 自定义,填写例如
http://127.0.0.1:7890,保存后立刻生效。 - 系统里刚改过代理开关或 PAC:在设置里点「重新检测」,或重新打开设置页刷新(插件不会实时监听系统代理变更)。
适用场景与注意¶
适合在 Windows / macOS 上日常依赖系统代理、又希望在 Harness 内统一出口、且不想频繁重启的开发者。
安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。插件以当前 DSH 进程权限运行,自定义代理 URL 会进入本地配置,请勿在不可信环境填写敏感凭据。
已知限制(摘自项目 README):
- 仅支持
http:///https://代理;SOCKS 会提示暂不支持。 - PAC 求值器覆盖常见辅助函数;
dnsResolve在同步求值中返回空串,复杂 PAC 可能退化。 - 系统代理凭据(少见)不解析;自定义模式支持
user:pass@。 - 修改系统代理后需手动「重新检测」或重开设置页。
结尾¶
dsh-network-proxy 补上了 Harness 在运行时读取系统代理、统一 fetch 与子进程环境、并热切换 HTTP 代理这一段能力。目录与详情可在 SkillHub 插件页查看,安装与行为以 README 为准。
- 目录页:https://www.skillhub.cn/plugins/baizhizzl/dsh-network-proxy
- GitHub:https://github.com/baizhizzl/dsh-network-proxy