Multi-agent team collaboration for DeepSeek Harness, with per-assistant models, skills, MCP servers, isolated contexts, and a shared workspace.
- Language
- TypeScript
- License
- MIT
- Branch
- main
Install
$ dsh plugin --profile web add @limuyang2/dsh-agent-teamRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
Install via your agent
Install the DeepSeek Harness plugin limuyang2/agent-team for me: review the repository at https://github.com/limuyang2/agent-team first, then run the install command and verify the plugin loads successfully.
Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.
一句话定位
Agent Team 是 DeepSeek Harness 的多 Agent 协作插件。它把每位团队成员都当作独立根级 Agent 启动,共享同一个工作目录但隔离各自的模型、对话和权限,让 Leader 负责规划与验收、专业成员负责执行。
核心能力
- 在 Harness 内组建由一位 Leader 和若干成员构成的 Agent 团队,成员可以是同一助手的多个实例
- 为每位成员独立选择 Provider、模型、思考模式、Agent Preset、权限预设、可用 Skills 与 MCP Servers
- 通过共享任务板让 Leader 创建与分派任务,成员回报进度与结果,状态变更自动通知 Leader
- 在全屏工作台并排查看所有成员的流式输出、Markdown、Think 块和工具调用
- 浏览团队共享 Workspace,手动刷新或跟踪文件变化,并预览 Git Diff
- 在运行时添加/移出成员、更换 Leader、清空全部上下文或解散团队
- 通过内置"团队 Agent 小助手"用对话方式描述角色,自动整理出可保存的助手模板
技术实现
- 语言: TypeScript + React(前端 UI 部分使用 React 18)
- 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-agent、@deepseek-ai/schemastery、zod、chokidar、@pierre/diffs
- 架构模式: Cordis 双面插件——服务端
apply注入 agents/sessions/tools/webServer 等宿主服务,注册团队任务工具并挂载 Web 传输;客户端apply通过settings.section与shell.overlay两个 Slot 注册助手管理面板与团队工作台浮层 - 入口文件: 服务端
src/index.ts、客户端src/client/index.tsx、配置定义src/config.ts
适用场景
当单个 Agent 同时承担需求理解、编码、测试、评审和文档撰写,每件事都消耗昂贵的高等级模型与庞大工具目录时,使用 Agent Team 把"专业的事"交给"专业的 Agent"。它适合需要 Leader 把任务拆解给不同模型成员协作的复杂软件开发流水线,也适合在同一个代码仓库里让多个 Agent 并行工作、互不污染上下文。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness | 0.1.0-rc.7 | 通过 @deepseek-ai/dsh-* 一组 peerDependencies 锁定 |
| Node.js | 22.19.0 或 24.0.0+ | engines.node 声明 ^22.19.0 || >=24.0.0 |
| pnpm | PATH 中可用 | Harness 使用 pnpm 管理 Profile 插件;缺失时用 npm i -g pnpm 安装 |
| 运行平台 | 跨平台 | 未声明 os / cpu 限制 |
| 原生模块 | 无 | 仅依赖纯 JS 库与 zod、chokidar、@pierre/diffs |
安装方式
dsh plugin --profile web add github:limuyang2/agent-team
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| maxRequestBytes | number | 单次 HTTP 请求体大小上限(字节),超过会被拒绝 | 131072 |
| sseHeartbeatMs | number | SSE 长连接心跳间隔(毫秒),防止代理链路超时 | 20000 |
| runtimeConcurrency | number | 团队运行时并发处理任务的最大数量 | 4 |
| directMemberChatDefault | boolean | 新建团队时是否默认允许用户直接与普通成员对话 | true |
| assistantBuilderProvider | string | "团队 Agent 小助手"使用的 Provider ID,留空表示沿用 Profile 默认 | "" |
| assistantBuilderModel | string | "团队 Agent 小助手"使用的模型名称,留空表示沿用 Provider 默认 | "" |
| assistantBuilderAgentPresetId | string | "团队 Agent 小助手"使用的 Agent Preset ID | "" |
| assistantBuilderPermissionPresetId | string | "团队 Agent 小助手"使用的权限预设 ID | "" |
常见问题
Q: Agent Team 和官方子 Agent(Subagent)有什么区别?
A: 官方 Subagent 通常继承父级的模型、工具与上下文;Agent Team 把每位成员当作独立根级 Agent,各自拥有模型、Session、权限和思考模式,通过团队任务板与显式消息协作,避免上下文膨胀和"小任务也要跑大模型"的浪费。
Q: 团队里能用不同的模型吗?需要手动准备 API Key 吗?
A: 可以。每个成员可在助手模板里独立选择 Provider 和模型;Agent Team 只从当前 Profile 读取模型目录,自己不保存任何 Provider 凭据,API Key 完全交给 Harness 管理。
Q: 团队成员之间会共享对话历史吗?
A: 不会。成员共享同一个 Workspace 文件夹,但每人有独立的 Session 和上下文窗口;沟通只能通过任务板和团队消息显式传递,避免上下文互相污染。
Q: 怎么查看团队成员的代码改动?
A: 在工作台切换到 Changes 页签即可预览 Git Diff;前提是所选 Workspace 本身是 Git 仓库,普通目录只能浏览文件,不会显示 Diff。
Q: 助手删除按钮是灰色的怎么办?
A: 该助手仍被某个团队成员引用。先在对应团队中移出引用它的成员,或直接解散相关团队,再回来删除助手。
Q: 安装后还需要做什么才能使用?
A: 在 Harness 里准备好至少一个可用的 Provider 与模型,再通过"设置 → Agent 团队"创建助手,最后点击悬浮 Team 按钮组建团队即可。
Q: 修改助手模板会立即生效到现有成员吗?
A: 不会。成员加入团队时会生成配置快照;之后编辑助手模板不会热更新正在运行的成员,需要先移出旧成员再重新添加。
Q: 思考模式为什么找不到某些档位?
A: 档位列表来自 Harness 上 Provider 报告的模型能力。插件不会伪造模型不支持的档位,请在 Provider 配置中确认该模型确实声明了相应能力。
上手难度
入门 — 概念直观(助手库 → 组建团队 → 发目标),但要真正发挥多模型隔离的价值,仍需理解 Session、Provider、Agent Preset 等基础概念。
已知问题与限制
- 助手模板里的权限只是成员首次启动的初始默认值,运行时可被临时改写;同理思考模式选项取决于 Provider 上报的模型能力,插件不会伪造。
- MCP 凭据保留在 Harness Profile 中,助手模板只保存允许使用的 Server 名称,不存储密钥。
- 从 Workspace 外选择的文件会被复制到
.agent-team/uploads/才能被 Agent 稳定读取。 - Changes 视图要求 Workspace 本身是 Git 仓库;嵌套在普通目录下的仓库不会被当作 Workspace 仓库。
- Harness 当前没有公开 API 能物理删除单个 Session 日志,清空或解散后的 Session 不再被 Agent Team 恢复或使用,但旧日志可能继续保留在 Harness 存储中。
English | 简体中文

Current release: 0.1.3
Build teams of independent AI agents inside DeepSeek Harness. Mix models and providers, assign one Leader, and let every member work in its own conversation while sharing the same Workspace.
Agent Team does not turn members into subagents. Every member is an independent root agent with its own model, session, context, permissions, reasoning mode, and tool activity. Team tasks, messages, and the shared Workspace provide the collaboration layer.

Why Independent Agents Instead of One Overloaded Agent?
Agent Team is designed around a simple idea: give specialized work to a specialized agent.
A common parent/subagent workflow reuses or inherits much of the parent runtime configuration. That is convenient, but it can make every task carry the same expensive model, broad tool catalog, and growing context. A small commit-message task, for example, may still run through the same high-capability model used for architecture and implementation.
Agent Team lets every member have an explicit, focused configuration:
| Concern | Common parent/subagent setup | Agent Team |
|---|---|---|
| Model | Often reuses the parent model or one shared model policy | Choose a different provider and model for every member |
| Skills and MCP | A broad catalog may be inherited or exposed everywhere | Give each role only the Skills and MCP Servers it needs |
| Context | Planning, execution, tool output, and results accumulate together | Every member has an isolated Session and context window |
| Cost | Simple work may still consume an expensive general model | Route routine work to smaller or specialized models |
| Permissions | One broad permission policy can spread across the workflow | Set least-privilege defaults and runtime permissions per member |
This separation keeps the Leader focused on planning and verification, keeps specialists focused on execution, reduces irrelevant tool choices, and prevents one agent's context from growing with every detail produced by the whole team. Members send tasks, progress, and results explicitly instead of sharing an ever-expanding conversation.
Subagent behavior varies by framework. The comparison above describes the common parent-inherited pattern; Agent Team's advantage is that model, tools, permissions, and context isolation are explicit product-level choices for every member.
Example: Use the Right Model for Each Job
Consider a software development team with three specialized members:
| Role | Model | Focused configuration |
|---|---|---|
| Architecture Leader | GPT | Understand the requirement, design the solution, split work, coordinate members, and verify results |
| Coding Agent | GLM | Load coding Skills and development MCP tools, modify the Workspace, and run tests |
| Commit Assistant | DeepSeek Flash | Read Git status and diffs, then generate a Conventional Commit message with read-only permission |
The GPT Leader spends its context on decisions and verification instead of every implementation detail. GLM receives the codebase context and tools required for execution. DeepSeek Flash handles the narrow commit task quickly without paying for the Leader's higher-capability model or loading the coding agent's large tool catalog.
The collaboration flow is explicit:
User goal → GPT Leader plans and assigns work
→ GLM Coding Agent implements and reports test results
→ GPT Leader verifies the result
→ DeepSeek Flash Commit Assistant summarizes the Git diff
What You Can Do
- Create reusable assistants for planning, coding, testing, review, documentation, or any other role.
- Mix providers and models in one team—for example, a Codex Leader with GLM coding members.
- Create assistants manually or describe a role to the built-in Team Agent Assistant.
- Add the same assistant more than once; every selection becomes an independent team member.
- Watch all members side by side with streaming output, Markdown, Think blocks, and tool calls.
- Let the Leader create tasks, assign members, track progress, and collect results.
- Send messages directly to the Leader or, when enabled, to regular members.
- Change a member's permission preset and reasoning mode for the current session.
- Inspect loaded Skills, context usage, token statistics, and cache hit rate.
- Browse shared Workspace files and preview Git changes and diffs.
- Add or remove members, change the Leader, reset all contexts, or dissolve a team.
Screenshots
Create an Assistant by Conversation
Describe the role you need. The built-in assistant collects missing settings, prepares the long-term instructions, and creates the assistant only after your confirmation.

Reusable Assistant Library
Manage assistants under Settings → Agent Team. Each assistant can use a different provider, model, preset, default permission, reasoning mode, Skills, MCP Servers, and role instructions.
Skills and MCP scope: Agent Team uses Skills and MCP Servers exposed through the standard DeepSeek Harness interfaces. This plugin does not provide installation, updates, or lifecycle management for Skills or MCP Servers. Install the appropriate Harness plugins to manage those resources first; Agent Team only lets an assistant select and use the resources already available in the active Profile.

Build a Team
Select members, assign exactly one Leader, choose a Workspace, and decide whether direct communication with regular members is allowed.

Floating Team Launcher
A compact floating button opens the full-screen Team workbench without competing with sidebar extensions from other Harness clients. Hover over it or drag it to reveal the label. Drop it at either screen edge to collapse it toward that edge; the last position is remembered locally. Create teams and switch between them from the workbench navigator.

Requirements
- Node.js
22.19.0+or24.0.0+ - DeepSeek Harness
0.1.0-rc.7 pnpmavailable onPATH(Harness uses it to manage Profile plugins)
Install pnpm if necessary:
npm install -g pnpm
Installation
DeepSeek Harness Web
Install Agent Team into the Harness web Profile:
npx @deepseek-ai/dsh plugin --profile web add @limuyang2/dsh-agent-team
Start Harness:
npx @deepseek-ai/dsh web
Open the URL printed by Harness, normally http://127.0.0.1:3080/. Restart Harness after installing or replacing the plugin.
DeepSeek Harness Desktop
Install the exact Agent Team release into the Profile managed by DeepSeek Harness Desktop:
dsh plugin add --save-exact @limuyang2/[email protected]
Quit and reopen DeepSeek Harness Desktop after the command completes. --save-exact keeps the Desktop Profile pinned to the tested plugin version instead of automatically moving to a newer release.
Uninstallation
Stop Harness with Ctrl+C, then remove Agent Team from the web Profile:
npx @deepseek-ai/dsh plugin --profile web remove @limuyang2/dsh-agent-team
Restart Harness after the command completes. Removing the plugin does not modify DeepSeek Harness source code or delete files from your team Workspaces.
Quick Start
1. Configure Models in Harness
Configure the providers, models, and credentials you want to use in Harness first. Agent Team reads the model catalog from the active Profile and never stores provider API keys.
Tip: enable Thinking Mode for GLM-5.3
Add the following configuration to
~/.dsh/settings.yaml. It exposes the available reasoning levels for GLM-5.3 and setshighas the Provider default:llm-pi-ai: providers: zai-coding-cn: reasoning: high modelOverrides: glm-5.3: reasoningEfforts: off: minimal: minimal low: low medium: medium high: high xhigh: xhigh max: max compat: thinkingFormat: zai supportsReasoningEffort: trueMerge this block into an existing
llm-pi-aisection instead of adding a second one. If your ZAI Provider uses a different ID, replacezai-coding-cn. Restart Harness, then select the desired Thinking Mode from the assistant conversation toolbar; that runtime selection overrides the Provider default for the conversation.
2. Create Assistants
Open Settings → Agent Team and choose one of the following:
- Start Conversation to design an assistant through chat.
- Create Manually to configure all fields directly.
A practical first team usually contains:
- A Leader that understands goals, plans work, delegates tasks, and verifies results.
- One or more members focused on implementation, testing, review, or documentation.
3. Create a Team
Click the floating Team button, then click + in the workbench navigator:
- Add assistants from the list. You may add the same assistant multiple times.
- Select exactly one member as the Leader.
- Enter a team name and choose a Workspace.
- Choose whether users may chat directly with regular members.
- Click Create and Start.
The team starts automatically and opens in the full-screen workbench.
4. Give the Leader a Goal
Send the complete objective to the Leader. The Leader can split it into tasks, assign members, receive progress updates, and verify the final output. You can also talk to an individual member directly when the team policy allows it.
Workbench Guide
Each visible column is a real, independent Harness session.
- Member tabs: show or hide conversations. Hover a non-Leader tab to remove that member.
- Conversation header: shows role, provider, model, reasoning mode, and live status. Double-click it to enlarge the conversation.
- Composer: send messages, attach local files, mention Workspace files, stop generation, and change runtime settings.
- Permission: applies to the selected member's current session. The assistant template only supplies the initial default.
- Reasoning mode: applies from the next turn and only shows options supported by the selected model.
- Info: displays the Skills loaded for the member.
- Context ring: displays context usage, input/output tokens, and cache hit rate.
- Workspace: browse files, refresh manually, watch file changes, and preview Git diffs.
Team Collaboration
The Leader and members communicate through explicit team tools and messages:
- The Leader creates tasks and assigns them to member instances.
- Assigned members receive the task in their own session.
- Members report running, completed, or failed status with a result.
- Status and result updates automatically reach the Leader.
- Members can send direct team messages when clarification is needed.
- Membership changes are delivered to the Leader with stable member IDs.
Members share a Workspace, but they do not share conversation history. This keeps roles and model contexts isolated while allowing them to work on the same files.
Team Management
- Add member: starts a new independent member from an assistant snapshot and notifies the Leader.
- Remove member: stops and archives that member's session, removes it from the team, and notifies the Leader.
- Change Leader: changes the role without replacing the member's current session.
- Clear tasks and context: stops all members, clears team tasks and queued messages, and gives every remaining member a new session. Team settings and Workspace files stay unchanged.
- Dissolve team: permanently removes the team, its tasks, and team messages. Assistant templates and Workspace files are not deleted.
Assistant settings are snapshotted when a member joins a team. Editing an assistant later does not hot-update existing members; remove and add the member again to apply the new configuration.
Important Behavior
- The assistant's permission setting is only the member's initial default.
- Reasoning options come from Harness model capabilities; unsupported options are not invented by the plugin.
- MCP credentials remain in the Harness Profile. Assistant templates only store allowed server names.
- Files selected from outside the Workspace are copied to
.agent-team/uploads/so agents can access them reliably. - The Changes view requires a Git Workspace. Normal folders still support file browsing.
- Harness currently has no public API for physically deleting one session log. Reset or dissolved sessions are no longer restored or used by Agent Team, but old logs may remain in Harness storage.
Troubleshooting
pnpm not found on PATH
Run npm install -g pnpm, verify pnpm --version, and install the plugin again.
Port 3080 is already in use
Another Harness process is already running. Stop the old process with Ctrl+C, then run npx @deepseek-ai/dsh web again.
A model or reasoning option is missing
Refresh the assistant catalog and verify the model configuration in Harness. Reasoning modes only appear when the provider reports that capability.
An assistant cannot be deleted
The assistant is still referenced by a team member. Remove those members or dissolve the related teams first.
No Git changes are displayed
Confirm that the selected Workspace itself is a Git repository. A repository nested inside a non-Git Workspace is not treated as the Workspace repository.
User Documentation
The detailed user guide is available in Chinese:
- Documentation index
- Installation and startup
- Assistant library
- Creating teams
- Workbench and collaboration
- Workspace and Git changes
- Team management
- Troubleshooting
Links
License
MIT
Read the usage guide →
Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.
Listing badge
[](https://deepseek-plugin.org/plugins/limuyang2/agent-team)Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.