dsh-model-router:DeepSeek Harness(DSH)的薄路由策略插件

前言

DSH 的插件化方向是“一切皆插件”。在模型调用这条路径上,DSH 仍负责 providers、credentials、model catalogs、modalities 和 retries;DSH Models 页面仍是唯一的 provider configuration entry。

如果你希望按关键词确定性切换模型、限制模型路由,或单独接入一个隔离的生图工具,dsh-model-router 提供了一个薄路由策略插件。它不替换 DSH 的模型管理,而是在其之上增加规则执行。

这是什么

superboy911/dsh-model-router 是 DeepSeek Harness(DSH)的薄路由策略插件。当前版本为 v0.2.2,已验证 DSH 0.1.0-rc.6。许可证为 MIT

仓库 owner 为 superboy911package.json 中的 author 字段为 wenshan,二者不一致,维护者身份需确认。

它的核心定位是:

  • 确定性关键词路由
  • 默认关闭的白名单 model_route 工具
  • 隔离的 image_gen 生图通道(Beta)

image_gen 仍为 Beta;视频、音频和 3D 尚未实现。

核心功能

确定性关键词路由

路由规则按配置顺序执行,首次命中即停。未命中时不改动会话,继续使用当前手动选择,或由 DSH 默认模型接管。

写入会话模型头前,插件会精确校验:

  • provider
  • model
  • 可选 reasoningEffort

白名单模型切换

model_route 默认关闭,只允许切换到明确加入白名单的模型。

示例中 agentSwitch 为:

agentSwitch:
  enabled: false
  allow: []

子代理路由

子代理路由只在子代理规则命中并通过校验后安装 DSH 模型选择。插件卸载时会清理监听器。

隔离生图通道

image_gen 使用 OpenAI 兼容端点,并做隔离处理:

  • 除本机回环 HTTP 外,要求 HTTPS
  • 严格限制结果下载
  • 凭据引用留空时不发送 Authorization 请求头

会话头显示的是负责调度工具的文字模型;image_gen 工具结果才记录真正的生图提供方和模型。

其他行为

  • 读取 DSH 中启用及休眠的提供方,不重复注册文字模型适配器。
  • 仅为 Kimi K3 增加提示约束,不隐藏或重标响应块。
  • V1 配置在内存中迁移,用户明确保存后才持久化 V2。

安装与启用

运行要求

  • DeepSeek Harness 0.1.0-rc.6
  • Node.js ^22.19.0>=24.0.0
  • 开发或重新构建需要 pnpm 11

从 GitHub 安装

下面命令先获取源码,再安装到 DSH web profile。可选步骤用于复现仓库中的构建产物。

git clone https://github.com/superboy911/dsh-model-router.git
cd dsh-model-router

# Optional: reproduce the committed build. / 可选:复现仓库中的构建产物。
corepack enable
pnpm install --frozen-lockfile
pnpm build

# Install into the DSH web profile. / 安装到 DSH web profile。
npm exec @deepseek-ai/dsh -- plugin --profile web add --force "$PWD"

安装后重启 DSH Web,然后打开 Settings → Model Hub / 设置 → 模型中枢

如果需要手动启动 DSH Web:

npm exec @deepseek-ai/dsh -- web

典型用法

路由示例

下面示例在 model-router 配置中定义一条路由规则,将 architecturerefactor架构重构 映射到 deepseek-officialdeepseek-v4-pro,并设置 reasoningEfforthigh

model-router:
  schemaVersion: 2
  enabled: true
  matchCase: false
  rules:
    - id: architecture-review
      enabled: true
      keywords: [architecture, refactor, 架构, 重构]
      target:
        provider: deepseek-official
        model: deepseek-v4-pro
        reasoningEffort: high
  agentSwitch:
    enabled: false
    allow: []

未命中时不改动会话:继续使用当前手动选择,或由 DSH 默认模型接管。

Seedream 生图通道

接入 Seedream 生图通道时,先把真实密钥保存在 DSH Credentials 中,引用名使用 VOLCENGINE_ARK_API_KEY。不要把密钥值直接写进下面的配置文件。

model-router:
  mediaProviders:
    - id: volcengine-seedream
      name: Doubao Seedream 5.0 Lite / 豆包 Seedream 5.0 Lite
      capabilities: [image_gen]
      adapter: openai-images
      baseUrl: https://ark.cn-beijing.volces.com/api/v3
      credential: VOLCENGINE_ARK_API_KEY
      models:
        - doubao-seedream-5-0-lite-260128
      allowedResultHosts:
        - ark-acg-cn-beijing.tos-cn-beijing.volces.com
      defaultSize: 1920x1920

allowedResultHosts 用于限制结果下载主机;defaultSize 设置为 1920x1920

开发与验证

开发或重新构建时使用 pnpm 11。下面命令用于测试、密钥检查、构建和打包检查。

corepack enable
pnpm install --frozen-lockfile
pnpm test
pnpm check:secrets
pnpm build
pnpm pack:dry

accept:models 会真实调用外部模型并可能产生费用,因此不在 CI 中运行。

适用场景与注意

dsh-model-router 适合需要以下能力的 DSH 使用者:

  • 按关键词做确定性模型路由
  • 限制 model_route 只切换白名单模型
  • 在文字模型之外单独接入隔离生图通道
  • 在子代理规则命中后安装模型选择

使用注意:

  • 插件以当前 DSH 进程权限运行。安装前应检查源码、构建产物、依赖、配置和 MIT 许可证。
  • image_gen 仍为 Beta;视频、音频和 3D 尚未实现。
  • 凭据引用留空时不发送 Authorization 请求头;使用真实密钥时仍应按 DSH Credentials 管理。
  • 社区目录是独立站点,不代表官方应用商店。下文目录页链接来自插件线索,未在本轮已抓取资料中核实。

链接

  • GitHub:https://github.com/superboy911/dsh-model-router
  • 插件目录页:https://www.skillhub.cn/plugins/superboy911/dsh-model-router(此 URL 来自插件线索,未在本轮已抓取资料中核实)
羽毛球分组比赛记分
小程序二维码

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

小夜