Back to home@MisRightW

dsh-agent-teams

dsh-agent-teams

Stars
0
Language
TypeScript
Created
Aug 20, 2026
Updated
Aug 21, 2026
GitHub repo

Introduction

dsh-agent-teams

Role-based multi-agent team orchestration for DeepSeek Harness (dsh), maintained standalone.

One complex mission is decomposed into role assignments, executed as a dependency DAG of concurrent role subagents, and recorded as durable team/* Session events that the web GUI replays as a role board.

Packages

PackageRole
@deepseek-ai/dsh-agent-teamsHost plugin: TeamEngine (ctx.teamEngine) + the model-facing team tool + built-in templates (engineering, research) + the durable team/* event invariant
@deepseek-ai/dsh-client-ui-agent-teamsBrowser plugin: the team-run Conversation Node rendering the role board in the dsh web GUI

How a team run works

  • Formationteam: { template } names a roster (engineering: planner → implementer → reviewer; research: researcher → analyst → writer; config templates extends the set), which the engine decomposes through a planner subagent into one concrete assignment per role with dependency edges; team: { roles } accepts a model-authored inline roster and skips planning.
  • Execution — roles whose dependencies are satisfied start concurrently (up to maxConcurrentRoles); each settled role's output feeds its dependents' prompts; a role whose dependencies all failed or cancelled is marked blocked and never starts.
  • Progress — every transition is appended to the orchestrating parent Session as team/start, team/plan, team/role/start, team/role/end, team/end, so the tool result is reconstructable from the log and the web board replays live.

Configuration (dsh-agent-teams)

KeyDefaultMeaning
providerspawnThe ctx.subagents provider role subagents run on.
toolNameteamThe model-facing tool name.
maxConcurrentRoles4Maximum concurrently running role subagents.
maxRoleOutputChars20000Per-role output ceiling in characters.
maxRoles8Maximum roles per run.
maxDepth3Absolute delegation-depth cap for every child.
enableRunInBackgroundtrueExposes run_in_background on the tool.
maxResultChars50000Rendered-result ceiling in characters.
templates[]Extra team templates merged over the builtins.

Install and use

The host plugin is a normal dsh leaf plugin. Add one row to any composition that already mounts the dsh base spine (which provides dsh-tools, dsh-subagent + the spawn backend, and dsh-system-prompt):

- id: agent-teams
  name: '@deepseek-ai/dsh-agent-teams'
  config:
    provider: spawn

or load the package directly after pnpm add @deepseek-ai/dsh-agent-teams. See examples/cordis.yml for the minimal dependency footprint. The web role board is an additional client row:

- id: ui-agent-teams
  name: '@deepseek-ai/dsh-client-ui-agent-teams'

The team tool is model-facing: give it a complex mission plus a roster, and the parent agent receives an aggregated per-role outcome. Use it only when a task genuinely splits into several concurrent specialized roles; prefer plain subagent calls for one or two delegations.

Development

pnpm install            # workspace install; the dsh family resolves from npm (^0.1.0-rc.8 baseline)
pnpm run typecheck      # tsc -b for both packages and their tests
pnpm test               # vitest: engine/tool/invariant + client node/panel suites
pnpm run build          # tsc emit + tsdown bundles (lib/index.js, lib/invariant.js, lib/client.js)

Package READMEs (host, client) document contracts and the Model Experience; the Agent Note in the source history records the design decisions.

License

MIT — see LICENSE.