dshbase

Plugin directory / Developer / dsh-routed-subagent

dsh-routed-subagent

Verified · install-tested on dsh leonardoxr

✓ Actively maintained 2 contributors Builds on 7 official DSH packages

View on GitHub ↗ ← Back to plugin directory

0Stars
0Forks
0Open issues
—Language
2026-08-22Last push
Cross-platformPlatform

What it does

Complexity-routed subagent delegation for DeepSeek Harness: the model picks the runtime tier per task.

✅
Our take
Works — verified, early-stage project

Complexity-routed subagent delegation for DeepSeek Harness: the model picks the runtime tier per task. It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-routed-subagent

English | 简体中文

Allowlisted model-and-reasoning routing for DeepSeek Harness.
Every delegation call must choose both:

  • a configured model policy through model; and
  • one exact adapter-owned effort through reasoning_effort.

The plugin validates the pair against local policy and ctx.llm.resolveCallConfig() before creating a child. Arbitrary provider/model passthrough is never accepted.

Install

dsh plugin --profile <your-profile> add github:leonardoxr/dsh-routed-subagent#v0.3.0
# or use the packed asset from the GitHub release / a local checkout:
dsh plugin --profile <your-profile> add C:/path/to/dsh-routed-subagent-0.3.0.tgz

Configure

Target the routed-subagent row in your profile patch. models and rootModels are required to enable delegation. A fresh install without them starts normally and exposes its Settings card, but does not register a delegation tool until you configure a complete policy.

- id: routed-subagent
  config:
    toolName: routed_subagent
    maxDepth: 2
    rootModels: [codex-mini, codex-sol]
    models:
      codex-mini:
        provider: openai-codex
        model: gpt-5.4-mini
        reasoningEfforts: [low, medium]
        maxTokens: 16384
        description: 'Mechanical edits, lookups, and summarization.'

      codex-sol:
        provider: openai-codex
        model: gpt-5.6-sol
        reasoningEfforts: [medium, high, xhigh]
        maxTokens: 65536
        description: 'Architecture, multi-step reasoning, and hard debugging.'
        spawnableModels: [codex-mini]

The mapping key (codex-sol) is the short policy id the calling agent passes as model; it is not sent to the provider. provider and the inner model select the actual adapter route.

Configure in the app

Settings → Plugins → Routed subagent edits the complete router configuration: tool name, background-job support, maximum depth, root availability, model policies, provider/model routes, token caps, reasoning-effort allowlists, routing guidance, and recursive child permissions. Provider/model suggestions and effort ids come from the same live Host catalog as Chat; exact custom ids remain editable when the catalog is unavailable or intentionally incomplete.

Changes are staged until Save changes. A successful save hot-remounts the tool for new calls and invalidates recursive authority held by children from the previous settings generation. Reset to composition clears every router override.

Tool contract

The registered tool accepts:

Field Required Meaning
description yes Short display label
prompt yes Complete standalone child task
model yes Configured model-policy id allowed in this caller context
reasoning_effort yes Exact effort allowlisted for that policy
run_in_background no Run through the Harness jobs service

Foreground and background results echo the effective { id, provider, model, reasoningEffort } selection for auditing.

Configuration reference

Key Default Meaning
toolName routed_subagent Registered tool name
enableRunInBackground true Expose run_in_background
maxDepth 1 Positive finite absolute delegation-depth cap
rootModels required Non-empty policy ids available to top-level agents
models required Non-empty configured model allowlist
models.*.provider required Registered LLM provider route
models.*.model required Exact provider-owned model id
models.*.reasoningEfforts required Non-empty exact effort-id allowlist
models.*.maxTokens — Positive output-token cap
models.*.description — Short routing tradeoff shown to the caller
models.*.spawnableModels [] Policy ids children on this model may call

Configuration is strict: unknown fields, duplicate ids, empty allowlists, unsafe numeric values, and unknown references fail load or save.

Recursion and validation

  • Only the local spawn subagent provider is used, because request-level reasoning enforcement and recursive authority require a live child Agent.
  • An untracked agent at delegation depth greater than zero receives no model authority.
  • Children receive only their selected policy's spawnableModels list.
  • A settings generation change revokes deeper delegation for already-running children.
  • The configured effort is captured per child and pinned on every LLM request, so concurrent children may use different efforts safely.
  • ctx.llm.resolveCallConfig() validates the exact provider/model/effort combination before child creation. Missing adapters, stale model ids, and unsupported effort ids fail without spawning.

Migrating from 0.2

Version 0.3 is intentionally breaking and has no tier compatibility layer:

  • tiers → models
  • rootTiers → required rootModels
  • tier key guidance → model policy description
  • tier key spawnable → spawnableModels
  • remove providerName, persona, and static reasoningEffort
  • replace tool argument tier with required model and reasoning_effort
  • replace maxDepth: provider-managed with a positive integer

Security note

Harness's /api trust fence is DNS-rebinding defense, not authentication. Anyone who can reach the server can initiate work available to its agents. Keep expensive routes out of models unless you accept that spend.

License

MIT

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-routed-subagent for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:leonardoxr/dsh-routed-subagent

Headless (CLI) profile:

dsh plugin --profile headless add github:leonardoxr/dsh-routed-subagent

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Developer

Browse all 7819 plugins →