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

模型路由与成本优化 tianji-qingtian/dsh-model-router

DeepSeek Harnessv0.7.1
tianji-qingtian35 天前有提交已提供中文文档扫描:未发现敏感能力

模型路由与成本优化器:简单问题由 flash 直答、故障自动降级、会话 token/缓存/成本实时面板 | 为 DeepSeek Harness 打造的路由与成本优化器:简单问题由 flash 快速作答、故障自动降级、实时 token/缓存…

34.9/100
综合分
7
GitHub 星标
201
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-model-router
npm 源 · dsh-model-router 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · model
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 35 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

✓npm 包dsh-model-router @ 0.7.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 02:40:10

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

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

扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-commands@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

2 张 · 点击查看大图

功能亮点

  • 简单问题flash直答
  • 故障自动降级
  • token成本实时面板
v0.8.02026-08-14
· 新功能 auto 模式下,裁判判定为简单问题(SIMPLE)后不再直接回答,而是弹内置问题框让用户选择: · ⚡ 快速回答(flash):更快、成本更低 · 主模型回答:更高质量、完整上下文 选主模型、关掉弹窗、子代理会话或没有问题 UI 时,自动回退正常流程。问题文案跟随提问语言(中/英)。 dsh plugin --profile web add "github:tianji-qingtian/dsh-model-router#v0.8.0" dsh web
v0.7.22026-08-14
· 修复 点「关闭」后,重启 / 刷新界面时面板仍显示关闭,但行为回落成快速回答——因为关闭只写进了进程内存,重启即丢。 修复:agent/pre-step 在内存无覆盖时回落到投影的持久化 mode(由 command/run 事件折叠),关闭状态跨重启保持。 dsh plugin --profile web add "github:tianji-qingtian/dsh-model-router#v0.7.2" dsh web
v0.7.12026-08-14
· 修复 面板的 Auto / 关闭 按钮点击无效——客户端用 ctx.get('remote') 裸查远程面,从未解析成功,错误还被吞掉。 修复:按官方插件范式在插件对象上硬注入 remote / remote.commands(goal 等官方插件同款写法),失败改为打日志。安装更新后重启即可正常切换。 dsh plugin --profile web add "github:tianji-qingtian/dsh-model-router#v0.7.1" dsh web
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-model-router DeepSeek Harness(dsh)的模型路由与成本优化插件。简单问题直接在便宜模型上作答(零前缀、无缓存税),瞬态故障自动降级,并在输入框下方实时显示每个会话的 token / 缓存命中 / 成本统计。 Harness 目前处于 developer preview,迭代很快,可能有不兼容变更。 For English, see README.md。 功能 - 便宜模型裁判路由 — 明显重活(强关键词 / 超长文本)直接走主模型,零额外延迟。其余请求交给一次零前缀 flash 裁判调用(SIMPLE / AGENTIC 一个词,64 token 上限,关闭思考)。裁判还会看到上一条 assistant 回复,因此依赖上下文的追问(它 / 这个 / 继续 …)绝不会被误判成"无上下文作答"。 - 回答前先问用户 — auto 模式下,每次命中 SIMPLE 都会通过内置问题 UI 询问:⚡ 快速回答(flash) 还是 主模型回答。选主模型(或关掉弹窗)走正常流程;子代理会话自动回退。问题文案跟随提问语言。
展开完整文档(README 剩余 1 节)
dsh-model-router

DeepSeek Harness(dsh)的模型路由与成本优化插件。简单问题直接在便宜模型上作答(零前缀、无缓存税),瞬态故障自动降级,并在输入框下方实时显示每个会话的 token / 缓存命中 / 成本统计。

Harness 目前处于 developer preview,迭代很快,可能有不兼容变更。

For English, see README.md。

功能

- 便宜模型裁判路由 — 明显重活(强关键词 / 超长文本)直接走主模型,零额外延迟。其余请求交给一次零前缀 flash 裁判调用(SIMPLE / AGENTIC 一个词,64 token 上限,关闭思考)。裁判还会看到上一条 assistant 回复,因此依赖上下文的追问(它 / 这个 / 继续 …)绝不会被误判成"无上下文作答"。
- 回答前先问用户 — auto 模式下,每次命中 SIMPLE 都会通过内置问题 UI 询问:⚡ 快速回答(flash) 还是 主模型回答。选主模型(或关掉弹窗)走正常流程;子代理会话自动回退。问题文案跟随提问语言。
- 直答式快速回答 — 用户选快速后,插件拒绝该步骤,用零前缀单次流式调用在便宜模型上作答(无缓存 miss 税),并把问答直接写入会话日志(伪造 step 包络)——用户看到的是普通问答,答案前缀带 ⚡ 快速回答 / Quick answer · 标记(随提问语言),主模型零参与,不产生子代理会话、relay 卡片或 toast。主会话的模型和前缀缓存全程不受影响。
- 视觉感知路由 — 带图消息自动走目录里有图像能力的模型(如 deepseek-v4-flash-vision-exp),裁判与直答都走视觉模型;目录里没有视觉模型时回退主模型,绝不会在纯文本 flash 上"盲答"图片问题。
- 尊重模型选择器 — 插件从不覆盖输入框选择器 / selectModel 里选择的模型,包括中转通道(如 kabuai):agent/request 原样放行 harness 请求的配置,直答一律跑在当前 provider 自己的便宜模型上。(已移除"漂移修复"——它的成因,即伪造 request/header,已在 v0.9.2 从根上修掉。)
- Auto / 关闭 开关 — 面板按钮和 /router auto|off(以及 route_model 工具)只做一件事:开启或关闭本会话的快速回答。没有需要配置的按请求模型切换。
- 自动降级 — 瞬态故障(RATE_LIMIT / SERVER / TIMEOUT / EMPTY_RESPONSE)把该轮降级到便宜模型并重试一次;其余交给 provider 自带的重试策略。
- 真实用量计量 — 会话投影折叠持久化日志:真实适配器 token 用量(输入 / 输出 / 缓存读 / 缓存写 / 推理)、分模型明细、按模型档位价格表估算的成本。投影可重放、冷会话也能出数。
- 输入框面板(中英双语) — Auto / 关闭 开关、当前模型、miss/out/cache%/≈$ 行、QA×N 快速回答计数(每次直答有短暂内联高亮)、分模型用量明细。读数据走 useProjection(响应式,无 RPC);开关复用内置 commands remote。UI 文案经 harness locale 服务中英本地化。

截图

快速回答以普通对话消息形式呈现,带 ⚡ 快速回答 / Quick answer 标记:

快速回答演示

输入框下方的路由面板 —— Auto / 关闭 开关、当前模型、实时 token / 缓存命中 / 成本统计与分模型用量明细:

路由面板

安装

前置条件

dsh CLI 必须在 PATH 上。本版本对应 harness 0.2.0-rc.1(更早的 harness 请装 tag v0.9.4)。如果你之前只用 npx 跑过 harness,dsh 没装,会报 zsh: command not found: dsh —— 先全局安装:

npm install -g @deepseek-ai/dsh

如果你的 pnpm 全局 bin 目录在 PATH 上,pnpm add -g @deepseek-ai/dsh 也可以(否则 pnpm 会让你先跑 pnpm setup)。或者跳过全局安装,把下面命令都加 npx @deepseek-ai/dsh 前缀。

添加 bundle

1. 把 bundle 加入你的 web profile(pnpm 执行;lib/ 产物已提交在仓库里,安装时不跑构建脚本)。推荐用 release tag(#v0.9.5);#main 跟随最新提交。
dsh plugin --profile web add "github:tianji-qingtian/dsh-model-router#v0.9.5"

2. 用该 profile 重启 harness —— add 只改 profile 文件,运行中的实例不会热加载新 bundle
dsh --profile web

重启后 ⚡Router 面板出现在输入框下方,/router 命令和 route_model 工具随宿主半场加载注册。可在 Settings → Plugins 里确认 dsh-model-router 已列出。

某个会话里可能还跑着一个同名的动态原型(session-local);它与安装的 bundle 无关,随 harness 进程消失。

工作原理

| 环节 | 机制 |
| 步骤分类 | agent/pre-step 瀑布 —— 强关键词快速通道,之后是一次零前缀 flash 裁判调用(SIMPLE / AGENTIC),并带上一条 assistant 回复用于引用检测 |
| 快速回答 | agent/pre-step 在便宜模型上跑一次零前缀 llm.stream 后拒绝该步骤;问答以 user/message + 伪造 step/start…assistant/message…step/end 包络写入会话日志 —— 主模型零参与 |
| 模型选择器 / 中转 | agent/request 原样放行 harness 请求的配置 —— 输入框选择器、selectModel、中转通道(如 kabuai)会话内切换均生效 |
| 故障降级 | agent/request-error 瀑布 —— 标记该轮后返回 { kind: 'retry' };重试重新进入 agent/request 落到便宜模型 |
| 统计 | sessionProjections.register('modelRouter', …) 折叠 request/header(仅用于 current / 变更记录)、command/run、assistant/message 事件 —— 用量按每条消息自带的 source.model 归因 |
| 面板 UI | conversation.composer.dock 槽位 + 标准 useProjection prop + locale 服务中英文案 |
| 手动控制 | /router auto|off 命令(commands 服务)+ route_model 工具(tools 注册表) |

便宜/强模型对在运行时从 provider 目录发现(llm.listModels):id 匹配 flash|chat|mini|turbo|haiku|lite|air|nano 是便宜候选,pro|reasoner|opus|sonnet|max|ultra|premium|r1 是强候选。原生 DeepSeek 适配器下即 deepseek-v4-flash ↔ deepseek-v4-pro。

Harness 兼容性

针对 harness 0.2.0-rc.1 构建并验证。peerDependencies 范围会在安装时和 profile 启动时被 harness 校验:声明的范围不覆盖当前 dsh --version 的插件会被拒绝(或打印 skipping profile bundle … 后被跳过),所以 harness 一升级,旧插件会从界面上静默消失。

0.2.0 对本插件的实际影响(v0.9.4 → v0.9.5):

| 变更 | 对本插件的影响 |
| assistant/message 必须内嵌其精确模型流(data.stream) | 伪造的快速回答结算事件现在带上 stream(block-start、text-delta、闭合块、usage、finish)。缺了它 harness 会在种子/载入边界拒绝该结算事件——重启后该会话日志将无法打开 |
| 移除 tool-result 内容块(工具结果现在是独立的 tool 角色消息) | agent/pre-step 快速通道按当前块词汇表打分 |
| ctx.get('commands') 裸查与注册存在竞态 | commands 改为硬注入,与兄弟插件 dsh-composer-polish 一致 |

0.1.x 老 harness 请继续用 tag v0.9.4;本版本有意不声明兼容它们——结算事件结构不同。

成本估算

价格表是模型档位估算(USD / 百万 token),在 src/index.js 顶部:

const PRICE_TABLE = [
{ test: CHEAP_RE, input: 0.27, output: 1.10, cacheHit: 0.07 },
{ test: STRONG_RE, input: 0.55, output: 2.19, cacheHit: 0.14 },
]

改成你账户的实际价格即可;面板始终用 ≈ 标注。缓存命中按缓存价计费,而非输入价。

计数语义:harness 的 TokenUsage 字段是不相交的 —— inputTokens 已排除缓存读(DeepSeek 上报 prompt_tokens = hit + miss,适配器把命中扣掉了)。因此面板显示 miss … · cache N%,命中率是 hit / (hit + miss);健康的长对话通常在 90% 以上。

已知限制

- 路由状态分两部分:auto/off 模式是持久的(由投影从会话 command/run 事件折叠,重启后保持),瞬态降级标记是进程本地的,随 harness 重置。
- useProjection 驱动的统计反映整段会话日志 —— 安装前的历史也会计入,这是有意的。
- 直答会把伪造 step 包络写进会话日志(用量按消息自带的 source.model 归因;v0.9.2 起不再伪造 request/header——它会跨重启持久化,把重启后的第一个真实调用误记到直答模型名下)。它满足当前会话不变量(步骤在真实 step 开始前追加),但这是插件与 harness 耦合最深的部分,harness 升级后值得复查。

License

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

模型路由与成本优化器:简单问题由 flash 直答、故障自动降级、会话 token/缓存/成本实时面板 | 为 DeepSeek Harness 打造的路由与成本优化器:简单问题由 flash 快速作答、故障自动降级、实时 token/缓存…

这是你的仓库?认领条目

回到顶部