快速了解
它能做什么
通过带依赖关系的任务和消息协调多代理团队。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
Web Profile
Not established by supplied evidence
证据已验证
核对日期 2026/8/30 UTC 09:17
有代码证据的贡献
它为 DSH 增加什么
通过带依赖关系的任务和消息协调多代理团队。
机制证据 ↗选择前先看
通过带依赖关系的任务和消息协调多代理团队。
适合谁
需要在 DSH 中协调多代理工作的团队。
常见任务
- 将工作分派给多个代理
- 跟踪有依赖关系的任务和消息
权限与数据
该 Bundle 可协调代理并持久化团队工作流状态。
权限- 使用条目声明的插件或技能工作流。
- 本轮未独立审计数据处理方式。
- 外部服务以供应项目文档为准。
- 本轮未独立测试凭据要求。
局限
- 本轮未独立审计软件包内容和运行时行为。
DSHub 已核对
- 已记录固定源代码和供应的条目证据。
DSHub 未核对
- 本轮未安装或运行测试。
固定版本安装
安装 AgentTeams
这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
项目 README
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, eleven coordination tools, persistent state, an automatic shared-task scheduler, and a live Web UI—without requiring a separate workflow engine.
<p align="center"> <img src="./assets/ui.png" width="100%" alt="DeepSeek Harness conversation with the AgentTeams live activity panel, members, tasks, dependencies, and reports"> </p>Releases
Read the latest release notes or browse the complete release history. The same Markdown notes are included in the npm package under release-notes/.
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; running tasks show the member's model, and completed archives retain their full member and task history. |
| Plan before execution | Normal /agent-teams runs stage an unspawned roster and DAG first. The Web panel uses the host model catalog for member routes. Returning to chat stops the planning turn, asks what should change, and revises the same draft; discarding archives the draft, aborts the turn, and explicitly prevents automatic recreation. Only Approve & Run creates members and starts scheduling. |
| Quality gates | Opt-in quality tasks support requirements → implementation → verification → review → integration contracts, automatic repair/re-review, and explicit resume. Scope control is a completion-time audit, not host write interception. See docs/quality-gates.md. |
The conversation card and activity panel use Harness's official locale service. They follow live language changes between English and Simplified Chinese—including status labels, dynamic summaries, controls, archive markers, and accessibility text—without a page reload or a separate plugin setting.
Install
[!NOTE] Requires an existing DeepSeek Harness installation.
npm
dsh plugin --profile web add @nanmicoder/dsh-agent-teams@latest
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. An interrupted resident attempt stays parked and can resume through a direct message without losing its capability; after a cold process restart, the scheduler retries stranded open work 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 command pipeline claims the line, then preserves that exact input as an
ordinary user follow-up so it remains visible in the main chat. The gesture
boundary adds the deterministic activation directive at pre-step, so the
captain protocol still starts immediately. The invocation is also 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 with no open task are automatically reused for ready work. An idle member that still owns an open attempt is parked until messaged or explicitly reassigned; 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
Named multi-role profiles
Configure one or more complete team profiles in cordis.patch.yml. A profile always supplies the roster (independent provider/model/role/reasoning effort). Set taskPlanning: captain when the Captain should derive the DAG from the user's goal; omit it or set taskPlanning: seed to keep a fixed template workflow:
profiles:
demo-delivery:
description: Ship a small feature
protocol: Discuss requirements, review, test, then prepare release; do not deploy automatically.
members:
- name: analyst
model: gpt-5.6-sol
role: Analyze requirements
- name: implementer
model: gpt-5.6-terra
role: Implement the approved solution
tasks:
- id: requirements
subject: Requirements discussion
assignee: analyst
- id: implementation
subject: Implement solution
assignee: implementer
dependencies: [requirements]
Use an explicit profile flag: /agent-teams --profile demo-delivery implement the feature. The first ordinary token is never treated as an implicit profile. Normal command runs call agent_teams_create({ profile, approval: "required" }): the roster and seed/Captain-designed DAG remain staged, no child session is created, and no task is claimed. Edit the plan in the activity panel using the host model catalog, return to chat so the Captain asks what to revise and then atomically updates the same draft, discard it, or click Approve & Run. Return/discard actions cancel any planning turn still running; discard also parks model-facing context that forbids silently creating a replacement team. Approval resolves the final provider/model/reasoning choices, atomically spawns the roster, and starts only ready tasks. A running team is stopped from its own panel header through a confirmation dialog rather than from the composer. Direct tool clients may pass approval: "automatic" for the legacy immediate path. Failed review/test tasks do not unlock downstream work; automatic repair/review tasks do not depend on the failed review.
License
有意识地管理
安装与管理
前置条件与目标 Profile
目标: Web Profile
交付方式: Git Bundle — nanmicoder/dsh-agent-teams#5fe388f1a30da7b1374294b25bd6f8ad74ab6aa5。
验证、更新与移除
显示生命周期命令
dsh plugin --profile web list兼容性与访问范围
requires_host_review: Not established by supplied evidence。
风险事实
Review instructions before use.
证据 ↗证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
在核对来源内容和不可变发布记录后,已由人工批准发布。AI 参与了内容草稿生成,最终发布决定由人工完成。
人工审查于 2026/8/30 UTC 10:07。GitHub 事实核对日期: 2026/8/30 UTC 09:19。
自当前证据基线以来,没有记录到重要源码变化。