dsh-local-proxy:让 DSH 桌面版 Agent 走本机代理

前言

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 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜