mrkeyoor.com_
Tue 01 Sept 17:44 UTC
LLM Toolsevaluationupdated 25 Aug 2026

dsh-routing-suite review

dsh-routing-suite is a Chinese-first extension suite for DeepSeek Harness, with a complete English README available. It combines a runtime plugin injector with presets that classify a task and change the agent's reasoning persona, tool exposure, and reminders during a session.

+186stars / 7d
Verdict

Our dsh-routing-suite build stopped after 6 seconds because it could not find the required DSH checkout, even though its 37-package npm install and audit completed cleanly. Use it only inside an existing DeepSeek Harness setup where you can inspect request headers, tool catalogs, and API spend after every update. The routing experiments are interesting, but open POSIX installation and missing-bash reports make this a test-bench choice rather than a safe default preset.

We ran it

Lab card: what happened when we ran dsh-routing-suiteScreenshot of dsh-routing-suite (github.com/yjh051108/dsh-routing-suite)
Install✓ · 12s37 packages · 68 MB
Build✗ · 6s
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo71 files~12,134 lines of source · 1.1 MB · 0 CI workflows

Answers from our run

Does dsh-routing-suite build from source?

Dependencies installed in 12 seconds (37 packages), and the build failed. We cloned commit 21a7260 into a clean Debian container with 3 CPUs and no project-specific setup.

Does dsh-routing-suite have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does dsh-routing-suite have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use dsh-routing-suite?

Users of general chat APIs, Claude Code, or other agents without DeepSeek Harness: the injector depends on DSH packages, profiles, services, and event hooks.

What are the alternatives to dsh-routing-suite?

DeepSeek Harness standard preset, LangGraph, LiteLLM. Our dsh-routing-suite build stopped after 6 seconds because it could not find the required DSH checkout, even though its 37-package npm install and audit completed cleanly.

Setup2/5Small npm install, but setup depends on DSH internals and layout
Docs4/5Detailed bilingual guides and experiments, with version drift
Community4/56,811 stars and active same-day issues and fixes
Maturity2/5Fast-moving suite with open install, cost, and POSIX tool gaps

Who it’s for

DeepSeek Harness users experimenting with task-aware reasoning modes and staged tool access.
DSH plugin developers who want runtime injection, reload, promotion, removal, and recovery tools.
Researchers willing to inspect the included P1 through P23 experiment notes before trusting routing claims.
Windows users comfortable with PowerShell and the exact preset directory layout.

Who it’s NOT for

Users of general chat APIs, Claude Code, or other agents without DeepSeek Harness: the injector depends on DSH packages, profiles, services, and event hooks.
Linux or macOS users expecting a settled installer: an open pull request adds install.sh, and issue 45 says manual setup kept missing dependencies.
POSIX users who need dependable shell access today: issue 63 reports that the preset announces bash as available while the actual tool schema omits it.
Cost-sensitive operators unwilling to inspect request traces: issue 55 reports API calls and spend rising by 2 to 3 times after installation, while the README says v0.3.0 removed an extra call path.
Teams that require a small stable surface: the current README describes two in-tree components, while the latest suite release still describes three submodules.

Setup reality

Our sandbox installed 37 npm packages in 12 seconds, using 68 MB on disk. npm audit found 0 known vulnerabilities. Build failed with exit code 1 after 6 seconds because scripts/build.sh could not locate a DeepSeek Harness checkout and told us to set DSH_CHECKOUT; there was no test script or target to run.

Normal installation assumes DSH is already installed. The documented one-shot path is PowerShell; manual setup adds the injector to the DSH web profile, copies each preset flat under ~/.dsh/.agent-presets, and restarts DSH. Building the injector needs a separate DSH source checkout so its script can link internal packages.

The project lives mainly under ./injector/. The 1.1 MB repository held 71 files and about 12,134 source lines, with no CI workflow, Dockerfile, or tests directory detected by our harness. That small footprint does not make it standalone: DSH supplies the host, packages, profile layout, events, tools, and runtime being modified.

The suite changes how DeepSeek Harness handles a task

dsh-routing-suite sits inside DeepSeek Harness rather than beside it. Its router classifies work into reasoning modes, swaps persona sections, changes which tools are visible, and injects reminders close to each user message. The injector manages DSH plugins at runtime, including reload, staging, promotion, removal, and recovery. This is a specialized control layer for one agent host, not a general model router.

The main README is Chinese, and a complete English translation is stored as README.en.md. Both describe 2 in-tree components: injector/ and preset/. The injector comes from dsh-super-injector v0.3.3, while the preset history points to dsh-router-standard v0.3.0 and later mainline revisions. The suite's latest GitHub release, v0.1.0, still describes 3 submodules, so main has moved beyond that packaged snapshot.

Router Standard uses task categories and model-specific personas; Router Spec favors deeper reasoning. The README says Router Pro is planned and was not included in v0.3.0. That wording matters because the latest suite release still mentions Router Pro in its component table. Anyone installing from a release should check the actual archive rather than assuming the current README and old release describe the same layout.

Its routing evidence is project-run, not our benchmark

The repository includes P1 through P23 experiment documents and publishes several large effects: 96% routing, 100% convergence, 92% to 94% cache hits, and open-task completion moving from 0% to 100% under a three-anchor persona. These are the author's measurements. Our sandbox did not reproduce model behavior, routing accuracy, completion, cache use, or cost, so those figures should be treated as hypotheses for a buyer's own DSH sessions.

The mechanics are specific enough to be interesting. Guidance is appended after a real user message so it sits near the model's next action. Ambiguous work can use a weak persona and let the model classify itself. Tool exposure can begin narrow, then expand after the first call. The preset changes a persona section while trying to retain plan-mode boundaries, rather than replacing the whole assembled prompt.

That approach also creates new failure modes. A static stage description can claim a tool is available even when the runtime schema lacks it. A guide inserted through the wrong event can trigger another request. A persona that helps one model may hurt another. The project documents several of these mistakes and fixes, which is useful, but it also means operators must examine exported sessions instead of trusting status text.

What happened when we ran it

Our run installed 37 npm packages in 12 seconds and left 68 MB on disk. npm audit reported 0 known vulnerabilities at every severity. The repository was 1.1 MB, with 71 files and about 12,134 lines of source. Most of the runnable package sits under injector/, where the package identifies itself as dsh-super-injector 0.3.3.

Build failed with exit code 1 after 6 seconds. The package ran bash scripts/build.sh, which returned: build: cannot locate the dsh checkout (set DSH_CHECKOUT). That message is the full finding. It does not say which package would fail next or whether the code compiles against a correctly selected checkout. It shows that source development requires a second repository in a discoverable location.

No test script or target existed for our harness, so tests were skipped. The scanner also found 0 CI workflow files, no Dockerfile, and no tests directory. The README points to experiments and the injector guide, while current issue 63 says an existing integration test mocks bash into the visible tool list instead of verifying that the real POSIX composition registers it. That is a material coverage gap for the reported bug.

Installation is Windows-first and path-sensitive

The one-shot instructions use install.ps1. Manual installation adds the injector through the DSH web profile, then copies router-standard and router-spec directly under the user's .agent-presets directory. DSH scans one directory level, so copying the parent preset folder creates extra nesting and hides both presets. A restart is required before choosing a router in a new session.

Linux and macOS support is less settled. Issue 45 reports missing dependencies during manual Linux installation, and pull request 68 proposes a Linux install.sh. Issue 63 reports a deeper POSIX problem: the final stage announced bash, but exported request headers showed 61 real tools without it. The reporter recorded 149 steps and 164 tool calls in that session, then had to route shell work through another tool.

The injector has its own setup choices. A release archive includes built output, while a Git install runs a prepare hook and may fetch tsdown. Source building links DSH packages from the checkout named by DSH_CHECKOUT. Runtime state lives under the user's DSH profile, including a registry used to restore injected plugins after restart. These are invasive capabilities, so a disposable profile is the right first trial.

Cost and tool visibility need direct checks

Issue 55 reports API calls and cost increasing by 2 to 3 times after installing the suite, despite a 99% cache hit rate. The README says v0.3.0 moved near-field guidance to agent/pre-step, keeping it in the same request and removing the earlier extra-call path. The issue remained open on 2026-08-25, so operators should compare request counts before and after installation rather than treating either report as the final word.

GitHub showed 6,811 stars, 58 open issues and PRs, and a push on 2026-08-24. Same-day activity on 2026-08-25 included POSIX shell registration, installer fixes, and a Linux installer. That is active maintenance, but much of the activity is correcting real assembly behavior across platforms. A stale v0.1.0 suite release does not prove neglect; it does make release users responsible for reconciling tags with main.

Choose dsh-routing-suite when DeepSeek Harness is already your environment and its experiments address a problem you can measure. Use the upstream standard preset when fewer moving parts matter. LangGraph is a better fit for explicit provider-neutral workflow state, while LiteLLM handles provider and cost routing. This suite earns a lab profile, exported-session inspection, and spending limits before it earns daily work.

Alternatives

ProjectWhat it isPick it when
DeepSeek Harness standard preset gh↗The upstream agent host and official preset without this suite's injector and routing layer.pick this instead when official configuration and fewer runtime modifications matter more than experimental routing.
LangGraph gh↗A graph runtime for making model, tool, and human-control transitions explicit in application code.pick this instead when you want deterministic workflow state across model providers rather than DSH persona injection.
LiteLLM gh↗A multi-provider model gateway with routing, budgets, fallbacks, and a common API.pick this instead when routing means choosing providers or models based on cost and availability.

What people are saying

  1. [velocity-scout] yjh051108/dsh-routing-suite

Sources

  1. dsh-routing-suite English README
  2. dsh-routing-suite Chinese README
  3. dsh-super-injector guide
  4. POSIX bash registration issue
  5. API call cost issue
  6. dsh-routing-suite v0.1.0 release

More llm tools reviews

rig · open-knowledge · graphiti · cve-mcp-server · minimind · SillyTavern · the whole board →