AL-spiritphoenix
dsh-auto-model
No description
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-auto-model
English | 中文
A DeepSeek Harness bundle that adds an Auto model option. When a session selects auto, the plugin classifies each turn with a small Flash call and routes it to deepseek-v4-flash (SIMPLE) or deepseek-v4-pro (COMPLEX).
It is a plain-JavaScript bundle, so it installs straight from a git host with no build step. It uses only shipped core APIs and runs against an unmodified harness.
Install
Install into the web profile (the profile the dsh web command boots):
From a local checkout:
dsh plugin --profile web add ./dsh-auto-model
From GitHub:
dsh plugin --profile web add github:AL-spiritphoenix/dsh-auto-model
Then boot it:
dsh web
dsh web is the web profile's alias, so no --profile flag is needed. The model selector now lists Auto alongside Flash and Pro. The concrete model the router chooses is what the session log records in each request header.
How it works
- The plugin registers its own
deepseek-autoprovider route, whoselistModels()returns theautoentry at runtime. The directory entry is therefore independent ofllm-deepseek'smodelsconfig, so asettings.yamloverride cannot hide it. - The plugin listens on the root
agent/requestwaterfall (outsideinstallModelSelection) and rewritesauto— whichever provider carried it — to a concreteprovider/modelbefore dispatch. - Each turn's first step sends one auxiliary classifier call to
classifierModel(defaults to the fast model); later steps of the same turn reuse the decision. A failed call falls back toonClassifierError(defaultslow).
Configuration
All fields are optional and default to the DeepSeek V4 pair:
| Key | Default | Meaning |
|---|---|---|
provider | deepseek-official | Provider route the concrete requests are routed to. |
model | auto | Virtual model id shown and submitted; never dispatched. |
providerName | DeepSeek(Auto) | Selector group label. |
name | Auto | Selector model label. |
description | (built-in) | Selector detail. |
fastModel | deepseek-v4-flash | Model for SIMPLE tasks. |
slowModel | deepseek-v4-pro | Model for COMPLEX tasks. |
classifierModel | fastModel | Model serving the classifier call. |
classifierPrompt | (built-in) | Classifier system prompt. |
classifierMaxTokens | 16 | Classifier output-token cap. |
classifierTimeoutMs | 10000 | Classifier call deadline. |
contextBudgetChars | 4000 | Maximum task characters fed to the classifier. |
onClassifierError | slow | Target when classification fails or returns an unknown token. |
Override them in the web profile's cordis.patch.yml:
- id: auto-model
config:
fastModel: deepseek-v4-flash
slowModel: deepseek-v4-pro
onClassifierError: slow
Limitations
autois advertised as a text model, so an image-containing session cannot select it.- The classifier call is an auxiliary dispatch and is not counted by the token meter.
autois session-local: after a restart, a non-blank session resumes from the logged concrete model rather than re-classifying.