my-dsh-plugin/thinking-level-override ↗★ 2
dsh-thinking-level-override
DeepSeek Harness plugin that autonomously overrides and adjusts third-party model thinking levels, fixing missing or mismatched built-in presets
AI 분석
核心用途是解决第三方模型在 DSH 中思考层级(reasoning effort)不兼容或缺失的问题。适合使用非官方模型且需要精细控制思考深度的用户。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:my-dsh-plugin/thinking-level-overrideConfiguration
| Field | Meaning | Default |
|---|---|---|
enableMappings | Master switch for the per-model wire-spelling editor on the Web settings page | false |
onUnsupported | What to do with an effort the exact model cannot serve: fail with stock harness behavior (the default — models ship their own compat layer), clamp to the nearest offered level, or drop it from the request | fail |
rules | Override rules in precedence order | [] |
Each rule:
| Field | Meaning |
|---|---|
provider | Exact provider route the rule governs (required) |
models | Model-id globs (* wildcard); absent or empty governs every model on the route |
effort | Force this level on every matched request, replacing any selection |
default | Level applied when a matched request names none |
map | Rewrite requested levels before capability validation (requested: replacement) |
onUnsupported | Per-rule policy override |
A rule must declare at least one of effort, default, map, or onUnsupported; an actionless rule fails plugin load.
Example configurations
Force one level for a model family whose preset misreports support:
thinking-level-override:
rules:
- provider: openrouter
models: ['kimi-k2*']
effort: high
Rewrite the levels a gateway vocabulary does not accept, and default new conversations to medium:
thinking-level-override:
rules:
- provider: acme-gateway
map:
max: high
xhigh: high
default: medium
Never let an inherited effort break one route's requests:
thinking-level-override:
rules:
- provider: legacy-gw
onUnsupported: drop
Example configurations
Force one level for a model family whose preset misreports support:
thinking-level-override:
rules:
- provider: openrouter
models: ['kimi-k2*']
effort: high
Rewrite the levels a gateway vocabulary does not accept, and default new conversations to medium:
thinking-level-override:
rules:
- provider: acme-gateway
map:
max: high
xhigh: high
default: medium
Never let an inherited effort break one route's requests:
thinking-level-override:
rules:
- provider: legacy-gw
onUnsupported: drop
Dynamic configuration (settings)
The plugin registers the thinking-level-override settings namespace with its Config schema and the cordis.yml entry as the composition base — the same seam dsh-llm-pi-ai uses. A user-settings layer therefore edits the rules live, with no restart: write the section into settings.yaml (the settings document the Web UI edits) and the next request picks it up.
thinking-level-override:
onUnsupported: clamp
rules:
- provider: qwen-token-plan-cn
models: ['qwen3.8-max-preview']
effort: xhigh
A write the schema or the rule validation refuses is rejected where it is written and the last good section keeps serving. Without a mounted settings service the entry config alone drives the plugin, unchanged.