Ye-Yu-Mo/dsh-llm-proxy

Ye-Yu-Mo★ 1JavaScript最后同步: 2026-08-14

在 GitHub 打开

DeepSeek Harness (dsh) 全局 HTTP 代理插件:undici setGlobalDispatcher + EnvHttpProxyAgent,配置化、热切换、可观测

README 摘要

dsh-llm-proxy DeepSeek Harness (dsh) 的全局 HTTP 代理插件:用 undici setGlobalDispatcher + EnvHttpProxyAgent 接管 dsh 所有 LLM 请求的代理路由。配置化、热切换、可观测。 为什么需要它 dsh(DeepSeek Harness)用 node 内置 fetch (undici)发 LLM 请求,而 undici 默认不读 http proxy / https proxy 环境变量 。如果你的 LLM 端点(如 llm-proxy 网关)必须走代理才能访问,dsh 会直连超时。 本插件在 dsh 进程内用 setGlobalDispatcher(new EnvHttpProxyAgent(...)) 全局接管 fetch 的代理路由: - ✅ 让 dsh 所有 LLM 请求走你配置的代理 - ✅ 热切换 :设置变更即时生效,无需重启 - ✅ 可逆 :插件停止/禁用时恢复基线 dispatcher,不留进程级残留 - ✅ 可观测 : /api/llm-proxy/status 查看当前生效模式, /api/llm-proxy/test 测试任意代理连通性 安装 或从源码 link(开发调试): 配置 通过 dsh 设置页的「LLM 代理」项,或直接编辑 /.dsh/settings.yaml : 字段 类型 默认 说明 enabled boolean false 是否启用代理接管 url string '' HTTP(S) 代理地址,如 http://127.0.0.1:7891 noProxy string[] ['localhost','127.0.0.1','::1'] 不走代理的地址 ⚠️ dsh 设置页只暴露白名单内的配置命名空间。若设置页显示「表单不可用」,需把 llm-proxy 加入 dsh-host-apiproxy 的 WEB SETTINGS NAMESPACES (当前为 dsh 已知限制,见下)。 HTTP API 插件注册两个宿主路由(loopback-only,防 LAN 探测): GET /api/llm-proxy/status 当前生效模式: mode 取值: - setting :走设置的 url - env :读环境变量代理( HTTP(S) PROXY ) - direct :直连(无代理) POST /api/llm-proxy/test 测试任意代理到目标端点的连通性: 开发 目录结构: 已知限制 dsh 设置页的配置命名空间白名单( dsh-host-apiproxy 的 WEB SETTINGS NAMESPACES )是硬编码的,第三方插件无法自注册暴露。目前需要手动把 llm-proxy 加入白名单才能让设置页表单…

在 GitHub 查看完整 README →
Agentsagentdeepseek-harnessdshdsh-pluginhttp-proxyllmnodejsproxy

分类