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

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

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

小夜