dsh-plugin-thinking-level
IdentifiedJudges the right reasoning level locally from the current draft and recent turns and switches it in one click; nudges a new session when the conversation grows long — less overthinking on simple tasks
dsh-plugin-thinking-level
把思考强度花在刀刃上:根据当前任务和最近几轮对话在本地判断合适的推理等级,一键切换;会话过长时提醒并可直接新建会话。简单任务不过度思考、节省 token,复杂任务给足推理、不因思考不足返工。

只提醒,不自动切。判定在本地完成,不联网、不上传草稿。
为什么能省 token
- 简单任务用低档:改文案、翻译、列清单这类直接任务,不需要长链条推理,低档可以减少无效的 reasoning token。
- 复杂任务用高档:排查、重构、跨端、并发这类任务,思考不足往往导致多轮返工,返工比多思考更贵。
- 只在档位不匹配时提醒:当前档位已经合适就不打扰,避免提醒本身变成噪声。
- 升档更保守:分数要到 7 才建议高档,减少“为了保险先拉满”造成的 reasoning token 浪费。
- 一键切换:走 DSH 模型菜单同一个
selectModel接口,不用再打开模型菜单逐项点。
行为
只在「这句话要我干活、而且当前档位不合适」时才提醒,三道闸门:
- 意图闸门:先判断这句是请求还是陈述。纯描述(“今天宝宝体检完了”“刚才构建失败了”“我觉得这个颜色有点深”)一律沉默;出现「帮我 / 请 / 能不能 / 改成 / 排查 / 为什么 / ?」这类请求信号才会评估。
- 历史闸门:读取最近 6 轮的 prompt / response 预览(
turnOutline),判断是不是同一个任务:- 同一任务继续、又没有新的复杂度信号:只有分数 ≥ 8 的明显升档才提醒;
- 非新任务的追问:不提示降档,避免一句话把长任务误判成简单任务;
- 明确换任务(“另外 / 换个 / 新任务 / 重新开始”):按新任务正常评估。
- 上下文闸门:子代理会话完全不提醒;模型没有可切换的推理等级时也不提醒。
另外:
- 只对提供推理等级的模型提醒。没有推理等级、或只有一个固定等级的模型,完全不显示卡片;绝不用一套假想的「低/中/高」去套别的模型。
- 档位名用模型自己的写法:
Low / High / Max、Minimal / Low / Medium / Xhigh / Max之类都按 catalog 原样显示;模型没有high时落到最接近的真实档位(例如三档模型的Xhigh),不凭空造档。 - 输入框为空、以
/开头的命令、或少于 6 个字符时不提醒。 - 当前档位已经合适时不打扰。
- 项目上下文:工作区路径包含
baby_app,且草稿或最近几轮提到安卓 / 鸿蒙 / iOS / Flutter / ArkTS / SwiftUI 并要改动时,会按三端口径同步规则升一档,理由显示“当前项目三端同仓”或“涉及三端口径同步”。 - 补漏信号:线上 / 偶尔 / 复现 / 超时 / 卡死 / 数据不一致 / 4xx–5xx 接口等,会额外加分,减少复杂排查漏报。
- 提醒卡会说明理由,例如“涉及重构、排查、根因 · 涉及三端口径同步”。
- 点 切到 High / 降到 Low(按模型实际档位名显示)会切换当前会话的推理等级;点 忽略 后同一段草稿(小改动不超过 30 字)不再出现。
- 同一档位被忽略后,本会话内更苛刻才再提醒:升到高需要分数 ≥ 8、中需要 ≥ 5,降档只提醒一次。
判定规则
本地启发式,不调用模型,零网络:
- 意图信号(先决条件):帮我、请、麻烦、能不能、看下、改成、修一下、实现、生成、发布、排查、为什么、如何、是不是,或以问号结尾。
- 强信号:架构、重构、排查、调试、根因、并发、性能、安全、迁移、跨端、协议、算法、实现、开发、插件、集成、兼容、崩溃、报错、异常、数据丢失等。
- 中信号:修改、新增、修复、检查、测试、接口、字段、配置、评估、验证等。
- 弱信号:翻译、格式化、改名、文案、列出、颜色、字体、简单、只需要等。
- 结构信号:文本长度、代码块、堆栈/报错、多个文件路径、多步连接词、多个问号、约束数量。
分数 >= 7 → 高,3–6 → 中,<= 2 → 低;追问时只放行 >= 7(同一任务继续要 >= 8),不再提示降档。省 token 优先,所以升档比旧版更保守。关键词和阈值都在 lib/client.js 顶部的常量里,按自己的习惯改即可。
会话过长提醒
同一个会话继续太久,历史上下文会越来越长,每轮更慢、更贵。达到阈值时,输入框为空会显示一张“建议新开会话”卡片:
- 已结束轮次 ≥ 25(唯一触发条件;token 只作为卡片的展示指标,不再触发提醒)。
卡片上的估算计费考虑缓存命中,不是简单累加:
effective = uncachedInputTokens + cacheWriteTokens + outputTokens + cacheReadTokens × 0.1
cacheHit = cacheReadTokens / (uncachedInputTokens + cacheReadTokens + cacheWriteTokens)
缓存命中率高的会话里大量 token 是约 1/10 单价的缓存读取,估算计费按这个口径给出。卡片会显示轮次、累计 token、缓存命中率和估算计费。
- 新建会话:在当前工作区直接开一个新会话(
ctx.sessions.create+open),按钮有加载态,失败会显示原因。 - 本会话不再提醒:忽略后,再增加 15 轮才会重新提示。
- 有草稿时优先显示档位提醒,不抢位置。
安装
dsh plugin --profile desktop add github:zmd12345/dsh-plugin-thinking-level
本地开发安装:
dsh plugin --profile desktop add /path/to/dsh-plugin-thinking-level
安装后刷新页面;如果 host 没有热加载到新的 bundle,重启一次 DSH Desktop。
隐私与副作用
- 只读取当前输入框草稿和最近 6 轮对话预览,用于本地判断是否同一任务。
- 不发送草稿到任何服务器,不写入文件。
- 只有你点“切换”时,才会调用 DSH 的
selectModel修改当前会话的推理等级。 - 点“忽略”不会修改任何设置。
开发与测试
node test/client.test.mjs
测试直接加载 lib/client.js,校验 __ModuleLoader__ 协议、导出、17 条草稿判定、5 条追问判定、4 条历史上下文判定,以及会话指标;组件用例覆盖档位卡、会话卡、加载态和忽略。
English
Suggests the right thinking level for the current draft and can switch it in one click: simple tasks do not burn tokens on overthinking, hard tasks get enough reasoning to avoid rework. The check is a local heuristic; the draft never leaves your machine. Nothing changes until you click the switch button.
License
MIT
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.4.0 | — | — |
| 0.4.2 | — | — |
Comments
Loading…
Similar plugins
Stops compaction summaries and session titles from burning their output budget on reasoning, by lowering the thinking level and raising the token floor for auxiliary calls only.
★ 0
dsh plugin --profile web add dsh-aux-degradeby imkingjh999
DSH plugin: auto reasoning_effort (low/high/max) per turn via MiniMax complexity scorer + token ledger + per-reply metadata label
★ 0
MIT
TypeScript
Aug 26, 2026
dsh plugin --profile web add dsh-adaptive-effortby kolawong
DSH plugin: pick separate models and reasoning efforts for the main session, subagents, and plan mode.
★ 0
MIT
TypeScript
Oct 17, 2026
dsh plugin --profile web add dsh-plugin-model-dispatchby DC1024
DSH plugin: sync model-catalog reasoning levels (reasoningEfforts) from what the provider advertises on /v1/models — sync_reasoning_levels tool plus a one-click button in the Models settings page.
★ 0
MIT
JavaScript
Oct 17, 2026
dsh plugin --profile web add dsh-effort-syncA lightweight plugin that adds model thinking token statistics to the bottom Dock and the end of each conversation.
★ 0
↓ 909/wk
dsh plugin --profile web add dsh-thinking-token-statby peterwangze
DSH (DeepSeek Harness) plugin: unified default reasoning level (thinking effort) for all models — per-model defaults with capability probing, live call statistics, one-command install via dsh plugin
★ 2
NOASSERTION
JavaScript
Sep 12, 2026
dsh plugin --profile web add dsh-reasoning-level