Back to marketplace

evo-subagent

Agent & Workflow

ZekaiShi/evo-subagent

Unified subagent routing and evolution plugin with role-based bindings, per-agent knowledge files, and project-scoped isolation.

  • agent-plugin
  • ai-agent
  • deepseek-harness
  • dsh
  • dsh-plugin
  • llm-agent
  • model-routing
  • plugin
  • subagent
GitHub Stars
3GitHub
Views
0DSH Plugin Hub
Forks
0GitHub
Open issues
0GitHub Issues
Manifest version
0.5.0evo-subagent
Latest push
Aug 26, 2026GitHub
License
MITJavaScript
Plugin type
Host + ClientRuns in both Host and Web Client

README

View source

evo-subagent

evo-subagent — Route. Remember. Evolve.

English | 简体中文

npm version license Node.js

evo-subagent is a DeepSeek Harness plugin for predictable subagent routing and project-scoped evolution.

It maps stable agent roles to registered provider/model pairs, remembers verified commands and lessons for each role, and keeps every project's agent knowledge isolated.

Features

  • Route each agent_key through a same-named Markdown binding.
  • Validate the exact provider/model pair before creating a child agent.
  • Maintain per-agent prefercmd.md and memory.md knowledge files.
  • Isolate bindings and evolution data by project workspace.
  • Support fresh spawn children and context-aware fork children.
  • Fall back to DSH's native model inheritance when no binding exists.
  • Store no API keys, endpoints, credentials, or provider definitions.

Installation

dsh plugin add evo-subagent

Quick start

Open and manage evo-subagent in DSH

  1. Open Settings → Plugins and expand evo-subagent.
  2. Select a workspace and add a built-in role, or place a custom binding in its agents/ directory.
  3. Choose a registered provider/model pair for each custom binding.
  4. Expand an agent to review its prefercmd.md and memory.md evolution files.

Download the MP4 tutorial

Agent bindings

Create an agents/ directory in the project and add one Markdown file per role. The filename stem becomes the agent_key.

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

Each binding begins with a strict front matter block:

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

# Code reviewer
Optional role notes may follow.

The provider and model must already be registered. Matching is exact and case-sensitive.

Call the plugin tool with the corresponding key:

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

Built-in roles

Three templates are included:

agent_keyRole
code-reviewerSeverity-ranked code review
researcherEvidence-backed investigation
wps-workerOffice document production

A project binding with the same agent_key overrides its built-in template.

Evolution

Each project stores role-specific knowledge under:

.evo_subagent/evolution/<agent_key>/prefercmd.md
.evo_subagent/evolution/<agent_key>/memory.md
  • prefercmd.md records commands that have been verified to work.
  • memory.md records reusable lessons and failures to avoid.

Foreground subagents receive a bounded knowledge block. They can return new entries with:

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

Entries are deduplicated and bounded. Prefix an entry with ! to keep it at highest priority, or ? to make it compressible when the context budget is tight.

Legacy .smart_subagent/evolution data remains a read-only fallback and is copied to the new location on the next save.

Workspace management

The plugin settings card groups agents by project and lets users:

  • view or collapse workspace agent lists;
  • edit a custom binding's registered provider/model route;
  • add a built-in role to a workspace by copying its template;
  • bind one workspace-root AGENTS.md as the Main agent;
  • inspect and edit each agent's evolution files.

Main-agent evolution is stored under .evo_subagent/evolution/main/. Binding and unbinding only changes the plugin-managed instruction block in AGENTS.md.

Tool fields

FieldRequiredDescription
agent_keyYesBinding filename without .md.
descriptionYesShort task label.
promptYesComplete task for the child agent.
run_in_backgroundNoDefaults to true; use false to collect evolution output.

Routing behavior

  1. Resolve <agent_key>.md safely.
  2. Parse its fenced provider and model fields.
  3. Verify both values against the live model registry.
  4. Start the child through the selected spawn or fork provider.

Invalid bindings fail before a child is created. Missing bindings preserve native DSH inheritance unless a built-in template matches.

Development

Requires Node.js 22 or newer.

npm test
npm run check
npm pack --dry-run

License

MIT

Comments

0
Newest first