English · 简体中文
dsh-agent-teams turns the current DeepSeek Harness session into a captain that can assemble durable sub-agents, split a goal into dependency-aware tasks, and coordinate work through direct messages.
Ask in natural language. The plugin provides the team protocol, ten coordination tools, persistent state, an automatic shared-task scheduler, and a live Web UI—without requiring a separate workflow engine.
| Capability | What it changes |
|---|---|
| Captain-led delegation | The current session creates the team, assigns roles, and consolidates the final result. |
| Durable members | Members are continuable DSH sub-agents that can be woken for focused follow-up turns. |
| Dependency-aware tasks | Tasks move through explicit states and cannot be claimed before their dependencies finish. |
| Automatic reuse and safe takeover | Idle members claim the next ready task; reassignment revokes stale attempts before new work starts, and cold recovery retries stranded open attempts. |
| Direct messaging | Members send durable mailbox messages directly to teammates or the captain—no relay required. |
| Live activity panel | The Web UI shows roles, current work, unread messages, task dependencies, and archived team history. |
Note
Requires an existing DeepSeek Harness installation.
dsh plugin --profile web add @nanmicoder/dsh-agent-teamsgit clone https://github.com/NanmiCoder/dsh-agent-teams.git
cd dsh-agent-teams
pnpm install
pnpm build
dsh plugin --profile web add .Run pnpm build again after changing the source. The local plugin install remains linked to this checkout.
Validate the composed profile, restart DSH, and refresh the Web UI:
dsh --profile web --dump-config
dsh webThen ask for a team directly:
Use AgentTeams to review the commits after v0.5.3 from performance, security, and product perspectives. Return one consolidated report.
- The current session creates a team and becomes its captain.
- The captain adds role-specific members backed by continuable sub-agents.
- The goal becomes tasks with owners and explicit dependencies.
- The shared scheduler uses real
running / idle / readystate to atomically claim one ready task per idle member and wake it. If an idle/ready member still owns an open task after an interrupted turn or process restart, the scheduler retries it with a fresh attempt. - Members update with the current
attempt_id; reassignment or captain takeover revokes the old attempt and waits for the old worker to quiesce before a new attempt starts. - The captain presents the combined result, then archives the complete team record.
Team state is stored under <workspace>/.agent-teams/; the Web panel reads that disk truth and combines it with live sub-agent activity.
Member creation is zero-interaction by default: the plugin snapshots the LLM provider, model, and reasoning effort actually used by the captain's current step, and restores that snapshot on later continuations. Only an explicit heterogeneous-team request (for example, “backend on provider A/model X, frontend on provider B/model Y”) supplies a member-specific provider + model; there is no per-member model or reasoning prompt.
Defaults work without extra setup. A trusted profile can override member behavior:
- id: agent-teams
config:
stateDir: .agent-teams
memberProvider: spawn
memberModel: deepseek-v4
memberMaxDepth: 1
maxMembers: 8memberProvider is the sub-agent runtime backend (spawn / fork), not an LLM provider. Cross-LLM-provider routing uses the optional provider + model fields of agent_teams_add_member; memberModel is only a model default for all members.
- One captain leads one active team at a time.
- Idle members are automatically reused for ready work; messages that cannot be delivered live remain durable and are retried at a later status boundary.
- State is file-backed and serialized within one DSH process; concurrent processes editing the same team are not coordinated.
- The activity panel reports persisted state as-is. Models may occasionally finish work without performing the expected task-state update.
See docs/usage.md for the full tool reference, state model, Web UI behavior, configuration, and known limits.
The repository also ships the open Agent Skills package dsh-plugin-development:
npx skills add NanmiCoder/dsh-agent-teams --skill dsh-plugin-development| Guide | Covers |
|---|---|
| Usage | Architecture, UI behavior, tools, configuration, limits, and validation |
| Verification | Offline, composition, real e2e, and GUI verification |
| Plugin development | Human-readable guide built from this plugin |
| README writing | Repository documentation conventions |
pnpm install
pnpm build
pnpm verify