What Is dsh-agent-teams? Command a Multi-Agent Team in DSH
dsh-agent-teams is a multi-agent collaboration plugin for DeepSeek Harness (DSH) that elevates the current session into a captain, able to assemble durable sub-agents, split a goal into dependency-aware tasks, and coordinate work through direct messages. This guide covers what dsh-agent-teams is, its core features, the full install/update/uninstall commands, typical usage, and troubleshooting — so you can command a team with one natural-language request, with no separate workflow engine.
What Is dsh-agent-teams?
dsh-agent-teams solves the lack of multi-agent collaboration inside DSH: one session becomes a captain, and a team protocol, eleven coordination tools, persistent state, and an automatic shared-task scheduler let the team deliver complex goals under natural-language command. The positioning and facts below all come from the official README (source):
dsh-agent-teams (GitHub repo NanmiCoder/dsh-agent-teams) is maintained by NanmiCoder under the MIT license. It does not replace the DeepSeek Harness host; instead it promotes the session to captain: the captain creates the team, assigns roles, splits tasks, and consolidates the final result. Team state is stored under <workspace>/.agent-teams/, and the Web panel reads that disk truth and combines it with live sub-agent activity. It is an agent-collaboration plugin in the DSH Plugin ecosystem, supporting both DSH Web and headless surfaces.
What Are the Core Features of dsh-agent-teams?
The core capabilities revolve around captain-led delegation, dependency-aware scheduling, direct messaging, and a live panel: durable members, an automatic shared-task scheduler, plan-before-execution, and opt-in quality gates. These capabilities all come from the official README (source):
- 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; the scheduler uses real running/idle/ready states and atomically claims one ready task per idle member.
- Automatic reuse and safe takeover: idle members claim the next ready task; reassignment revokes stale attempts and waits for the old worker to quiesce, while cold recovery retries stranded open attempts.
- Direct messaging: members send durable mailbox messages directly to teammates or the captain, with no relay required.
- Live activity panel: the Web UI combines segmented progress, a collapsible roster, and an interactive task DAG; running tasks show the member's model, and archives retain full history.
How to Install and Enable dsh-agent-teams?
One official npm command installs it; after validating the profile and restarting DSH, the /agent-teams command and the live activity panel appear in the Web UI.
1. Install dsh-agent-teams: install the plugin into the DeepSeek Harness Web profile via npm:
dsh plugin --profile web add @nanmicoder/dsh-agent-teams@latest
Use this directly when the DSH CLI is installed globally; otherwise run npx -y @deepseek-ai/dsh first. To pin a specific release, replace @latest with the concrete version.
2. Build from source: clone the repository and install a local build for development or auditing:
git 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 stays linked to this checkout.
3. Validate and restart: validate the composed profile, restart DSH, and refresh the Web UI:
dsh --profile web --dump-config
dsh web
4. Update the plugin: re-run the update command when you need a newer version:
dsh plugin --profile web update @nanmicoder/dsh-agent-teams
5. Uninstall the plugin: remove it when no longer needed:
dsh plugin --profile web remove @nanmicoder/dsh-agent-teams
The command forms above follow the host documentation, and the package name @nanmicoder/dsh-agent-teams comes from the README and the plugin entry (source).
Typical dsh-agent-teams Usage
dsh-agent-teams works right after installation: state your goal in natural language or launch /agent-teams, confirm the plan, and the captain schedules the whole team automatically.
1. Command a team in natural language: after enabling the plugin, just ask, for example, to review commits and return one consolidated report:
Use AgentTeams to review the commits after v0.5.3 from performance, security, and product perspectives. Return one consolidated report.
2. Use the /agent-teams slash command: the plugin registers the closed-namespace /agent-teams host command, so the Web GUI slash menu shows an agent-teams placeholder with an input hint:
/agent-teams research the pricing pages of three competitors
The command pipeline claims the line, then preserves that exact input as an ordinary user follow-up so it stays visible in the main chat.
3. Plan before execution: normal /agent-teams runs stage an unspawned roster and DAG first; only Approve & Run creates members and starts scheduling. Returning to chat revises the same draft, while discarding archives the draft and explicitly prevents automatic recreation.
4. Schedule fixed teams with named profiles: configure complete team profiles in cordis.patch.yml, then launch with an explicit profile flag:
/agent-teams --profile demo-delivery implement the feature
The first ordinary token is never treated as an implicit profile (source).
dsh-agent-teams Troubleshooting
If the command does not fire, the panel is blank, or tasks stay unclaimed, match the symptoms below. The troubleshooting points below all come from the official README (source):
1. The /agent-teams command does not fire: the symptom is no team protocol after typing the command. The cause is a Web profile that was not restarted, or slashCommand disabled in configuration. Fix: restart DSH and refresh the Web UI; make sure the config does not set slashCommand: false.
2. Blank panel or stale state: the symptom is no members or task progress in the Web panel. The cause is that the panel renders persisted state from <workspace>/.agent-teams/, and models may occasionally finish work without updating task state. Fix: confirm the workspace directory exists and is written by the same DSH process; concurrent processes editing the same team are not coordinated.
3. Ready tasks stay unclaimed: the symptom is ready tasks idle for a long time in the DAG. The cause is unfinished dependencies, or a member that is parked. Fix: inspect the task DAG for dependencies; wake a parked member via a direct message or explicit reassignment.
4. Tasks look lost after a cold restart: the symptom is open work not continuing after a restart. The cause is that cold recovery retries stranded open attempts with a fresh attempt ID. Fix: let the scheduler retry automatically; an interrupted resident attempt stays parked and resumes via a direct message without losing its capability.
Use Cases and Notes
dsh-agent-teams suits every user who wants multi-agent collaboration inside DSH, especially teams that split large goals across roles while keeping progress visible.
Use cases: developers who want to split a complex goal into parallel role-driven tasks; users who want clear dependencies and visible progress per subtask; and anyone who wants to command a team within a single session without an external workflow engine. In short, one session runs a whole team while every step stays visible and reviewable.
Notes: one captain leads one active team at a time; idle members are automatically reused for ready work, but members owning an open attempt stay parked until messaged or explicitly reassigned; state is file-backed and serialized within one DSH process, so concurrent processes editing the same team are not coordinated; models may occasionally finish work without performing the expected task-state update, and the panel reports persisted state as-is (source).
Project Links
dsh-agent-teams is an MIT open-source project maintained by NanmiCoder. Plugin detail page: dsh-agent-teams plugin details.
This page is an independent guide rewritten from the plugin's official README — for the authoritative documentation and the latest changes, defer to the source: NanmiCoder/dsh-agent-teams. A plugin is third-party code that runs on your machine once installed; inclusion is not an endorsement — review the source before installing.
FAQ
After enabling dsh-agent-teams, the current session becomes the captain. You state your goal in natural language; the plugin first stages an unspawned roster and task DAG, and only creates members and starts scheduling after you click Approve & Run.
In dsh-agent-teams, tasks have explicit states and cannot be claimed before their dependencies finish. The scheduler uses real running/idle/ready states, and each idle member atomically claims one ready task, ensuring tasks execute in dependency order.
After a cold process restart, the dsh-agent-teams scheduler retries stranded open work with a fresh attempt ID. An interrupted resident attempt stays parked and can resume via a direct message without losing its capability.
The dsh-agent-teams Web panel combines segmented progress, a collapsible roster, and an interactive task DAG. Running tasks show the member's model, and completed archives retain full member and task history, with live language switching between English and Simplified Chinese.
Quality gates in dsh-agent-teams are opt-in and support requirements-to-integration contracts, automatic repair and re-review, and explicit resume. Scope control is a completion-time audit rather than host write interception; failed review tasks do not unlock downstream work.
Reassignment or captain takeover in dsh-agent-teams revokes the old attempt and waits for the old work to stop before new work starts. This ensures a safe takeover and prevents multiple members from working on the same task at once.
Related Terms
- dsh-agent-teams
- dsh-agent-teams is a multi-agent collaboration plugin for DeepSeek Harness (DSH) that elevates the current session into a captain, assembling durable sub-agents, splitting goals into dependency-aware tasks, and coordinating work through direct messages.— dsh-agent-teams README
- Captain-led delegation
- Captain-led delegation is the core mechanism of dsh-agent-teams: the current session creates the team, assigns roles to members, and consolidates the final result after all tasks complete.— dsh-agent-teams README
- Dependency-aware tasks
- Dependency-aware tasks are the task model of dsh-agent-teams: tasks move through explicit states, cannot be claimed before their dependencies finish, and the scheduler assigns ready tasks in dependency order.— dsh-agent-teams README
- Direct messaging
- Direct messaging is the member communication mechanism of dsh-agent-teams: members send durable mailbox messages directly to teammates or the captain, with no relay required.— dsh-agent-teams README
- Quality gates
- Quality gates are the optional delivery-control feature of dsh-agent-teams, enforcing requirements-to-integration contracts with automatic repair and re-review.— dsh-agent-teams README