dsh-llm-proxy:让 dsh 的 LLM 请求走可配置 HTTP 代理

前言

在 DSH 插件体系中,宿主进程可以通过插件获得新的能力。对于需要把 dsh 发出的 LLM 请求导向指定 HTTP 代理的场景,dsh-llm-proxy 提供了一个比较直接的插件方案。

它主要解决三类问题:让 dsh 的 LLM 请求走配置中的代理地址;在设置变更时即时生效,而不是必须重启;通过本地接口查看当前状态并测试连通性。

下面介绍它的定位、安装方式、配置字段和需要注意的限制。

这是什么

dsh-llm-proxy 是 DeepSeek Harness (dsh) 的全局 HTTP 代理插件。它使用 undici 的 setGlobalDispatcherEnvHttpProxyAgent 接管 dsh 的 fetch 代理路由,使 dsh 的 LLM 请求能够走配置的代理。

该项目由 Ye-Yu-Mo 维护,许可证为 MIT。插件以 bundle 包形式安装,会自动加入 dsh.profile.bundles,在下次启动时激活。

核心功能

  • 全局接管:用 undici setGlobalDispatcherEnvHttpProxyAgent 接管 dsh 的 fetch 代理路由。
  • 代理配置:让 dsh 的 LLM 请求走配置中的代理地址。
  • 热切换:设置变更后即时生效,无需重启。
  • 可恢复:插件停止或禁用时,会恢复基线 dispatcher,不留进程级残留。
  • 状态查看:提供本地接口查看当前生效模式。
  • 连通性测试:提供本地接口测试代理到目标端点的连通性。

安装与启用

先使用已核实的 GitHub 安装命令,将插件安装到 web profile:

dsh plugin --profile web add github:Ye-Yu-Mo/dsh-llm-proxy

如果是本地调试,也可以先 clone 仓库,再使用 link 安装:

git clone https://github.com/Ye-Yu-Mo/dsh-llm-proxy
dsh plugin --profile web add link:$(pwd)/dsh-llm-proxy

安装后,需要重启 dsh web,使 bundle 补丁生效。随后查看日志文件:

~/.dsh/dsh.log

看到 [llm-proxy] 日志,即说明插件已装载。

配置

可以通过 dsh 设置页的「LLM 代理」项配置,也可以直接编辑本地设置文件:

~/.dsh/settings.yaml

下面是一个示例配置:

llm-proxy:
  enabled: true
  url: http://127.0.0.1:7891
  noProxy:
    - localhost
    - 127.0.0.1
    - ::1

配置项含义如下:

  • llm-proxy.enabled:是否启用代理接管。
  • llm-proxy.url:HTTP(S) 代理地址。
  • llm-proxy.noProxy:不走代理的地址列表。

配置变更后,插件支持即时生效,无需重启 dsh。

状态与测试接口

插件提供两个本地 HTTP 接口,且 HTTP API 为 loopback-only,用于降低 LAN 探测风险。

查看当前状态:

GET /api/llm-proxy/status

调用后可以查看当前生效模式,以及 env.httpProxyenv.httpsProxy 字段。

测试代理连通性:

POST /api/llm-proxy/test

调用时需要提交以下字段:

  • url:待测试的代理地址。
  • probeUrl:目标端点地址。
  • timeoutMs:超时时间。

适用场景与注意

适合以下情况:

  • 你希望 dsh 的 LLM 请求统一走指定代理。
  • 你需要在运行时切换代理配置,而不是每次修改后重启 dsh。
  • 你需要一个本地接口确认当前代理状态,并测试目标端点是否可达。

使用前注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 项目要求 Node >=24。
  • dsh 设置页的配置命名空间白名单是硬编码的,第三方插件无法自注册;当前需要手动把 llm-proxy 加入白名单,设置页表单才可用。
  • 插件停止或禁用时,会恢复基线 dispatcher,避免留下进程级残留。
  • 安装命令请使用资料中给出的命令,不要凭名称自行拼接。

结尾

dsh-llm-proxy 的价值,是把 dsh 的 LLM 请求代理能力做成了可配置、可观察、可回退的插件能力。

项目地址:

https://github.com/Ye-Yu-Mo/dsh-llm-proxy

如果你在使用 DSH 插件目录,可以按项目名 dsh-llm-proxy 或作者 Ye-Yu-Mo 检索。

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

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

小夜