dsh-reasoning-effort

93Star9Fork4Issue0Watching

在 DSH Web 输入框下方追加 Codex 风格的模型+推理强度滑块控件,档位随当前模型自动适配,可为自定义 provider 模型生成档位声明 YAML。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
main
deepseekdeepseek-harnessdsh-pluginreasoning-effort

安装

$ 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) 注入 settingsllm 服务并注册命名空间 dsh-reasoning-effort(仅做读与诊断、绝不写),同时通过 ctx.inject(['connection']) 在仅 Web 环境下挂载回环 RPC 通道 /dsh-reasoning-effort;Client 半通过 ctx.slots.inject 注册到 conversation.input.modelsettings.general.item 两个槽位
  • 入口文件: src/index.ts(Host 半,回环 RPC 端点 diagnose / store)+ src/client/index.tsx(Client 半,组件 + 偏好存储 + 滑块 canvas 渲染)

适用场景

希望在 DSH Web 端用滑块/键盘快速切换「关闭思考 / 低 / 中 / 高 / 极高 / 最大」之类推理强度档位、又不想每次输入 /model high 命令的用户;以及在使用自定义 provider 模型、目录未自带档位时,需要插件帮忙给出可直接粘贴的 reasoningEfforts YAML 片段来补全声明的场景。切换档位的状态与原生 /model 完全互通,原生模型选择器继续可用。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness0.1.0-rc.6peerDependencies 列出 @deepseek-ai/dsh-client-*@deepseek-ai/dsh-api-remotes 等七个宿主包均要求 ^0.1.0-rc.6;DSH 当前仍处于开发者预览阶段,上游 UI/服务变更可能要求插件同步更新
Node.js>=22.19package.json#engines.node 显式声明 >=22.19,主要用于构建(tsc + esbuild)
React^18.2.0peerDependencies.react: "^18.2.0",客户端组件基于 React 18 Hooks
Profilewebpackage.json#dsh.client.platform: "web";Host 半的 RPC 通道通过 ctx.inject(['connection']) 仅在 Web Profile 挂载,终端 Profile 不会触发
原生模块运行时不依赖 node-ptynode:sqlite 等原生绑定,仅使用浏览器 Canvas / localStorage / fetch

安装方式

dsh plugin --profile web add github:HanaAyane/dsh-reasoning-effort

配置项

配置类型说明默认值
dsh-reasoning-effort.entries[](Host settings.yaml)数组扩展档位知识库,每条含 idprovider* 通配)、model* 通配)、noteefforts(档位名 → 端点实际取值,null 表示不可选)、可选 compat(仅 OpenAI 兼容端点需要,含 thinkingFormatsupportsReasoningEffort)。插件只生成片段并提示,不会自动写入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.enableddsh-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 自查

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/HanaAyane/dsh-reasoning-effort)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录
dsh-reasoning-effort — DeepSeek Harness 插件 | deepseek-plugin.org