@aiwayds/dsh-llm-proxy
DSH 插件,通过全局 undici 路由分发器提供系统代理支持及 LLM 流量分流代理功能。
AI 分析
核心用途是解决 DSH 运行环境的网络代理配置及大模型请求分流问题。适合处于受限网络环境、或需要对不同模型请求进行代理路由的用户。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fan56/dsh-llm-proxy说明文档
阅读完整 README ↗Skill(内置使用指南)
本仓库自带一个 dsh skill(skills/dsh-llm-proxy/SKILL.md):面向 agent 的配置 + 排障
使用指南,frontmatter description 内嵌触发词(dsh 代理、HTTP 代理、LLM 分流、llmProxy、
407、CONNECT 挂起、SOCKS、NODE_USE_ENV_PROXY 等),进入每会话模型目录用于路由。三种获取方式:
-
随插件自动注册(零操作):通过 npm 包或 bundle(cordis.patch.yml)挂载本插件后, skill 随插件
apply()自动注册——进入每会话 skill 目录(``, frontmatterdescription供模型路由),/dsh-llm-proxy手势可直接调出指南(已实测可用)。 -
GitHub 安装(不装插件,只要 skill):
npx skills add fan56/dsh-llm-proxy # 安装到 ~/.agents/skills/ -
手动:
git clone本仓库后,把skills/dsh-llm-proxy/拷贝或软链到~/.dsh/skills/:git clone https://github.com/fan56/dsh-llm-proxy.git ln -s "$(pwd)/dsh-llm-proxy/skills/dsh-llm-proxy" ~/.dsh/skills/dsh-llm-proxy
⚠️ 铁律:本包的 @deepseek-ai/* 只声明在 peerDependencies
(devDependencies 保留供本地构建)。请勿把它们挪进 dependencies——那会装出第二份
cordis 闭包,导致双实例崩溃(详见 dsh 生态 link-dsh-closure 机制)。
配置入口(settings.yaml 命名空间段)
dsh 插件的用户配置唯一入口是 settings.yaml 里按插件 id 命名的命名空间段。本插件通过
@deepseek-ai/dsh-settings 的 installSettingsSection 注册了 dsh-llm-proxy 命名空间
(与 harness 内置插件 llm-deepseek 的 llm-deepseek: 段同机制),所以请在
~/.dsh/settings.yaml 写:
dsh-llm-proxy:
enabled: true # 总开关,默认 true;false 时完全不动全局
systemMode: env # 'env'(默认,读环境变量)| 'off'(全部直连,仅 llmProxy 生效)
llmProxy: # 匹配列表,按顺序首条命中生效
- match: "api.deepseek.org" # 域名精确匹配(含任意端口)
proxy: "http://127.0.0.1:7890"
- match: "*.volces.com" # 通配:volces.com 本身 + 任意子域
proxy: "http://127.0.0.1:7891"
- match: "https://api.openai.com" # 完整 origin 精确匹配(大小写不敏感)
proxy: "http://127.0.0.1:7892"
要点:
- 顶层键必须是
dsh-llm-proxy:(与插件 id 一致)。写其他键(如llm-proxy:)不会 被读到,静默失效。 - 编辑 settings.yaml 热生效:settings provider 发布变更后,插件会拆掉旧 router、按新 配置重建,无需重启。
- bundle entry config(
cordis.patch.ymlinsert 行的config:)作为 base 层仍然有效; settings.yaml 段覆盖其上的同名键。 - 未挂载 settings 服务的宿主自动回退到 entry config,插件照常工作。
match 规则
| 写法 | 含义 |
|---|---|
api.example.com | host 精确匹配,任意端口都算命中 |
api.example.com:8443 | host + 显式端口必须相等(https 默认 443 / http 默认 80 会补全比较) |
*.example.com | example.com 本身及任意层级子域 |
https://api.example.com | 完整 origin 精确匹配(scheme 也要一致) |
匹配全部大小写不敏感、纯词法比较(无 DNS/IO)。IDN 域名在匹配前统一归一化为 punycode
(中文.com 与 xn--fiq228c.com 两种写法等价,pattern 和 origin 两侧对称处理)。
实现为纯函数(src/match.ts),有完整单测。
proxy 协议限制
undici ProxyAgent 只支持 http:// 与 https:// 上游代理。
socks5:// 等 schema 在启动校验时直接报错(fail-fast),README 明说:SOCKS 不支持。