在 DSH Web 输入框下方追加 Codex 风格的模型+推理强度滑块控件,档位随当前模型自动适配,可为自定义 provider 模型生成档位声明 YAML。
- 语言
- TypeScript
- License
- MIT
- 分支
- main
安装
$ dsh plugin --profile web add github:HanaAyane/dsh-reasoning-effort在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 HanaAyane/dsh-reasoning-effort:先查看仓库 https://github.com/HanaAyane/dsh-reasoning-effort.git 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
在 DSH Web 输入框下方追加一个 Codex 风格的「模型 + 当前推理强度」按钮,打开后上方是带辐射特效的推理强度滑块(档位随当前模型自动适配),下方仍是 DSH 原生模型列表。安装完成后默认启用,档位状态与 /model 命令共享同一份会话。
核心能力
- 在输入框下方的「模型席位」槽位注入组合触发按钮(显示当前模型名 + 当前档位名),点击展开弹层后上方是推理强度滑块、下方是 DSH 原生模型列表
- 滑块档位完全从当前模型在 DSH 模型目录中公开的
reasoning.efforts读取,模型少于两档时滑块整体隐藏并提示「当前模型未提供推理强度档位」,插件绝不发明新档位 - 拖动滑块时按钮按指针位置连续移动、释放才吸附到最近档位;失败自动回滚到上一次已确认档位,并在状态行显示错误
- 提交档位走 DSH 会话接口,与
/model命令读写同一个会话目录,互不冲突;支持键盘 ←/→/Home/End 等切换 - 插件自带「档位声明指引」面板:用户自声明的模型若目录档位缺失或与知识库不一致,会给出可直接复制的完整条目 YAML(含
- id:行、保留 name/contextWindow/maxTokens),覆盖替换 settings.yaml 后 DSH 自动加载 - 「设置 → 通用设置」新增两个开关:「推理强度滑块」(整体启用/停用)与「大肥鱼滑块」(用八帧奔跑小人替换默认白色拇指),二者均仅存浏览器 localStorage
技术实现
- 语言: TypeScript(Host 半
src/index.ts、Client 半src/client/index.tsx),构建用 esbuild 打包客户端模块、tsc输出类型与 Node 入口 - 关键依赖:
@deepseek-ai/cordis(插件运行时)、@deepseek-ai/dsh-client-ui-model-selection(会话模型目录)、@deepseek-ai/dsh-client-runtime+dsh-client-ui-slots(前端插槽)、@deepseek-ai/schemastery(Host 端 settings schema) - 架构模式: 官方 Bundle 插件——
cordis.patch.yml在 web Profile 合成一层reasoning-effort;Host 半通过apply(ctx)注入settings、llm服务并注册命名空间dsh-reasoning-effort(仅做读与诊断、绝不写),同时通过ctx.inject(['connection'])在仅 Web 环境下挂载回环 RPC 通道/dsh-reasoning-effort;Client 半通过ctx.slots.inject注册到conversation.input.model和settings.general.item两个槽位 - 入口文件:
src/index.ts(Host 半,回环 RPC 端点diagnose/store)+src/client/index.tsx(Client 半,组件 + 偏好存储 + 滑块 canvas 渲染)
适用场景
希望在 DSH Web 端用滑块/键盘快速切换「关闭思考 / 低 / 中 / 高 / 极高 / 最大」之类推理强度档位、又不想每次输入 /model high 命令的用户;以及在使用自定义 provider 模型、目录未自带档位时,需要插件帮忙给出可直接粘贴的 reasoningEfforts YAML 片段来补全声明的场景。切换档位的状态与原生 /model 完全互通,原生模型选择器继续可用。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness | 0.1.0-rc.6 | peerDependencies 列出 @deepseek-ai/dsh-client-*、@deepseek-ai/dsh-api-remotes 等七个宿主包均要求 ^0.1.0-rc.6;DSH 当前仍处于开发者预览阶段,上游 UI/服务变更可能要求插件同步更新 |
| Node.js | >=22.19 | package.json#engines.node 显式声明 >=22.19,主要用于构建(tsc + esbuild) |
| React | ^18.2.0 | peerDependencies.react: "^18.2.0",客户端组件基于 React 18 Hooks |
| Profile | 仅 web | package.json#dsh.client.platform: "web";Host 半的 RPC 通道通过 ctx.inject(['connection']) 仅在 Web Profile 挂载,终端 Profile 不会触发 |
| 原生模块 | 无 | 运行时不依赖 node-pty、node:sqlite 等原生绑定,仅使用浏览器 Canvas / localStorage / fetch |
安装方式
dsh plugin --profile web add github:HanaAyane/dsh-reasoning-effort
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
dsh-reasoning-effort.entries[](Host settings.yaml) | 数组 | 扩展档位知识库,每条含 id、provider(* 通配)、model(* 通配)、note、efforts(档位名 → 端点实际取值,null 表示不可选)、可选 compat(仅 OpenAI 兼容端点需要,含 thinkingFormat 与 supportsReasoningEffort)。插件只生成片段并提示,不会自动写入 | entries: [] |
浏览器 localStorage dsh-reasoning-effort.enabled | 布尔 | 启用/停用整套推理强度滑块增强;停用后弹层立刻回到 DSH 原生模型选择器 | true |
浏览器 localStorage dsh-reasoning-effort.chibi-thumb | 布尔 | 把滑块拇指替换为八帧奔跑小人动画;用户偏好优先于内置默认 | true(自 0.6.1 起) |
旧版 key @dsh-external/dsh-reasoning-effort.enabled | 布尔 | 历史包名下的偏好,自动迁移到新 key 后清除 | — |
常见问题
Q: 安装后输入框下面没看到「模型 + 推理强度」按钮怎么办?
A: 插件在 Web Host 启动时载入,必须先结束并重新启动 DSH Web Host 再刷新页面;如果按钮仍未出现,确认「设置 → 通用设置 → 推理强度滑块」开关处于启用,且当前模型在 DSH 模型目录中公开了至少两档推理强度(少于两档会显示"当前模型未提供推理强度档位")。
Q: 当前模型本身没声明推理档位(比如 GLM-5.3)该怎么办?
A: 模型菜单会出现「查看档位声明指引」,点开后会给出可直接复制的 reasoningEfforts 整段 YAML(含 - id: 行,已有的 name/contextWindow/maxTokens 会保留);复制后在 ~/.dsh/settings.yaml 的对应条目整体替换并保存,DSH 自动加载,无需重启。如果知识库也没收录,会给出按端点文档填值的通用模板。
Q: 怎么确认插件已经载入?
A: 运行 dsh --profile web --dump-config,解析后的配置中应出现一行 name: dsh-reasoning-effort,对应 id: reasoning-effort 的 bundle 层;安装完成后必须手动重启 DSH Web Host,运行时不会热加载新插件。
Q: 如何卸载?
A: 运行 dsh plugin --profile web remove dsh-reasoning-effort,卸载后再次重启 DSH Web Host 即可,原生模型选择器自动恢复,不会改动 DSH 内置模型目录。
Q: 滑块开关和「大肥鱼滑块」开关存在哪里?换浏览器会失效吗?
A: 两个开关都只保存在当前浏览器的 localStorage(key 为 dsh-reasoning-effort.enabled 与 dsh-reasoning-effort.chibi-thumb),不写入 DSH 配置文件;换浏览器或清空浏览器站点数据后会回到默认状态。旧 key @dsh-external/dsh-reasoning-effort.enabled 会被自动迁移。
Q: 阿里云百炼端点声明了档位还是会报 400 错误,是为什么?
A: 阿里云百炼的 OpenAI 兼容端点(maas.aliyuncs.com / dashscope.aliyuncs.com)拒绝 developer 消息角色,DSH 的 pi-ai 检测会把它当作标准 OpenAI 处理,且 settings.yaml 当前无法覆盖这一行为,插件会直接在档位指引面板中给出警告并建议改用内置 zai 路由。
上手难度
入门 — 装上即可在「设置 → 通用设置」里看到两个开关并直接使用;自定义 provider 补档位时按 README 给出的 YAML 模板粘贴即可,不需要写代码。
已知问题与限制
- DSH 仍处于开发者预览阶段(
0.1.0-rc.6),上游 UI 或服务包变更可能要求插件同步发版 - 仅支持 Web Profile;终端/Cordis-only Profile 不会加载 Client 半,Host 半的 RPC 通道也会被跳过
- 滑块档位数量受限于模型在 DSH 模型目录中公开的
reasoning.efforts:少于两档时滑块整体隐藏;插件从不发明新档位,目录里只有一档的模型(包括官方刻意保留的稀疏数据)也保持原样 - 滑块辐射特效依赖
requestAnimationFrame,在「减少动态效果」系统设置下会自动停在稳定帧;高 DPR(>2)下 canvas 会被截到 2 倍以控渲染成本 - Host 半在加载时会忽略
dsh-reasoning-effort.entries中结构不合法(例如efforts字段类型不对)的条目,不会因为单条脏数据让诊断失败,但用户必须按 schema 自查
第一次打开插件时,你会在 DSH 输入框下方看到新的模型入口。点击后,弹层上方是推理强度滑块,档位随当前模型自动适配,下方仍然是熟悉的模型选择入口。插件默认启用,并与 DSH 的 /model 命令保持同步。
第一次使用:三步完成
1. 安装插件
让 Agent 安装(推荐)
如果当前 Agent 可以执行终端命令,把下面这段话完整发送给它:
请为 DeepSeek Harness 的 web Profile 安装 dsh-reasoning-effort 插件。
只执行下面两条命令,不要修改其他 Profile:
dsh plugin --profile web add github:HanaAyane/dsh-reasoning-effort#main
dsh --profile web --dump-config
确认输出中出现 dsh-reasoning-effort 后告诉我安装结果。
不要替我关闭或重启正在运行的 DSH;安装完成后提醒我手动重启 DSH Web Host。
Agent 应当返回安装结果,并明确告诉你配置中是否已经出现 dsh-reasoning-effort。
手动安装
也可以自己打开 PowerShell 执行:
dsh plugin --profile web add github:HanaAyane/dsh-reasoning-effort#main
dsh --profile web --dump-config
main 当前版本为 0.6.2,与最新发行 Tag v0.6.2 一致。#main 始终安装最新代码(之后可能包含未发布改动);如需固定在当前版本,可把命令中的 #main 改为 #v0.6.2。
2. 重启 DSH Web Host
插件在 Web Host 启动时载入。安装命令完成后,请结束当前 Host 并重新启动,再刷新 DSH 页面。
3. 打开模型入口
- 新建或打开一个会话。
- 点击输入框下方显示“模型 + 当前强度”的按钮。
- 拖动滑块或点击轨道,释放后会吸附到最近的档位。
- 点击滑块下方的模型行,可以继续进入 DSH 原生模型列表。
完成后,你看到的效果应当与下面一致:
档位从哪里来
滑块显示的档位完全来自当前模型在 DSH 模型目录中公开的 reasoning.efforts——档数、名称与顺序都由模型决定,插件自动适配。以常见的三档组合为例:
| 档位 | 适合场景 | 体验倾向 |
|---|---|---|
off | 简单问答、改写、快速操作 | 更快 |
high | 日常编程、分析和多步骤任务 | 速度与推理平衡 |
max | 复杂调试、规划和高难度任务 | 更充分的推理 |
DeepSeek 系模型通常公开 off / high / max;GLM coding 系模型(如 GLM-5.2)公开 off / low / medium / high / xhigh 五档。滑块只是提交当前模型公开的 effort 值,不会绕过模型或部署本身的能力限制。模型公开的档位少于两档、或没有声明任何档位时,菜单会显示"当前模型未提供推理强度档位"。
档位指引(自定义 provider)
DSH 内置路由的档位来自 pi-ai 目录,插件完全只读、绝不修改。只有你在 settings.yaml 的 llm-pi-ai 里自己声明的模型,插件才会给指引:
- 打开模型菜单。若当前模型是你自定义声明、且目录读不到档位(或声明与知识库不符),菜单里会出现 查看档位声明指引;
- 面板展示建议档位(知识库命中时,如 GLM-5.2 的 minimal/low/medium/high)、一段可直接复制的完整条目 YAML(含
- id:行,原有 name 等字段自动保留)以及 settings.yaml 的路径; - 复制后用其整体替换 settings.yaml 里对应的
- id:条目(不要复制出第二个llm-pi-ai:根)并保存。DSH 会自动加载;若未生效,重启 Web Host 并刷新页面。
知识库未收录的模型会得到带注释的通用模板,按端点文档填值即可。遇到"端点因 developer 角色拒绝请求"之类的情况,面板会直接给出警告与替代建议(例如阿里云百炼端点建议改用内置 zai 路由)。
内置知识库目前收录 GLM-5.2(minimal/low/medium/high)与 Kimi K3(low/high/max)。要补充其他模型,在 settings.yaml 里追加到插件自己的命名空间即可,条目优先于内置:
dsh-reasoning-effort:
entries:
- id: my-model
provider: "*" # provider 路由名,* 通配
model: "my-model-id" # 模型 id,* 通配
note: 说明文字
efforts: # 档位名 → 端点实际接受的取值
low: "low"
high: "high"
max: "max"
compat: # 仅 openai-completions 路由需要
thinkingFormat: "openai"
supportsReasoningEffort: true
注意:插件只提供片段,不会替你修改任何配置;内置目录里的档位集合(即使只有一档)也不会被标记——那是上游的刻意数据。
大肥鱼滑块
插件默认启用八帧奔跑小人作为滑块按钮。若想换回纯白按钮:
- 打开 设置 → 通用设置。
- 找到“外观”下方的 大肥鱼滑块。
- 关闭开关,再回到模型入口。
大肥鱼只替换按钮外观,不改变档位吸附、键盘控制、辐射特效或模型选择。拖动时动画会自动加速;系统启用“减少动态效果”后会停留在稳定帧。
同一页面中的 推理强度滑块 总开关可以临时关闭整个增强控件。关闭后无需卸载,DSH 原生模型选择器会立即恢复。两个开关都只保存在当前浏览器。
你会得到什么
- 真正跟手的拖动:按钮按指针位置连续移动,释放后才吸附到有效档位。
- 深浅主题适配:深色为蓝紫黑渐变,浅色为蓝白渐变,强度越高蓝色越深。
- 只向左侧发射的特效:波浪、冲击波、像素辐射、粒子和拖尾不会越过按钮。
- 与 DSH 状态同步:滑块和
/model命令读写同一个会话模型目录。 - 失败自动回滚:更新失败时恢复到上一个已确认档位。
- 无额外网络行为:插件不新增遥测、凭据处理或服务端存储。
常见问题
安装后看不到滑块
请依次确认:
- 安装后已经重启 DSH Web Host。
- 设置 → 通用设置 → 推理强度滑块 处于启用状态。
- 当前模型在 DSH 模型目录中公开了至少两档推理强度(未声明的模型见下一条),且部署没有关闭 thinking。
模型没有声明档位怎么办(如 GLM-5.3)
不在 pi-ai 自带目录中的新模型没有任何推理档位,菜单会显示"当前模型未提供推理强度档位"。此时在 ~/.dsh/settings.yaml 中为它声明档位即可,以 zai coding 路由下的 GLM-5.3 为例:
llm-pi-ai:
providers:
zai-coding-cn:
models:
- id: glm-5.3
name: GLM-5.3
contextWindow: 1000000
maxTokens: 131072
reasoningEfforts: # 键=滑块显示的档位名,值=实际发给 API 的 reasoning_effort
low: "low"
high: "high"
xhigh: "max"
compat: # zai 路由检测默认不发 reasoning_effort,需要显式打开
thinkingFormat: "zai"
supportsReasoningEffort: true
几点说明:
- 档位名使用 DSH 档位体系(
off/minimal/low/medium/high/xhigh),值是端点实际接受的reasoning_effort取值;off不声明即不可选,适合无法关闭思考的模型。 - 已收录在 pi-ai 目录中的模型(如 GLM-5.2)自动继承档位,无需任何配置。
- 上游目录收录该模型后,手写声明即可删除;手写条目始终优先于目录。
- 提交的档位值最终由 host 校验并发送,插件不会绕过模型或部署的能力限制。
如何确认插件已经载入
运行:
dsh --profile web --dump-config
配置中应当出现 name: dsh-reasoning-effort。
如何卸载
dsh plugin --profile web remove dsh-reasoning-effort
卸载后重启 DSH Web Host,原生模型选择器会自动恢复。
兼容性
| 组件 | 目标版本 |
|---|---|
| DeepSeek Harness packages | 0.1.0-rc.6 |
| Node.js | 22.19+ |
| React | 18.x |
DeepSeek Harness 仍处于开发者预览阶段;上游 UI 或服务变更可能需要同步更新插件。
开发与构建
pnpm install
pnpm run check
pnpm pack
pnpm run check 会进行 TypeScript 校验,并重建 Host 入口与浏览器模块。完整交互与颜色约定见 design/visual-spec.md,安全问题请按照 SECURITY.md 报告。
许可证
MIT © HanaAyane
收录徽章
[](https://deepseek-plugin.org/plugins/HanaAyane/dsh-reasoning-effort)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。