🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

按模型代理路由 windwhiterain/dsh-model-proxy

DeepSeek Harnessv1.0.0
windwhiterain35 天前有提交已提供中文文档扫描:未发现敏感能力

针对 DeepSeek Harness 的按模型出站代理路由,

30.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add windwhiterain/dsh-model-proxy
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/29·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 35 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-model-proxy @ 1.0.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/3 12:26:29

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按模型分流出站代理
  • 指定模型走代理
  • 代理不可用直连兜底

按模型分流 DeepSeek Harness 的出站代理:只把你指定的模型走代理,代理不可用时直连兜底。

README

由 DeepSeek 最新模型翻译生成
dsh-model-proxy 针对 DeepSeek Harness 的按模型出站代理路由,在代理不可用时回退到直连。 一个网关可以通过不同的上游为不同的模型提供服务,而这些上游的可达性并不相同。 一个被路由到受地域限制、限流或只能通过企业代理访问的上游的模型,其失败原因与同一选择器中紧邻它的模型毫无关系——相同的主机、相同的密钥、相同的请求形态。 环境代理无法表达这种区别:HTTP_PROXY 按主机路由,而两个模型共享同一个主机。 将整个网关通过代理路由会拖累正常工作的模型;什么都不路由则让出问题的模型继续出问题。 dsh-model-proxy 从每个请求中读取模型名称,只将你指定的模型通过代理发送。 路由方式 DSH、pi-ai 以及各 provider SDK 通过 globalThis.fetch 发起请求,它会解析 undici 众所周知的全局 dispatcher 槽位 (Symbol.for('undici.globalDispatcher.1'))。该插件拥有该槽位,并按以下顺序决策: 1. 来源 —— 发往 origins 之外主机的请求,或不携带请求体的请求,保持在此插件加载之前已安装的路由。 2. 代理可达性 —— 当设置了 fallbackToDirect 且代理的 host:port 拒绝 TCP 连接时,候选请求同样保持之前的路由。
展开完整文档(README 剩余 1 节)
dsh-model-proxy

针对 DeepSeek Harness 的按模型出站代理路由,在代理不可用时回退到直连。

一个网关可以通过不同的上游为不同的模型提供服务,而这些上游的可达性并不相同。
一个被路由到受地域限制、限流或只能通过企业代理访问的上游的模型,其失败原因与同一选择器中紧邻它的模型毫无关系——相同的主机、相同的密钥、相同的请求形态。

环境代理无法表达这种区别:HTTP_PROXY 按主机路由,而两个模型共享同一个主机。
将整个网关通过代理路由会拖累正常工作的模型;什么都不路由则让出问题的模型继续出问题。

dsh-model-proxy 从每个请求中读取模型名称,只将你指定的模型通过代理发送。

路由方式

DSH、pi-ai 以及各 provider SDK 通过 globalThis.fetch 发起请求,它会解析 undici 众所周知的全局 dispatcher 槽位
(Symbol.for('undici.globalDispatcher.1'))。该插件拥有该槽位,并按以下顺序决策:

1. 来源 —— 发往 origins 之外主机的请求,或不携带请求体的请求,保持在此插件加载之前已安装的路由。
2. 代理可达性 —— 当设置了 fallbackToDirect 且代理的 host:port 拒绝 TCP 连接时,候选请求同样保持之前的路由。这样代理停止运行时,你只会失去被代理的模型,而不会导致所有调用失败。
3. 模型名称 —— 读取请求体头部的 "model" 字段,当该名称匹配 models 中的某一项时,请求通过 proxy 发送。

只保留请求体的前几个分块,且保留的分块会在流的其余部分之前被产出,因此分块边界、背压和流式响应均保持不变。

direct 指的是进程原本已有的路由。如果启动环境中没有代理,那就是直连,因此未配置的部署行为与安装插件之前完全一致。

安装

在目标 profile 的 package.json 中注册该 bundle (/profiles//package.json):

{
"dependencies": {
"dsh-model-proxy": "github:windwhiterain/dsh-model-proxy"
},
"dsh": {
"profile": {
"bundles": ["@deepseek-ai/dsh-base", "dsh-model-proxy"]
}
}
}

本地开发可以使用 link:C:/path/to/dsh-model-proxy。然后安装 profile 并重启 dsh 一次;该 bundle 自带的 cordis.patch.yml 会插入 model-proxy 行,并使用以下默认值。

不要同时为 dsh 进程设置 HTTP_PROXY/HTTPS_PROXY。 启动环境中的代理会让 dsh 安装它自己的进程级 dispatcher,而本插件随后会将其视为对所有未被代理的内容要保留的路由——这与本意相反。保持启动环境为直连,让本让插件成为唯一代理任何东西的东西。

配置

- id: model-proxy
config:
enabled: true
proxy: http://127.0.0.1:10793
origins:
- opencode.ai
models:
- grok-*
- gpt--luna
fallbackToDirect: true
probeTimeoutMs: 300
probeCacheMs: 2000
peekBytes: 16384

| 字段 | 含义 |
| enabled | 为 false 时,插件不安装任何东西,每个请求保持其原有路由。 |
| proxy | 匹配的模型所使用的端点。http: 或 https:,可带凭据。 |
| origins | 其模型可被路由的主机。发往其他所有主机的请求不受影响。 |
| models | 模型模式; 匹配任意字符序列,其他每个字符匹配其自身。 |
| fallbackToDirect | 当代理拒绝连接时,匹配的请求使用先前的路由,而不是失败。 |
| probeTimeoutMs | 可达性探测的 TCP 连接超时。 |
| probeCacheMs | 一次探测结果被复用的时长,因此一串请求只探测一次。 |
| peekBytes | 在放弃查找模型名称之前,可检查的正文字节数。 |

编辑 /profiles//cordis.patch.yml 中的行(热重载),或从设置层覆盖相同的 id。无法使用的配置值会导致激活失败,而不是静默地将流量路由到错误的地方。

配方

一个网关后面的区域受限上游。 OpenCode Go 通过上游提供 grok- 和 gpt--luna,这些上游从被封锁区域会返回 unsupported_country_region_territory,而 GLM、Kimi、 DeepSeek 以及目录中的其余模型从同一区域和同一 API 密钥正常响应。上面的配置只将这两个受限系列通过受支持区域的代理发送;其他所有模型保持直连,停止代理后它们全部仍可正常工作。

直接调用该网关时,请注意它会拒绝任何没有 x-opencode-session 头的请求(400 MissingSessionID),这与本插件无关。

一个提供商位于企业代理之后。

- id: model-proxy
config:
proxy: http://proxy.corp.example:3128
origins: [api.example.com]
models: ['']

整个网关通过不同的出口,而进程的其余部分不受影响。* 与企业案例相同,使用 models: [''] —— 路由仍然是按请求进行的,因此你之后在其他地方添加的主机不受影响。

诊断

每个决策都通过宿主日志记录器记录:

dsh-model-proxy: models grok-, gpt-*-luna on opencode.ai via http://127.0.0.1:10793, direct while it is down
dsh-model-proxy: route=proxy via=http://127.0.0.1:10793 reason=model:grok-4.7
dsh-model-proxy: route=direct via=direct reason=model-other:glm-5.3-flash
dsh-model-proxy: route=direct via=direct reason=proxy-down
dsh-model-proxy: route=direct via=direct reason=origin

卸载时,插件会恢复它所替换的分发器,因此之后的插件可以仍然占用该槽位。

探测

node probe/smoke.mjs # 代理可达
node probe/smoke.mjs --proxy-down # 回退

该探测在桩上下文中启动插件,并通过已安装的调度器驱动真实请求,断言所选路由以及响应体的完整性。它从 DSH 凭据存储中读取 API 密钥,因此在运行前请将配置指向你持有的凭据。node probe/decode-matrix.mjs 将下文描述的 undici 隐患与路由逻辑隔离开来。

兼容性

- Node 24 内置 fetch。 该插件依赖 Node 自身 fetch 所解析的全局调度器槽位;除此之外不假定任何附带 fetch 的 Node 版本。
- undici 被有意固定为 ~8.10.0。 8.11.0 会丢弃 content-encoding,并在 Node 24 下接管全局调度器后,将未解码的响应体交给 fetch——进程中每个响应都以原始字节形式到达。8.10.x 和 7.x 不受影响。提高该固定版本需要重新运行探测的响应体断言。
- DSH 自有的代理包存在同样的暴露面:@deepseek-ai/dsh-http-proxy 声明了 undici: ^8.10.0,因此将锁文件刷新到超过 8.11.0 会以同样的方式破坏该 harness 自身的代理支持。

已知限制

- 仅限进程内调用。 该决策发生在 dsh 进程内部,因此由 shell 工具启动的 curl 或 git 不会遵循它。它们遵循启动环境,而本插件有意不干预该环境。
- 模型从响应体中读取。 仅在请求头中指定模型,或响应体在 model 字段之前就超过 peekBytes 的请求,不会被匹配,并保持直连路由。
- 可达但上游失败的代理不会被检测到。 该探测回答的是“是否有东西在监听”,而不是“代理是否正常工作”;该请求会失败。
- 每行一个代理。 将不同模型系列路由到不同代理需要不止一行,而当前实现不支持这一点。

许可证

MIT
预览分享卡片长什么样 ↓windwhiterain/dsh-model-proxy
分享 · DeepSeek Harness Hub
windwhiterain/dsh-model-proxy

针对 DeepSeek Harness 的按模型出站代理路由,

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部