Back to home

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-auto provider route, whose listModels() returns the auto entry at runtime. The directory entry is therefore independent of llm-deepseek's models config, so a settings.yaml override cannot hide it.
  • The plugin listens on the root agent/request waterfall (outside installModelSelection) and rewrites auto — whichever provider carried it — to a concrete provider/model before 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 to onClassifierError (default slow).

Configuration

All fields are optional and default to the DeepSeek V4 pair:

KeyDefaultMeaning
providerdeepseek-officialProvider route the concrete requests are routed to.
modelautoVirtual model id shown and submitted; never dispatched.
providerNameDeepSeek(Auto)Selector group label.
nameAutoSelector model label.
description(built-in)Selector detail.
fastModeldeepseek-v4-flashModel for SIMPLE tasks.
slowModeldeepseek-v4-proModel for COMPLEX tasks.
classifierModelfastModelModel serving the classifier call.
classifierPrompt(built-in)Classifier system prompt.
classifierMaxTokens16Classifier output-token cap.
classifierTimeoutMs10000Classifier call deadline.
contextBudgetChars4000Maximum task characters fed to the classifier.
onClassifierErrorslowTarget 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

  • auto is 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.
  • auto is session-local: after a restart, a non-blank session resumes from the logged concrete model rather than re-classifying.