Introduction¶
In DSH (DeepSeek Harness), the reasoning effort selector only applies to DS-series models. If models are routed through a local LLM gateway and connected manually—such as aliases like gemini3.x, grok, kimi-*, or glm5.x—they neither display the effort selector nor allow switching thinking intensity in the chat. Previously, one had to manually declare efforts for each model in ~/.dsh/settings.yaml, but these declarations would drift after DSH upgrades or when the interface writes back settings, requiring repeated rewriting.
Below introduces the luxueliu-reasoning-efforts plugin. It consolidates the effort table into a single source of truth, provides check and reapply commands, and includes a router-level source patch.
What is this¶
luxueliu-reasoning-efforts is a DeepSeek Harness (DSH) plugin. In one sentence: it allows non-DS-series models on a local LLM gateway to display a reasoning effort selector in DSH and one-click reapply efforts after DSH upgrades.
Developed by luxueliu, MIT licensed, current version 0.1.0. The core capabilities are the effort truth source efforts.json, the check/reapply command /efforts, and the router-level source patch upstream.patch.
Core Features¶
Effort Truth Source efforts.json¶
efforts.json pre-sets a reasoningEfforts table for 20 example gateway aliases. The values are off / low / medium / high / xhigh / max, declared according to what each model actually supports.
This table is just an example: there is no limit on slots; add whatever models exist in the gateway, and you can arbitrarily add local gateway models.
The /efforts Command¶
/efforts compares the live ~/.dsh/settings.yaml with the gold standard effort table to check if efforts have drifted. If drift is found, it can be reapplied in one click, with an automatic backup settings.yaml.bak-reapply-* created before reapplying.
The command is implemented in lib/index.js, using text-level replacement while preserving the original spelling of off:.
Router-level Source Patch upstream.patch¶
upstream.patch adds a “router-level reasoningEfforts default value” to the upstream llm-pi-ai: declare the effort table once for the entire gateway, so all manually declared models not separately specified automatically inherit it.
Note: The upstream llm-pi-ai repository does not accept external PRs. You can manually apply this patch first, and reapply as needed after DSH upgrades.
Package Files¶
In addition to the effort table and patch, the package includes several supporting files:
| File | Purpose |
|---|---|
settings.yaml.gold |
Complete settings snapshot (including default models), for full coverage |
litellm-config.yaml.gold |
Gateway configuration snapshot, including allowed_openai_params: reasoning_effort |
reapply.py |
Independent reapply script, writes only efforts, does not touch default models, --check only checks |
restore-settings-gold.ps1 |
Rolls back the entire settings to the gold standard |
lib/index.js |
/efforts command implementation (check + reapply) |
Default Configuration¶
The plugin’s cordis.patch.yml comes with default configuration, which can be overridden in the profile’s cordis.patch.yml:
- insert:
- id: luxueliu-reasoning-efforts
name: luxueliu-reasoning-efforts
config:
settingsPath: "" # live settings.yaml; leave empty to auto-detect ~/.dsh/settings.yaml
checkOnStart: true # check for effort drift on startup and prompt
applyOnStart: false # auto-reapply on startup (default off, check first)
effortsFile: "efforts.json"
The default behavior is “check only on startup, do not auto-rewrite”: checkOnStart is true, applyOnStart is false.
Installation and Usage¶
The plugin requires Node.js 22.18+ (declared as >=22.18.0) and a DeepSeek Harness Web profile. Installation command:
dsh plugin --profile web add github:luxueliu/luxueliu-reasoning-efforts
Takes effect after restarting DSH.
Typical Usage¶
Scenario 1: Only want the 20 pre-set example aliases to show efforts (model-level declaration). After installing the plugin, execute:
/efforts # Check if efforts have drifted
/efforts apply # Write the gold standard efforts back to live settings (creates settings.yaml.bak-reapply-* first)
Scenario 2: Want to use the router-level capability (or experience it before official merge), choose one of the following two methods:
# Method 1: Apply the package patch + package reapply.py to reapply (one-click restore efforts after DSH upgrade)
python reapply.py
# Method 2: Apply upstream.patch directly to DSH source code (execute in repository root)
git apply upstream.patch
After the above steps, daily maintenance is just one command: if efforts drift after a DSH upgrade or interface writes back settings, run /efforts apply or python reapply.py anytime to pull them back.
Use Cases and Considerations¶
Suitable for users running a LiteLLM gateway locally, connected to multiple non-DS-series models, and wanting to uniformly control reasoning effort in DSH. Pay attention to a few points before use:
applyOnStartis disabled by default; check first then manually apply;reapply.pyonly writes efforts, does not touch default models.settings.yaml.goldis a snapshot for full coverage, includes default models, use with caution;restore-settings-gold.ps1also overwrites default models when rolling back, use with caution.- The plugin runs with the permissions of the current DSH process; it is recommended to check the source code and license (MIT) before installing.
Summary¶
luxueliu-reasoning-efforts solves a specific problem: gateway models in DSH lack reasoning effort control, and effort declarations easily drift after upgrades. The combination of the effort table, check command, and router-level patch converges this into a single command /efforts apply.
Repository address: https://github.com/luxueliu/luxueliu-reasoning-efforts
Community directory page: https://www.skillhub.cn/plugins/luxueliu/luxueliu-reasoning-efforts