前言¶
DeepSeek Harness(DSH)的命令行启动路径会调用 installProxyFromEnvironment(),将代理环境变量转化为进程级的路由策略。而 DSH 桌面版的启动路径缺少这一步,导致桌面版中 agent 自带的 web_fetch 工具始终直连。当网络环境需要通过代理访问时,直连会导致请求失败(例如报错 URL hostname resolves to a non-public IP address)。dsh-local-proxy 插件用于填补这一缺口,使桌面版 Agent 的网络请求能够走本机的 HTTP 代理。
插件定位¶
dsh-local-proxy 是一个 DSH 插件,由 WoodSettler 维护。它旨在解决 DSH 桌面版无法使用系统代理的问题,让 agent 的网络流量使用本机的本地 HTTP 代理。
核心功能¶
该插件仅做两件事:
1. 查找代理:优先读取代理环境变量(HTTPS_PROXY、HTTP_PROXY、ALL_PROXY)。若未设置,则读取 Windows 系统代理注册表(HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings)。仅接受回环地址。
2. 使用代理:通过 DSH 的 installProxyFromEnvironment 安装进程内 dispatcher,并将代理变量发布给子进程。在 Node.js 环境下,还会设置 NODE_USE_ENV_PROXY=1。
安装与启用¶
安装插件需要使用 --profile desktop 参数。安装后,插件会自动将自身添加到 dsh.profile.bundles。安装完成后,重启 DSH。
dsh plugin --profile desktop add github:woodsettler/dsh-local-proxy
典型用法¶
提供三种安装方式:
* 从 Git 仓库安装:
dsh plugin --profile desktop add github:woodsettler/dsh-local-proxy
- 从 npm 安装:
dsh plugin --profile desktop add dsh-local-proxy
- 从本地检出安装(在目录内运行):
dsh plugin --profile desktop add .
适用场景与注意¶
- 适用场景:在 Windows 系统上使用 DSH 桌面版,且需要通过 HTTP 代理访问网络资源的场景。
- 注意事项:
- 仅支持 Windows 系统,非 Windows 系统不可用。
- 插件不会检测代理是否可用或节点是否存活。如果代理配置错误,需要自行修复。
- 插件不处理 TUN 模式、PAC 解析或端口扫描。
- 任何步骤出错时,插件只记录日志,不会破坏原本可用的直连网络。
- 日志位置:
<DSH_HOME>/dsh-local-proxy(DSH_HOME默认为~/.dsh)。
结尾¶
本插件解决了 DSH 桌面版 Agent 在代理环境下的直连问题,使开发者能在代理环境下正常开发。更多细节可参考插件目录或 GitHub 仓库。