← 返回列表
⚠ 装前注意
仿 Claude Code 推理等级滑块 DSH 插件
基本兼容但装前注意:npm 同名包「dsh-effort-slider」归属 samlingthinker/dsh-effort-slider,装到的可能不是本插件 · 最近上游提交 2026/8/17 · 已提供中文文档
综合分
38.1
GitHub 分
38.1
用户评分
—
★ Stars
15
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add 2768651338/dsh-effort-slidernpm 同名包「dsh-effort-slider」归属 samlingthinker/dsh-effort-slider,装到的可能不是本插件,改用 GitHub 源安装
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-effort-slider @ 1.2.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
npm 同名包「dsh-effort-slider」归属 samlingthinker/dsh-effort-slider,装到的可能不是本插件
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 09:26:55
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-settings用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-effort-slider
一个面向 DeepSeek Harness 的 Claude Code 风格推理强度滑块 —— 在模型菜单中点击 Effort,无需分步即可拖动,松手时吸附,并带有 WebGL 火焰拖尾;任何第三方模型/提供商都能获得真实可用的思考强度控制。
License: BSD-3-Clause
DeepSeek Harness
version
TypeScript
React
topic: dsh-plugin
中文
点击 Effort 行(官方模型菜单的第二行),而不是内置的等级列表:会弹出一个 Effort 滑块面板 —— 带有 OFF/MAX 刻度,实时显示 Low/Medium/High/Ultracode 状态;面板关闭后,强度值仍会在菜单行和模型席位触发按钮上以颜色标识。
功能 · 兼容性 · 安装 / 卸载 · 快速开始 · 配置 · 权限与数据 · 工作原理 · 故障排查 · 开发
演示截图(菜单行着色 / 模型席位触发按钮 / Effort 面板 —— 强度等级以颜色标识):
| 菜单行 | 模型席位触发按钮 | Effort 面板 |
| --- | --- | --- |
| | | |
🔧 v0.2.5 —— 修复了通用强度配置中真实落地的问题:显式的 models 数组现在会被整体替换(dsh-settings 路径操作无法遍历数组节点,否则 models 会被破坏,schema 会拒绝写入,配置会静默失败)。
🔧 v0.2.4 —— 修复了当 pi-ai 设置区段注册较晚时,通用强度配置始终无法落地的问题:现在会重试配置,直到该区段就绪(注册发生在适配器之后,且不会触发 settings/updated)。
🆕 v0.2.3 —— 模型席位触发按钮(输入框上方的「model · effort」)也会为其强度名称着色,并在菜单关闭后保持。
🔧 v0.2.2 — 修复了整树菜单重新挂载时菜单行着色失效的问题:现在绘制会进行完整扫描,并在任何 DOM 变化时重新绘制(带节流),且在面板尚未上报颜色时,会从 effort 文本推断颜色。
🆕 v0.2.1 — 面板关闭后,模型菜单 Effort 行上的 effort 值会保留其等级颜色(OFF 玫瑰灰 / Low 琥珀 / Medium 蓝色 / High 紫色 / Ultracode 亮紫色带光晕)。
✨ v0.2.0 — 任何自定义第三方模型/提供商都能获得可用的思考 effort 控制(适配器元数据供给 + pi-ai 线路级供给,热应用)。
🎛️ v0.1.0 — 初始版本:拦截官方 Effort 菜单并显示 Claude Code 风格的 Effort 滑块面板。
功能特性
| 功能 | 描述 |
| --- | --- |
| 🎚️ 无级拖动 | 连续 0–100 拖动,实时写入 reasoningEffort(16 ms 节流,拖动时不会堆积请求) |
| 🎯 释放时吸附 | 在释放 / 失焦 / 键盘结束时吸附到最近的等级,并执行一次确认写入 |
| 🔥 WebGL 火焰拖尾 | 三遍着色器(点燃 → 模糊 → 合成);火焰前锋跟随滑块,带弹簧阻尼 |
| 🏁 OFF/MAX 刻度 | 首/末等级始终显示 OFF / MAX;中间等级显示 API 返回的名称 |
| 🎨 等级状态 | Effort 名称显示在面板标题中,按等级着色/发光;关闭后菜单行和模型席位触发器保持相同颜色(v0.2.3) |
| 🌐 通用 effort | 没有 reasoning 元数据的第三方模型自动获得通用的 5 级刻度;pi-ai 模型会补丁注入线路级字典,热应用(v0.2.0) |
仅写入 reasoningEffort —— 模型选择不受影响。没有多级推理的模型会显示「当前模型不提供多档推理等级」(无多级推理可用)。
通用 effort 供给(v0.2.0)
任何自定义第三方模型/提供商都能获得在线路上真正生效的思考 effort 控制:
- 适配器元数据供给(宿主):没有 reasoning 元数据的模型会被注入通用 5 级刻度
(off/low/medium/high/max → OFF/Low/Medium/High/Ultracode),因此官方模型菜单和此面板都可选择,且请求校验通过;
- 线路级供给(宿主,pi-ai):对于缺少 reasoningEfforts 的 llm-pi-ai 模型,会补丁注入字典和 compat 线路方言
(热应用,无需重启);pi-ai 会将等级转换为真实的线路字段
(reasoning_effort / thinking / OpenRouter reasoning.effort 等);
- 客户端回退刻度:如果目录未返回推理元数据,面板仍会以通用 5 级刻度打开;
- 现有的用户声明(reasoningEfforts: false 或自定义字典)始终被尊重,绝不会被覆盖。
自定义端点支持的线路方言(设置 effort-slider.defaultDialect 或 routes.):
| 方言 | 线路效果 |
| --- | --- |
| effort(默认) | OpenAI 风格的 reasoning_effort: low/medium/high/max |
| deepseek | thinking:{type} 开关 + reasoning_effort |
| openrouter | reasoning: { effort }(OpenRouter 规范化) |
| together / zai | reasoning.enabled / thinking:{type} + 可选 effort |
| qwen | enable_thinking 开关 |
| string-thinking / ant-ling | thinking / reasoning.effort 字符串 |
兼容性
| 项目 | 值 |
| --- | --- |
| DSH 版本 | 官方安装程序,web 配置文件(已在 Windows 上验证) |
| 安装机制 | dsh plugin --profile web add(bundle 补丁 + 双半部分) |
| 依赖于 | dsh-base / dsh-web-app 的客户端运行时 / 连接 / 会话通道 |
安装 / 卸载
安装(推荐,与 dsh-navbar 相同的 bundle 机制)
dsh plugin --profile web add github:2768651338/dsh-effort-slider#main
本地构建并安装(克隆此仓库)
pnpm build
dsh plugin --profile web add file:./dsh-effort-slider
安装后,重启 DeepSeek Harness 并在网页中按一次 Ctrl+F5。
lib/ 产物已提交,因此从 GitHub 安装无需本地构建。
| 操作 | 命令 |
| --- | --- |
| 升级 | dsh plugin --profile web update dsh-effort-slider(或重新运行 add),然后重启 DSH |
| 卸载 | dsh plugin --profile web remove dsh-effort-slider,然后从 cordis.patch.yml 中移除其对应行(如有) |
快速开始
1. 安装插件,重启 DSH,按 Ctrl+F5。
2. 打开编辑器上方的模型菜单 → 点击 Effort → 出现 Effort 滑块面板。
3. 拖动选择级别;松开时自动吸附。面板关闭后,effort 值在菜单行上保持其颜色。
4. 对于没有 thinking effort 的自定义模型,面板会以通用的 5 级刻度打开;pi-ai 模型会在宿主侧对其 wire 字典进行补丁(热应用)。
DevTools 控制台中出现 [effort-slider] intercept row: ... 一行表示拦截正在工作。
配置
| 项目 | 详情 |
| --- | --- |
| 插件选项 | effort-slider 设置部分(写入 ~/.dsh/settings.yaml,热应用) |
| 默认值 | enabled: true,defaultDialect: effort |
| 环境变量 | 无自有环境变量;遵循 DSH 的 DSH_HOME 解析 |
| 敏感项 | 无 —— 不读取或存储任何密钥、令牌或凭据 |
effort-slider:
enabled: true # provisioning master switch
defaultDialect: effort # global default wire dialect
routes:
my-gateway: deepseek # per-route override
权限与数据
| 范围 | 涉及内容 |
| --- | --- |
| 文件(读取) | 无 —— 不读取或写入任何用户文件(设置通过 DSH 的设置服务进行) |
| 网络 | 无 —— 浏览器半部分仅与本地 DSH /api RPC 端点通信 |
| 凭据 | 从不读取 |
| 用户数据 | 不读取(无法访问对话内容/消息/提示词;仅通过会话通道获取当前会话的 reasoningEffort) |
工作原理
| 半部分 | 文件 | 作用 |
| --- | --- | --- |
| 宿主 | lib/index.js | 通用 effort 供给:适配器元数据包装(universalReasoning)+ pi-ai 线路补丁(buildProvisionOps,幂等,尊重用户声明)+ effort-slider 设置区段;监听 llm/adapters-updated / settings/updated 以热应用 |
| 浏览器 | lib/client.js | 捕获模型菜单中 Effort 行的点击 → 显示 Effort 面板;节流的 selectModel({ reasoningEffort }) 写入;MutationObserver 在面板关闭后保持菜单行级别颜色存活 |
浏览器半部分遵循官方外部插件约定:经典脚本 + window.__ModuleLoader__.load 工厂;
react / react-dom/client / react/jsx-runtime 为平台外部依赖;
effort.module.css 由 lightningcss 进行哈希并内联,在工厂运行时以 注入。
故障排查
| 症状 | 修复 |
| --- | --- |
| 模型菜单中没有 Effort 行 | 该模型未声明任何推理元数据,且宿主供给未生效——确认 DSH 已重启,并检查 ~/.dsh/settings.yaml 中的 effort-slider.enabled |
| 面板显示「当前模型不支持思考强度调节」 | 通用回退未激活——升级到 v0.2.0+ 并重启 |
| 拖动无效果 | 检查目标端点的线路方言是否匹配(见方言表),或为该路由设置 defaultDialect |
| 与其他皮肤插件冲突 | 如果安装了另一个拦截 Effort 行的皮肤(例如 dsh-ui-web 的 aurora 皮肤),请禁用其拦截以避免出现双重面板 |
| 重启后版本仍显示旧版本 | file: 安装是快照副本——请使用 github: 规格,或在重启前重新运行 add |
| 日志在哪里? | 宿主错误:DSH 启动日志;客户端错误:浏览器 DevTools(F12)控制台 |
项目结构
src/
index.ts 宿主半部分:通用 effort 供给(适配器元数据 + pi-ai 线路 + 设置区段)
effort-core.ts 纯逻辑:方言 → 线路映射、供给补丁(已单元测试)
client/
index.ts 浏览器半部分:拦截 Effort 行 + 面板锚点 + 菜单行着色
css-modules.d.ts
effort/
EffortPanel.tsx Effort 面板(级别 / 刻度 / 滑块 / 辉光)
useWebglFire.ts WebGL2 三通道火焰循环(弹簧跟随 + 空闲休眠)
shaders.ts 顶点 / 点燃 / 模糊 / 合成着色器
effortColors.ts 级别 → 颜色映射(面板和菜单行共用)
effort.module.css 面板样式(通过 lightningcss 内联)
cordis.patch.yml 打包补丁(插入 ui-effort-slider 行)
lib/ 构建产物(client.js 附带 sourcemap)
test/ 宿主单元测试 host.spec.mjs + host-apply.spec.mjs + client.smoke.mjs
开发
pnpm install
pnpm build # tsdown → lib/index.js(宿主半部分)+ lib/client.js(浏览器半部分)
pnpm test # 宿主单元测试 + 应用集成测试 + jsdom 冒烟测试(拦截/渲染/快照/回退/着色/拆卸)
贡献指南。 Fork → 修改 → pnpm build → 运行 pnpm test → 向 main 提交 PR。小型修复(文档、测试)无需事先讨论即可提交;报告问题时请附上 DSH 版本和确切的错误信息。
许可证与安全
许可证:BSD-3-Clause — 详见 LICENSE。
UI 实现参考了社区 dsh-ui-web 项目的 aurora 皮肤(BSD-3-Clause);完整的上游声明和许可证文本见
THIRD_PARTY_NOTICES.md。
安全:本插件不读取任何凭据,也不通过网络发送任何内容(仅与本地 DSH 通信)。如需私下报告安全问题,请使用 GitHub 安全选项卡中的 Report a vulnerability — 请勿公开提交包含漏洞利用细节的 issue。
BSD-3-Clause © 2768651338同作者(2768651338)的其他插件
扫码进群