dshbase

Plugin directory / Automation / dsh-subagent-tools

dsh-subagent-tools

Verified · install-tested on dsh lynx-gt

✓ Actively maintained Builds on 7 official DSH packages

View on GitHub ↗ ← Back to plugin directory

1Stars
0Forks
0Open issues
JavaScriptLanguage
2026-08-15Last push
Cross-platformPlatform

What it does

DeepSeek Harness subagent delegation enhancement

✅
Our take
Works — verified, early-stage project

DeepSeek Harness subagent delegation enhancement 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-subagent-tools

Enhanced subagent delegation tools for DeepSeek Harness (dsh):
per-call model / provider / persona / toolFilter overrides, @preset: persona references, and
provider/model composite model ids — shipped as a standard bundle that patches no official
package file
.

| English | 中文 |

awesome · DSH plugin

What it adds

The stock subagent / subagent_fork tools only accept description, prompt, and run_in_background.
This plugin replaces them with the same surface plus per-call overrides:

Parameter Effect
model Override the child's LLM model for this call. Accepts a bare id (k3) or a composite (kimi-code/k3) that also switches the provider.
provider Override the delegation provider for this call (spawn / fork / ...).
persona Override the child's persona for this call — raw text, or @preset:<id> to load a saved agent preset's persona (by display name or directory id).
toolFilter Override the child's tool allow/deny filter for this call.

All overrides default to the instance configuration, so a bare install behaves exactly like the stock tools.

Installation

dsh plugin --profile web add dsh-subagent-tools          # npm
# or: dsh plugin --profile web add github:lynx-gt/dsh-subagent-tools#main
# or: dsh plugin --profile web add ./dsh-subagent-tools  # local checkout

Restart dsh --profile web.

Web sessions: also run the preset adapter (important)

In the web profile, agent tools are provided by the mounted agent preset
(the default standard preset composes subagent / subagent_fork pointing at
@deepseek-ai/dsh-tool-subagent), not by the host plane. A bundle patch that
disables the stock rows and inserts its own is invisible to Web sessions — the
stock tools keep loading and this package's per-call overrides never appear
(headless works without this step).

Run the preset adapter to make Web sessions use this package:

powershell -ExecutionPolicy Bypass -File install-preset.ps1   # Windows
# or: ./install-preset.sh                                     # POSIX

It copies the standard preset into $DSH_HOME/.agent-presets/standard-plus,
rewrites its tool-subagent / tool-subagent-fork rows to point at this
package, and switches the default preset. Then restart dsh web and start a
NEW session
(presets are read at session creation and cannot be switched in a
live session). To revert: pick standard again in the UI (General > Agent
preset) and delete the standard-plus directory.

headless and other non-web profiles do not need this step.

Telling the model which presets exist (presetHints)

The persona parameter accepts @preset:<id> references, but the tool schema
does not list which presets exist on your deployment. Set presetHints on the
tool rows (see cordis.patch.yml) to surface them in the schema — the model
then sees "Available presets on this deployment: @preset:翻译员, ..." and can
pick one itself. Omit the key to stay generic (presets differ per machine).

Compatibility

Declares peerDependencies on the public dsh packages (^0.1.0-rc.6). If your dsh version moves out of
the compatible range, pnpm reports a peer conflict and the plugin refuses to load — bump this package
instead of running on a silently broken API.

Verified

Tested against a stock dsh 0.1.0-rc.6 install (no local patches) on Windows via
headless and web profiles:

  • per-call model="kimi-code/k3" composite routing ✅
  • per-call provider="fork" and raw-text persona ✅
  • @preset: by display name (@preset:审校员) and directory id (@preset:translation-reviewer) ✅
  • presetHints schema injection ✅
  • Web profile: the preset adapter (install-preset.ps1) makes Web sessions use
    this bundle's tools (verified with the 5 presets above in a live web session)

Example

Delegate a task to a subagent using model kimi-code/k3 with the reviewer persona:
  subagent(description="Review the translation", prompt="...", model="kimi-code/k3", persona="@preset:审校员")

Design

  • A bundle, not a patched install. This package is a standard dsh bundle
    (dsh.bundle manifest + cordis.patch.yml): it disables the shipped
    tool-subagent / tool-subagent-fork rows and inserts its own. No official
    package file is patched
    — nothing in the dsh installation is modified.
  • Independent implementation. The tool is written against the public dsh API
    (defineTool, ctx.subagents.start / startContinuable, settleRun), not a fork of the official source.
  • Upgrades. The bundle lives in the profile's own node_modules (pnpm
    symlink), so a dsh upgrade does not remove it. But dsh is in developer preview
    (rc.6): if an upgrade changes the public API, peerDependencies makes the
    plugin refuse to load instead of failing silently — bump this package then.
  • No cwd parameter here. Per-call working-directory control needs two
    small patches in the dsh installation's in-process subagent providers
    (foreground + continuable child creation). That lives in the companion
    package dsh-subagent-tools-cwd, which bundles this plugin's
    functionality plus the cwd parameter plus the required patches.
    Install one or the other — not both.

Limitations

  • @preset: depends on the local preset layout. $DSH_HOME/.agent-presets
    is where dsh stores user-authored presets; the path is not a hard public
    contract, so a future dsh release could change discovery. Presets also differ
    per machine — an @preset:翻译员 reference only works where that preset exists.
  • Web sessions need the preset adapter. The standard preset that ships
    with dsh still points its delegation rows at the official package; until you
    run install-preset.ps1 / install-preset.sh, Web sessions keep the stock
    tools (headless and other non-web profiles use this bundle directly).
  • provider means the subagent backend, not an LLM provider. To route a
    child to a different LLM provider use the composite model id
    (kimi-code/k3) or the instance agentOptions.

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-subagent-tools 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:lynx-gt/dsh-subagent-tools

Headless (CLI) profile:

dsh plugin --profile headless add github:lynx-gt/dsh-subagent-tools

Test report

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

When to use it

Automate a repetitive job — scheduling, chaining tasks, or reacting to events — so it runs without you starting it.

Who it's for

Users with recurring work who want it cron-style and hands-off rather than manually triggered.

For developers — extending it

Triggers and task templates are the seams — add event-driven or file-watch triggers, and richer workflow composition.

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

Share this badge

More in Automation

Browse all 7797 plugins →