The DeepSeek Harness (DSH) plugin ecosystem supports extensibility. When developing multi-agent systems, handling routing logic and accumulating reusable commands (prefercmd) and lessons learned (memory) for specific roles is a common pain point. As a unified plugin, evo-subagent focuses on role-based sub-agent routing and project-scoped evolution. It ensures that recurring tasks start with validated commands, thereby saving tokens.

Installation and Prerequisites

Before installing, make sure your environment meets the following version requirements:

  • DeepSeek Harness 0.1.5-rc.3 or later
  • Node.js >=24.2.0

The installation command is as follows:

dsh plugin add evo-subagent

Core Features

The plugin provides the following capabilities:

  1. Binding and routing: routes each agent_key to a same-named Markdown binding file.
  2. Strict validation: validates that the provider (provider) and model (model) pair is correct before creating a sub-agent.
  3. Evolution files: maintains knowledge files for each agent: prefercmd.md (validated commands) and memory.md (lessons learned).
  4. Workspace isolation: isolates bindings and evolution data by project workspace.
  5. Execution modes: supports spawn (create a brand-new sub-agent) and fork (context-aware sub-agent).
  6. Native fallback: falls back to DSH’s native model inheritance mechanism when no binding exists.
  7. Security isolation: the plugin itself does not store API keys, endpoints, credentials, or provider definitions.

Typical Usage

1. Configure Bindings

Create an agents/ directory in the project root and add a Markdown file for each role. The file name (excluding the extension) becomes the agent_key.

project/
├─ agents/
│  ├─ code-reviewer.md
│  └─ researcher.md
└─ .evo_subagent/
   └─ evolution/

Each binding must begin with a strict frontmatter block that defines the provider and model. Matching is case-sensitive.

provider: deepseek-official
model: deepseek-v4-flash

2. Invoke a Sub-Agent

Use the plugin tool to call the corresponding key. description is used for the task label, and prompt contains the full task description.

{
  "agent_key": "code-reviewer",
  "description": "Review the implementation",
  "prompt": "Report correctness, security, and test coverage issues.",
  "run_in_background": false
}

Evolution Mechanism

The plugin maintains evolution data for each agent under the project directory:

  • prefercmd.md: records commands that have been validated as effective.
  • memory.md: records reusable experience and failure cases.

A sub-agent can update these files by returning a specific tag:

[[EVOLUTION]]
prefercmd:
- pnpm test
memory:
- Do not use --force in CI.
[[/EVOLUTION]]

Built-in Roles and Skills

Built-in Roles

The plugin provides three built-in role templates. Same-named bindings in the project override the built-in templates:

  • code-reviewer: code review
  • researcher: evidence-backed investigation
  • wps-worker: office document production

Bundled Skills

Installing the plugin registers three helper skills in the DSH skill directory. They are only visible after enabling the skill registry and tools in DSH:

  • /evo-route-doctor: diagnoses routing issues or invalid provider/model pairs.
  • /evo-memory-review: reviews stale or conflicting knowledge in role memory files.
  • /evo-delegation-guide: selects an existing role and prepares a scoped sub-agent task.

Notes

  • The plugin runs with the permissions of the current DSH process. It is recommended to review the source code and license before installation.
  • Evolution data is stored in the project-local .evo_subagent/ directory.
  • Make sure that the DSH skill registry and skill tools are enabled for the bundled skills to take effect.

Repository and License