DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

minutiae3 /

minutiae3/dsh-tier-brain

Verified

发送前判断这句话的难度,给出建议的模型与推理等级:只建议,不改请求。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@328e785a

dsh-tier-brain(v0.1.0)

在你发送之前,看一眼这句话有多难,然后只告诉你两件事:

建议的模型 · 建议的推理等级

就这两件事。没有分数、没有难度条、没有"为什么"按钮、不弹窗、不接管输入框,也不会替你改模型——它只建议,请求该怎么发还是怎么发。

它长什么样

聊天输入框的上方外侧会出现一枚小胶囊:

● deepseek-flash · off
  • 左侧色点:🟢 省档 / 🟡 平档 / 🔴 强档
  • 高峰时段末尾会多一个橙色 · 高峰(谷时没有,不占位)
  • 会话已经很长(读入 ≥48K token)时,末尾会多一个灰蓝 · 长上下文
  • 只有当前对话界面的输入框有内容时才出现
  • 切到设置、插件市场、别的会话——它立刻消失(只认 [data-composer-seat] 里的真实会话输入框)
  • 发送后输入框清空,它自动收起

三档含义

档位 建议模型 推理等级 适合什么样的活
🟢 省档 deepseek-flash off 打招呼、问一个事实、查个词、格式转换、翻译短句
🟡 平档 deepseek-flash high 一般开发任务、解释、改代码、跑命令、中等排障
🔴 强档 deepseek-v4-pro high 架构设计、跨文件重构、复杂并发、长文产出、有取舍要权衡的决策
🔴 强档(极难) deepseek-v4-pro max 安全审计、复杂 code review、疑难调试——只在分数过线时自动出现

强档需要你的 provider 里已配置 deepseek-v4-pro;没有的话它只是一句提示。

判断依据(这是重点)

不是"看到'重构'两个字就加 20 分"那种词表。做法分两步:

第一步:先认任务类型,给一个基准分(同一类活的天然难度):

类型 基准分 典型信号
确认 / 寒暄 5 好、谢谢、可以、行
事实查询 12 是什么、多少、在哪、有没有
翻译 / 格式化 15 翻译、润色、转成、排版
解释概念 20 为什么、怎么理解、原理、区别
文档 / 写作 25 写一段、总结、说明、README
读代码 28 看看这段、解释这个函数、这行什么意思
运维 / 安装 35 安装、配置、启动、端口、权限、npm、git
调研 / 方案 35 你觉得、可行性、思路、建议、有什么影响
改代码 42 把…改成、加上、删掉、换成
调试排障 46 报错、不生效、变卡、失败、排查
从零构建 50 做一个、写一个、搭建、开发、实现
审查 / 评估 55 检查一遍、有没有问题、review、审计
重构 60 重构、抽出来、拆分、合并、清理冗余
架构设计 68 架构、设计一套、技术选型、并发模型

取命中权重最高的那一类;同一类被反复提及时分数只做对数增长,防止"长文堆词"把难度刷虚高。

第二步:按上下文加减(幅度都有上限,不会一项定生死):

  • 篇幅:>1600 字 +12,>600 字 +9,>200 字 +5;≤14 字 −6
  • 代码块 ≥4 段 +8,≥2 段 +5;含文件路径 +3;含 URL +2
  • 范围词(所有/全部/整个/全面/逐一)+6;多步骤表述(先…再…然后)+4
  • 硬约束(兼容/测试/边界/不破坏/性能/安全)出现 1 个 +4、≥2 个 +7
  • 问"为什么"且不是一句话 +4
  • 明确说"简单/只要/随便"且不是重活、不是开放讨论、篇幅短 → −8
  • 同一会话里越往后 +2 / +4;之前工具调用失败过 ≥2 次 +5
  • 上下文规模(上一轮真实读入的 token):≥12K +1、≥32K +3、≥96K +5
  • 会话已经 ≥4 轮且上下文 ≥48K 时,省档会被抬到平档——见下一节
  • 上一轮已经是强档、这一轮落在平档但分数接近强档线 → 保持强档(上下文已经很难了,别突然降档)

分档线:< 32 → 省档;32–55 → 平档;≥ 56 → 强档。

阈值故意把"难"这一侧放宽:把难题误判成省档、给出一个明显不够用的模型,比反过来更伤人。这也是它现在偏保守的原因。

为什么是这几个组合(依据)

不是拍脑袋定的三档。真实四档是 off / low / high / max(API 里写作 none/low/high/max),而档位在 DeepSeek 的实现里不是算力旋钮,是提示词前缀:low 什么都不加,high 前置一段"详尽推理"的长指令,max 是加强版。由此有两个反直觉的结论,直接决定了上面的组合:

  1. low 不是"便宜档"。 少了结构,模型更容易漫游、复述、绕圈——实测里 low 的 reasoning 与输出 token 反而多于 high。所以省档用 off 而不是 low:关掉思考,首字 < 0.1s、几乎零推理成本,对寒暄/查事实/格式转换完全够用;而且对简单问题,复杂模型开思考还可能"过度思考"答错。
  2. max 经常不值。 通篇实测里,给一般任务上 max,输出 token 可到 Flash 的 4 倍多,答案却一样甚至更差;在 8K 输出上限下 high/max 还会把额度全花在推理上、正文直接空响应(把 max_tokens 提到 32K 以上可解)。所以 max 只在"强档 + 架构/审查/疑难调试/重构 + 分数过线"时出现。

max 的触发门槛按类型分:审查 66 分、架构 72 分、调试 76 分、重构 78 分(满分 100)。门槛故意偏高——宁可漏推,不可乱推。

顺带一个省钱维度:高峰 / 谷时

DeepSeek 官方定价里,空闲时段价格正好是高峰时段的一半(Flash 输入 1 vs 2 元/百万 token、输出 4 vs 8;Pro 输入 4.5 vs 9、输出 13.5 vs 27)。高峰是北京时间周一至周五(不含法定节假日)9:00–12:00、14:00–18:00,其余时段(含整个周末)都算空闲。

所以卡片在高峰时段会多一个橙色 · 高峰 小标——不是催你换模型,是提醒"同档现在贵一倍,能挪就挪"。谷时不显示,免得添噪。

法定节假日无法在本地可靠判断,这里按"工作日"近似,节假日当天可能误报为高峰。

省钱杠杆的排序(按真实差价):错峰(省 50%)> 换 Flash(省 67%–78%)> 降档(不一定省,low 可能更贵)> 上 max(几乎总是更贵)。

上下文与记忆如何影响推荐

上面那套判断只看"这句话本身"。但真实花费不是这样算的:

新开一个对话,普通问答用 off 确实比 low 省一点;可一旦聊过几轮,两个对话的花费就不再符合这个直觉了。

原因是每轮的钱由两部分组成:读入的上下文 + 生成的输出。而上下文里,你刚打的那几十个字只占几个百分点——其余是系统注入:记忆提醒、压缩摘要、运行时上下文、历史消息。本机实测的一个会话里,用户输入不到 600 字,系统注入将近 3.7 万字,助手输出 21 万字,读入侧的 token 有九成以上来自注入与历史。

于是:

  • off 省的是输出,不省输入。 长会话里关掉思考,省下的那点输出相对整段上下文是零头;
  • 答错更贵。 省档一旦没答对,重来一次要再读一遍整段上下文,代价比省下的输出高一个数量级;
  • 所以长会话里的"省档"是假省钱。

插件因此读了每轮的真实用量(assistant/message 事件里的 usage),用 上下文规模 = inputTokens + cacheReadTokens + cacheWriteTokens 缓存命中率 = cacheReadTokens / 上下文规模 来跟踪"这个对话现在有多重",规则只有两条:

  1. 规模越大,难度分越高:≥12K +1、≥32K +3、≥96K +5(幅度刻意小,只推临界样本一把);
  2. 会话 ≥4 轮且上下文 ≥48K 时,不再推荐省档,自动抬到平档,并在卡片上标 · 长上下文。

寒暄是例外:说一句"谢谢"不会因为上下文长就被抬档——那确实不需要思考。

为什么门槛定在 48K / 4 轮:低于这个量级时,输出仍占成本的可观比例,省档还有意义;再往上,输出占比被上下文稀释,升档的期望收益开始稳定为正。这两个数是经验阈值,不是实测出来的最优点,用 /tier 看到"上下文 xxK"后觉得不合适,可以直接告诉我调。

/tier 里还能看到本会话的记忆注入总量(累计字数与估算 token),以及缓存命中率——命中率高说明前缀稳定、输入便宜;命中率低说明每次都在重算,这才是该优化的地方。

准确率

用你本机全部会话(~/.dsh/sessions/**/session.v4.jsonl.zstd 解出来的历史消息)去重后得到的 122 条真实提问,按"这句话需要什么样的回答"人工标成三档,再跑插件自己的评分:

指标 数值
整体准确率(122 条) 97.5%
开发集(61 条) 98.4%
留出集(61 条,调参时没看过) 96.7%
省档召回 100.0%
平档召回 95.3%
强档召回 100.0%

混淆矩阵(行=人工标签,列=插件判断):

        T1   T2   T3
T1      43    0    0
T2       3   61    0
T3       0    0   15

剩余 3 条错例都是脱离上下文的短句/英文("点 Commit 之后填完是这样"、"2d 平面住客日常活动参考饭店物语"、一段英文 truncate 报错),单看文字判不了该用哪档,属标注固有误差,未强行加规则以免过拟合。

复现:node test/eval.mjs(或 test/check.mjs 只看语法);node test/check-v02.mjs 验证四档映射与峰谷判断;node test/check-v03.mjs 验证上下文与记忆规则;node test/check-events.mjs 验证"会话事件 → 上下文统计 → 推荐"整条链。分数低于 60% 时评测脚本直接 exit 1。

评测语料只标了"这句话本身"的难度,跑分时上下文一律为空,所以上面这组数字不含长上下文升档的影响;它衡量的是纯文本判断力。

必须说清楚的局限:

  1. 122 条的标签是一个人标的,边界样本(尤其"中等 vs 难")本来就见仁见智;
  2. 语料只来自你这台机器的使用习惯,换个人、换个领域,准确率会掉;
  3. 它是关键词 + 结构启发式,不是模型判别。遇到反讽、极简的深层问题("这个为什么不行?"背后是一整天的排查)会低估;
  4. 所以它只给建议。最终选哪个模型,还是你自己点。

如果发现某类问题总被判错,把原话发我,我把它加进 test/cases.jsonl 重新校准——这是让它变准的唯一正路。

输入框里也能问

/tier 帮我重构这个模块的架构,设计一个并发方案

会打印完整依据:分类、分数、命中信号、置信度;处于高峰时段时多一行错峰提醒。这些细节只在命令里给你,不往界面上糊。

再往下是 DSH 里怎么装。

命令行也能用

不想开 DSH 的时候,直接问一句:

# 装了包(npm i -g dsh-tier-brain)之后
dsh-tier-brain "帮我重构一下这个模块,顺便补齐边界条件的测试"
dsh-tier-brain --json "把 D 盘那个未签名的系统服务删掉"
# 没装全局包,直接在源码目录里跑
node scripts/dsh-tier-brain.mjs "帮我重构一下这个模块"
echo "帮我把这个插件的 README 重写一遍" | node scripts/dsh-tier-brain.mjs

输出:

建议:deepseek-v4-pro · high  [强档]
类型:REFACTOR 评分:67
依据:REFACTOR;多重硬约束 +7

--json 输出结构化结果,方便脚本调用。

安装 / 更新

方式一:npm(推荐)

cd $env:USERPROFILE\.dsh\profiles\desktop
npm install dsh-tier-brain

然后确认 profile 的 package.json 里 dsh.profile.bundles 包含 dsh-tier-brain(npm 只负责装包,不会自动往 bundles 里加)。注意 bundles 里要写包名、dependencies 里要有对应条目,两处都得在。

方式二:本地目录(不用联网)

powershell -ExecutionPolicy Bypass -File .\install.ps1

方式三:分发包(tgz)

cd $env:USERPROFILE\.dsh\profiles\desktop
npm install file:C:/path/to/dsh-tier-brain-0.1.0.tgz

install.ps1 会:备份 profile 的 package.json → 复制 lib/ → 把 dsh-tier-brain 加进 dsh.profile.bundles(已经在里面就不重复加)。装完必须完全退出 DSH 再重开,宿主代码才会重新加载。

回滚:把 package.json.bak-tier-brain 覆盖回 package.json,删掉 node_modules\dsh-tier-brain。

版本号:package.json 与宿主 ping 返回的 version 都是 0.1.0;这是首个正式发布版。

数据与隐私

  • 输入的文字只会 POST 给本机宿主 http://127.0.0.1:<port>/dsh-tier-brain/preview,不出本机;
  • 每次判定会追加一行到 ~/.dsh/tier-brain/decisions.jsonl,只存前 200 字,用于以后复盘和校准;
  • 不读会话历史,不碰剪贴板,不改任何配置。

版本

  • 0.1.0(2026-10-21,首个正式发布版):把先前的 0.2 / 0.3 内部迭代合并为一次发布——
    • 判断规则重写为「任务分类基准分 + 上下文修饰」,不再靠零散词表加分;
    • 省档用 flash + off,平档 flash + high,强档 pro + high,极难任务自动升 max;
    • 卡片只显示模型与推理等级,切到设置 / 插件市场 / 其它会话立即消失;
    • 结合上下文与记忆:读取每轮真实 usage,≥4 轮且 ≥48K 时不再推荐省档,卡片显示 · 长上下文;
    • 高峰时段显示 · 高峰;
    • 用本机 19 个会话、122 条真实提问做评测:整体 97.5%(dev 98.4% / holdout 96.7%);
    • 测试:test/eval.mjs、test/check-v02.mjs、test/check-v03.mjs、test/check-events.mjs、test/server-smoke.mjs;
    • 附带 dsh-tier-brain 命令行(scripts/dsh-tier-brain.mjs),不开 DSH 也能给一句话打分。
  • 0.0.1:初版,难度条 + "为什么" + 词表加分(已废弃)。
—/ 5

No ratings yet

Verified DSH bundle

Commit 328e785a9f62

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout