Preface

When running agents in DSH (DeepSeek Harness), the main model often performs reasoning and executes tool calls simultaneously. As conversations grow longer, it becomes more prone to missing boundary conditions, ignoring safety constraints, or deviating from objectives during multi-step operations. Common approaches include manually reviewing transcripts after the fact or stacking review rules in the system prompt—the former is reactive, while the latter crowds the main model’s context window and makes it difficult to provide structured feedback per turn.

dsh-advisor takes a different path: it attaches an independent review model to each session, passively observing the main conversation transcript. After each of the main model’s stepped turns, it initiates a separate inference and injects severity-graded suggestions into the session. The review content is not fed back to the review model itself, nor does it approve or reject actions on behalf of the main model.

What Is This

dsh-advisor is a DSH plugin maintained by omdsh-dev, porting the advisor subsystem from the omp ecosystem into a standalone plugin package. It is published on npm as dsh-advisor, currently at version v0.2.4, under the MIT license, with a GitHub repository having approximately 13 stars.

The plugin is positioned as “advisory only”: the review model only outputs self-described advisory content and does not approve or reject the main agent’s actions, nor does it issue commands under the main agent’s identity. Misbehavior in review output is constrained by emission guard, immuneTurns cooldown, and failure policy to avoid blocking or contaminating the main loop.

Core Features

Independent Review Model Per Session

Each session has its own review model instance. It observes the main transcript and initiates a review call for each of the main model’s stepped turns; review messages are excluded from subsequent deltas, and the review model does not see its own historical suggestions.

Severity-Graded Suggestions

Review outputs are annotated with severity levels. The levels listed in the README include nit, concern, and blocker, and they are written back to the session with inject/steer semantics for reference by the main model or developers.

Dual Frontend Support

The same plugin package adapts to both the DSH web frontend and the dsh-tui terminal frontend:

  • web: Settings → Plugin Configuration → Advisor card
  • dsh-tui: /advisor command family and the Advisor configuration section in /settings (dsh-tui ≥ v0.8.0)

Multi-Layer Configuration and Runtime Gating

Configuration items are composable across three layers (later layers override earlier ones): profile patch layer, global settings in $DSH_HOME/settings.yaml, and session-level /advisor on|off|toggle overrides. When enabled, provider and model are required; if either is missing, the review model will not initiate calls, and the status will display “disabled-with-reason.”

Installation and Enablement

The following installation commands are based on the official README. Both web and dsh-tui use the same plugin package, with only --profile differing:

dsh plugin --profile web add dsh-advisor      # web profile
dsh plugin --profile dsh-tui add dsh-advisor  # dsh-tui terminal profile

To pin a version, append @<version> to the package name, e.g., dsh-advisor@0.2.4. Registry installation fetches pre-built tarballs (including lib/ and cordis.patch.yml), so local compilation is not required on the target machine.

After installation, add an advisor: section to the global DSH settings file (default $DSH_HOME/settings.yaml). The review functionality is disabled by default and must be explicitly enabled:

advisor:
  enabled: true                # Main switch, default false
  provider: deepseek-official  # Required when enabled
  model: deepseek-v4-flash     # Required when enabled
  systemPrompt: ""             # Optional; empty string uses the built-in review prompt
  immuneTurns: 3               # Cooldown turns after delivering suggestions, default 3
  maxDeltaMessages: 60         # Delta window cap, 0 means unlimited, default 60

You can also edit these fields via the web Settings Advisor card or dsh-tui /settings; the web card prevents saving when required fields are empty, while the TUI allows saving but runtime gating will reject model call initiation.

To verify installation writes to the profile patch:

dsh --profile web --dump-config   # Output should include the "# == dsh-advisor" layer

Typical Usage

In-Session Control

After installation and configuration, use /advisor in sessions that support command registration:

/advisor            # Toggle review switch for this session
/advisor on         # Enable for this session
/advisor off        # Disable for this session
/advisor status     # View status, model, runtime info, pending count, recent activity

/advisor on|off|toggle only affects the current session and does not modify persistent configuration. If the global configuration lacks provider/model, /advisor on will not initiate model calls, and /advisor status will display the gating reason. After quota exhaustion (quota_exhausted) or permanent model errors, you can use /advisor on to manually restore.

In the dsh-tui profile, /advisor config echoes the combined configuration in read-only mode and indicates the actual write paths (TUI /settings, profile patch, settings.yaml).

Configuration Priority Example

  1. Set enabled: true and provider/model in settings.yaml as global defaults.
  2. During a debugging session, execute /advisor off to disable review only for that session, without affecting others.
  3. After debugging, restore with /advisor on or open a new session to use the global configuration.

Use Cases and Notes

Who It’s For

  • DSH users who need per-turn code/solution review in long-chain agent tasks without cramming all review logic into the main system prompt.
  • Scenarios where a second model (possibly different provider/model from the main model) is used for side-channel observation, providing feedback graded as nit/concern/blocker.
  • Teams using both DSH web and dsh-tui who need the same advisor configuration across both frontends.

Before Use

  • The plugin runs with the permissions of the current DSH process. Before installation, review the source code and MIT license to confirm the credentials and quota policies for the provider used by the review model.
  • The review model initiates an additional LLM call for each stepped turn, increasing latency and token costs; immuneTurns and maxDeltaMessages can control frequency and context window size.
  • Depends on DSH 0.1.1-rc.2 and corresponding peer packages; Node requires ^22.19 || >=24. The web Advisor card requires the current dsh web build to declare settings.plugin.item card slots and load packages declaring dsh.client.
  • SkillHub (skillhub.cn) is a community plugin directory, not officially affiliated with DeepSeek / High-Flyer; plugin information is based on the GitHub README and npm release pages.

Conclusion

dsh-advisor makes “per-turn side-channel review” a pluggable DSH plugin: independent model, graded suggestions, session-level switches, and explicitly bounded as advisory-only. If you’re already using DSH to run agents, it’s worth evaluating as a second layer in your model review pipeline.