前言¶
用 DSH 接第三方中转或自建网关时,通常要在官方「模型」页里手写提供方与模型条目。pi-ai 适配器本身支持 models[] 里的 reasoningEfforts,但官方「模型」设置页刻意不提供该字段的编辑器:推理强度是逐模型能力,提供方级控件只能写成某个模型会拒绝的值。结果是想在 Composer 模型选择器里看到 low / high 这类思考档位,只能自己改配置文件。
下面介绍的插件就是这个缺口的补法。它由 pwkazn 维护,在社区目录里属于「模型推理」分类,当前 0 颗 Star,许可证 MIT,版本 0.1.0。插件做的事很窄:把 reasoningEfforts 的编辑界面补回 Web GUI,不改适配器、不动其他模型。
这是什么¶
一句话定位:为 DeepSeek Harness 的自定义 pi-ai 模型声明推理强度(思考档位,以及每档实际发送给网关的值)的插件。
- 维护者:pwkazn
- 仓库:https://github.com/pwkazn/dsh-model-reasoning-effort
- 许可证:MIT
- 当前版本:0.1.0
它解决的具体问题是:官方设置页没有 reasoningEfforts 控件,而 OpenAI 兼容、Anthropic Messages 中转等自定义模型往往需要按模型声明支持哪些思考档位。插件在「设置 → 模型」页底部新增一个「推理强度(自定义模型)」面板,把这件事变成可点击的界面操作。
核心功能¶
下面这些能力都来自 README,没有额外推断。
- 面板挂载在 Models 页底部。插件注册
settings.models.footer列表插槽,不抢占settings.models.provider-card的llm-pi-ai键位,因此可以与其他提供方卡片扩展共存。 - 逐模型三态,对应三种声明方式:
-继承:不声明,保留内置目录或提供方自身的能力。
-无推理:写入reasoningEfforts: false,模型选择器不再提供思考档位。
-声明档位:勾选off/minimal/low/medium/high/xhigh/max,并为每一档填写实际发送值。 - 档位与发送值分离。例如
high填ultra,Composer 选 High 时网关收到的参数是ultra;off留空表示「支持,但不发送推理参数」。 - 批量应用。一次把同一组档位写入某提供方的全部模型,适合档位统一的中转网关。
- 写入前校验。校验规则与适配器一致:声明必须含
off以外的档位;非off档位必须有非空发送值。草稿被拒绝时直接说明原因,而不是等运行时失败。 - 按官方线路写入。通过
settings.mutate替换该提供方的完整models数组,保留插件不编辑的字段(id、名称、上下文窗口、输入模态、compat 等),并携带 revision 防止并发覆盖。 - 界面中英双语,随界面语言切换。
安装与启用¶
从 GitHub 安装,无需构建,纯 ESM 加手写客户端 bundle:
dsh plugin --profile web add git+https://github.com/pwkazn/dsh-model-reasoning-effort.git
README 同时给出过另一种做法:复制到 profile 的 node_modules,再由插件管理器选中。原文标注为不推荐,因为下次安装时容易丢失。
重启或热重载之后,打开「设置 → 模型」,页面底部会出现「推理强度(自定义模型)」。
依赖约束来自 package.json:
{
"dsh": { "engines": { "dsh": ">=0.2.0-rc.2" } },
"peerDependencies": {
"@deepseek-ai/dsh": ">=0.2.0-rc.2",
"react": "^18.2.0"
},
"engines": {
"node": "^22.19.0 || >=24.0.0"
}
}
也就是说,DSH 至少需要 0.2.0-rc.2,Node 需要 ^22.19.0 或 >=24.0.0。
典型用法¶
下面是 README 给出的四步流程。
- 先在官方「模型」页配置自定义模型提供方,例如 OpenAI 兼容或 Anthropic Messages 中转。
- 在底部面板展开该提供方。
- 点某个模型的「编辑」,选择「声明档位」,勾选需要的档位并填写发送值;或者用批量区一次性应用到全部模型。
- 保存后,在 Composer 的模型选择器里就能看到该模型的 Effort 档位。
一个小例子:某中转网关按 OpenAI 兼容协议提供模型,档位映射是 low → minimal、medium → medium、high → ultra。在面板里给该模型勾上这三档,分别填入对应发送值,保存即可。
插件自身的纯逻辑校验命令是:
npm test # 三态投影、发送值校验、整表写入、分层读取
适用场景与注意¶
适合这一类人:已经用 DSH 接了自定义 pi-ai 模型,想在模型选择器里看到思考档位,又不希望手改配置文件或担心声明与适配器规则不符。
有几件事需要提前知道。
- 声明是断言,不是探测。网关不接受某个档位时,请求会在运行时失败。以端点文档为准,只声明它确实支持的档位。
- 面板只编辑用户设置层可写的
llm-pi-ai.providers.<route>.models。路线若直接服务内置 pi-ai 目录、没有models数组,浏览器侧无法枚举目录,面板会列出这些路线并提示先添加模型行。 - 首次保存会把该提供方的有效模型列表整体写入用户层,行为与官方模型编辑器首次物化目录时一致。之后组合层的改动不会自动穿透这层覆盖。
- 插件不触碰 DeepSeek 直连适配器(
llm-deepseek)。它的档位由部署策略与reasoningEffort决定,已经存在于官方设置中。 - 插件以当前 dsh 进程的权限运行。README 与目标页面没有展开权限模型,安装前应阅读源码与许可证(MIT),自己判断是否信任。
结尾¶
这个插件的价值不在于新增能力,而在于把 pi-ai 已经支持但官方界面没暴露的 reasoningEfforts 补成一个可用的编辑器,写入路径、校验规则和并发保护都跟着适配器走。如果只是想给自定义模型加档位,它是一条比改配置更省事、也更容易和官方模型编辑器共存的路。
目录页:https://www.skillhub.cn/plugins/pwkazn/dsh-model-reasoning-effort
GitHub:https://github.com/pwkazn/dsh-model-reasoning-effort