luxueliu-reasoning-efforts:让网关模型在 DSH 里也能选推理强度,升级后一键重打档位

前言

在 DSH 里,推理强度(reasoning effort)选择器只对 ds 系模型生效。如果模型走本地 LLM 网关、以手工声明的方式接入——比如 gemini3.x、grok、kimi-*、glm5.x 这类别名——它们既不显示档位选择器,也无法在对话里切换思考强度。此前只能在 ~/.dsh/settings.yaml 里逐个模型手工补档位声明,而 DSH 升级或界面回写 settings 后,这些档位还会漂移,得反复重写。

下面介绍 luxueliu-reasoning-efforts 插件。它把档位表收敛成一份真理源,提供检查与重打命令,并附带一个路由级源码补丁。

这是什么

luxueliu-reasoning-efforts 是一个 DeepSeek Harness(DSH)插件,一句话定位:让本地 LLM 网关路由上除 ds 系以外的任何模型,也能在 DSH 里显示推理强度选择器,并在 DSH 升级后一键重打档位。

插件由 luxueliu 开发,MIT 许可证开源,当前版本 0.1.0。核心是三层能力:档位真理源 efforts.json、检查/重打命令 /efforts、路由级源码补丁 upstream.patch

核心功能

档位真理源 efforts.json

efforts.json 预置了 20 个示例网关别名的 reasoningEfforts 档位表,档位取值为 off / low / medium / high / xhigh / max,按各模型真实支持的档位声明。

这份表只是示例:槽位无上限,网关里有什么模型就加什么,可任意添加本地网关模型。

/efforts 命令

/efforts 对比 live 的 ~/.dsh/settings.yaml 与金样档位表,检查档位是否漂移;发现漂移后可一键重打,重打前自动留备份 settings.yaml.bak-reapply-*

命令实现在 lib/index.js,采用文本级替换,保留 off: 的原样拼写。

路由级源码补丁 upstream.patch

upstream.patch 给上游 llm-pi-ai 增加「路由级 reasoningEfforts 默认值」:整条网关声明一次档位表,所有未单独声明的手工模型自动继承。

需要注意:上游 llm-pi-ai 仓库不接受外部 PR,合并前可以先手动应用这个补丁,DSH 升级后按需重打。

随包文件

除了档位表和补丁,包内还有几份配套文件:

文件 用途
settings.yaml.gold 完整 settings 快照(含默认模型),整份覆盖用
litellm-config.yaml.gold 网关配置快照,含 allowed_openai_params: reasoning_effort
reapply.py 独立重打脚本,只写档位、不动默认模型,--check 只查
restore-settings-gold.ps1 整份 settings 回滚到金样
lib/index.js /efforts 命令实现(检查 + 重打)

默认配置

插件的 cordis.patch.yml 自带默认配置,可在 profile 的 cordis.patch.yml 里覆盖:

- insert:
    - id: luxueliu-reasoning-efforts
      name: luxueliu-reasoning-efforts
      config:
        settingsPath: ""        # live settings.yaml;留空自动探测 ~/.dsh/settings.yaml
        checkOnStart: true      # 启动时检查档位漂移并提示
        applyOnStart: false     # 启动时自动重打(默认关,先 check)
        effortsFile: "efforts.json"

默认行为是「启动只检查、不自动改写」:checkOnStart 为 true,applyOnStart 为 false。

安装与启用

插件要求 Node.js 22.18+(engines 声明为 >=22.18.0)和一个 DeepSeek Harness Web profile。安装命令:

dsh plugin --profile web add github:luxueliu/luxueliu-reasoning-efforts

重启 DSH 后生效。

典型用法

场景一:只想让预置的 20 个示例别名显示档位(模型级声明)。装完插件后执行:

/efforts        # 检查档位是否漂移
/efforts apply  # 把金样档位写回 live settings(先留 settings.yaml.bak-reapply-*)

场景二:要用路由级能力(或等官方合入前先体验),与场景一二选一。下面两种方式任选其一:

# 方式一:应用随包补丁 + 随包 reapply.py 重打(DSH 升级后一键还原档位)
python reapply.py

# 方式二:直接对 DSH 源码应用 upstream.patch(在仓库根执行)
git apply upstream.patch

经过上面的步骤,日常维护只剩一条命令:DSH 升级或界面回写 settings 后档位漂了,随时执行 /efforts applypython reapply.py 拉回。

适用场景与注意

适合在本地跑 LiteLLM 网关、接了多家非 ds 系模型、希望统一在 DSH 里控制推理强度的用户。使用前注意几点:

1、applyOnStart 默认关闭,先 check 再手动 apply;reapply.py 只写档位、不动默认模型。

2、settings.yaml.gold 是整份覆盖用的快照,包含默认模型,慎用;restore-settings-gold.ps1 回滚同样会覆盖默认模型,慎用。

3、插件以当前 dsh 进程的权限运行,安装前建议先检查源码与许可证(MIT)。

小结

luxueliu-reasoning-efforts 解决的是一个具体问题:网关模型在 DSH 里没有推理强度控制,且档位声明在升级后容易漂移。档位表、检查命令、路由级补丁三层配合,把这件事收敛成 /efforts apply 一条命令。

仓库地址:https://github.com/luxueliu/luxueliu-reasoning-efforts

社区目录页:https://www.skillhub.cn/plugins/luxueliu/luxueliu-reasoning-efforts

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜