NanmiCoder/dsh-agent-teams
AgentTeams plugin for DeepSeek Harness
已收录
515
Workflow
Bundle 已验证
功能介绍
AgentTeams 多智能体团队。
适合
- 可拆分给持久化、角色明确的子代理,并具有显式任务依赖的复杂目标。
- 需要由队长分派工作、协调成员直接通信并汇总最终结果的团队式工作流。
- 受益于持久化团队状态、空闲成员自动复用和中断任务恢复的较长工作流。
- 希望在 Web 界面实时查看成员、进度和任务 DAG 的用户。
不适合
- 无需委派、依赖跟踪或多代理协调的简单任务。
- 要求同一队长同时管理多个活跃团队的工作流。
- 需要多个 DSH 进程并发修改同一团队状态的场景;状态序列化仅限单个进程。
- 要求持久化任务状态绝对准确的流程;模型可能完成工作却未执行预期的状态更新。
README
English · 简体中文
One prompt. A working team.
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.
Why AgentTeams?
| 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 combines segmented progress, a collapsible roster, and an interactive task DAG; completed archives retain their full member and task history. |
Install
[!NOTE] Requires an existing DeepSeek Harness installation.
npm
dsh plugin --profile web add @nanmicoder/dsh-agent-teams
Build from source
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 remains linked to this checkout.
Validate the composed profile, restart DSH, and refresh the Web UI:
dsh --profile web --dump-config
dsh web
Then 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.
How it works
- 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: a member on the captain’s current LLM route snapshots that provider, model, and reasoning effort, while a member on a requested alternative route snapshots the target model’s default effort; later continuations restore the resolved snapshot. 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.
Slash command
No “use AgentTeams” phrasing required. 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: pick it (or type the
command), describe the goal, and press Enter.
/agent-teams research the pricing pages of three competitors
The line is claimed by the command pipeline and never reaches the model as
plain text — the handler queues one deterministic activation message as an
ordinary follow-up turn, so the captain protocol starts immediately. The
invocation is durably logged (command/run / command/done).
Surfaces without command adjudication (for example the headless CLI) get the
same deterministic activation through a gesture boundary: any genuine user
message starting with /agent-teams activates the protocol for the rest of
the text. Mid-sentence mentions stay ordinary prose.
Configuration
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: 8
memberProvider 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. A member on the captain’s current provider/model inherits the captain’s reasoning effort, while a changed provider or model automatically uses the target model’s default. To request a particular effort, pass the optional reasoning_effort field — one of the target model’s supported effort ids, or "default" to force the model’s own default.
slashCommand: false disables the deterministic /agent-teams activation surfaces (slash command and gesture boundary), leaving the natural-language trigger as the only entry point.
Boundaries
- 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.
Plugin development Skill
The repository also ships the open Agent Skills package dsh-plugin-development:
npx skills add NanmiCoder/dsh-agent-teams --skill dsh-plugin-development
Documentation
| 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 |
Development
pnpm install
pnpm build
pnpm verify
License
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:NanmiCoder/dsh-agent-teams。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。