drscrewdriver/dsh-thinking-levels ↗★ 10
dsh-thinking-levels
DSH host plugin: thinking-level (reasoning_effort) control for dsh — auto-adjust per tool round, with optional manual lock and per-tool timing telemetry. 适合需要根据工具轮次自动调整推理深度、监控每步耗时的进阶用户。
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:drscrewdriver/dsh-thinking-levelsREADME
Read the full README ↗Configuration
Two surfaces share one schema:
- Assembly — the plugin row's
config:in the profile composition (e.g.cordis.yml):config: level: auto # off | on | minimal | low | medium | high | xhigh | max | auto — the default level when the session picks nothing allowDowngrade: true # let the scheduler drop below `high` allowUpgrade: false # forbid the scheduler lifting to `max` - Runtime — the plugin's
.volatile()config fields (enabled,level,allowDowngrade,allowUpgrade): DSH 0.1.7 renders the Plugins settings form from the declared schema, and committed changes reach the plugin as live config references (loader/volatile-update) — they apply to the next model request, no restart needed. (modelsstays a configurer-level field: edit it in the profile composition.)
Per-model capability overrides (models, keyed provider/model) confirm what auto-detection
finds; the configurer has the final word:
config:
level: auto
models:
llm-pi-ai/Qwen3.6-35B-A3B: # non-reasoning thinking model (thinking toggle + budget)
vision: false
thinking: true
efforts: false # never send reasoning_effort (stripped at request time)
llm-pi-ai/Qwen3.8-27B: # effort-capable model (rc.6-era adapter without low)
efforts: [low, high] # confirm low → advertised in the selector + passed through
For Qwen thinking on/off + budget, configure the llm-pi-ai route instead:
compat.thinkingFormat: qwen(→ wireenable_thinking+thinking_budgetviathinkingBudgets), orqwen-chat-template(→chat_template_kwargs.enable_thinking) for effort models like Qwen3.8-27B.
Defaults: { enabled: true, level: 'auto', allowDowngrade: true, allowUpgrade: false, models: {} }.
Semantics: the model-selector pick outranks the plugin's default level. Pick
auto(mask) → plugin schedules; pick a wire level → applied directly; pick nothing → the plugin'sleveldefault is used.allowDowngrade/allowUpgradeconstrainautoscheduling only.