DeepSeek Harness (DSH) reasoning effort levels can currently only be switched manually. Simple chat greetings waste high, while complex code refactors make it easy to forget to move up from low. dsh-plugin-jev-effort-selector solves this problem: it lets the Jev System One model judge the amount of thinking needed for each message and automatically derives the level according to the levels declared by the model.

Plugin Overview

The plugin is named dsh-plugin-jev-effort-selector. It is maintained by justhalfbit and belongs to the “Model Reasoning” category. This plugin uses the Jev System One model (a small model dedicated to classification) to determine the complexity of the current message before each model call, and then rewrites the reasoning effort level accordingly.

Core Capabilities

  • Derive level per model: Reads the reasoning levels declared by each model and chooses the lowest level, medium, or high. Models that do not support turning off thinking never receive off.
  • Context envelope: Tells Jev the facts from the previous turn—what level was used, what the user said, where the assistant got to, and the todo completion status. About 500-800 tokens; inherited after restart.
  • Asks two things at once: Determines which level to use and whether this message is continuing the previous task (continues or new).
  • Only one hard rule: If the message continues the previous task (continues) and the previous work was not completed, do not go below the previous level. Everything else follows Jev.
  • One decision per turn: Every step and every failed retry within a turn uses the same level; Jev is asked once per turn.
  • Respects manual selection: If you change the level or switch the model in the selector, Jev does not intervene for that turn.
  • Round up on low confidence: If the probability is below the threshold, choose the higher level among the two levels with the highest probabilities.
  • Silent fallback on failure: Missing key, network failure, timeout, abnormal response, unsupported level—any of these reuses the level already resolved by the caller, without errors or blocking.
  • Session isolation: Decisions, toggles, and projections are all keyed by session id; switching sessions does not mix values. The plugin writes nothing to session logs.
  • UI support: Displays a chip in dsh web; in tui / headless, decisions still take effect, just without visual indication.

Installation and Configuration

Prerequisites: DSH is installed and pnpm is on the PATH.

dsh plugin --profile web add github:justhalfbit/dsh-plugin-jev-effort-selector

Restart dsh web for changes to take effect.

Configure the Jev System One API address and key on the settings page. The key does not go into settings.yaml; it uses DSH’s credential service. Configuration items include:

  • enabled: Whether to enable the plugin.
  • apiUrl: Jev API address.
  • apiKeyEnv: Credential reference name (default JEV_API_KEY).
  • model: Jev model route (default jev-latest).
  • confidenceThreshold: Confidence threshold (default 0.6).
  • timeoutMs: Timeout duration (default 5000).
  • useContext: Whether to send the context envelope (default true).
  • levels: Per-model level mapping.

Working Logic

Jev is asked once per turn. It answers two questions: which level to use and how this message relates to the previous turn.

If the relation is continues and the previous work was not completed (the previous turn ended abnormally, or there are unfinished items in the todo list), do not go below the previous level. In other cases, Jev decides the level.

For example:
* “What time is it?” -> continues the previous turn -> use the previous level.
* “Thanks” -> continues the previous turn -> but the previous work was completed -> Off.
* “Continue” -> continues the previous turn -> but the previous work was not completed -> keep High.

Notes

  • Jev is not a conversational model; a single judgment takes about 500-800 tokens and one to two seconds, so the cost is negligible.
  • The plugin writes nothing to session logs.
  • In the first turn after a restart, the envelope Jev receives is exactly the same as before the restart.
  • The key does not go into settings.yaml; it uses DSH’s credential service.
  • The plugin version is 0.3.20, and the license is MIT.

Summary

The plugin introduces the Jev System One model to implement automatic derivation and intelligent management of reasoning effort levels, solving the inefficiency and easy-to-forget issues caused by manual switching. It respects manual selection, supports session isolation, and falls back silently on failure, making it suitable for DSH users who need fine-grained control of reasoning cost.

  • GitHub: https://github.com/justhalfbit/dsh-plugin-jev-effort-selector
  • Directory: https://www.skillhub.cn/plugins/justhalfbit/dsh-plugin-jev-effort-selector