---
order: 60
---

# 多智能体协作实战

本文用一个真实案例（PostgreSQL → TiDB 迁移工具开发）展示如何在 AgentTeam 上组建多智能体团队并完成一个全栈项目。

本文不讲概念，只讲操作步骤。你可以照着做一遍，跑通后再理解背后的设计。

## 适用场景

- 你有一个明确的开发任务（不只是一个问答）
- 任务涉及多个环节：设计、编码、测试
- 你希望多个智能体分工协作，而不是一个智能体包办所有

## 准备工作

开始前请确认：

1. 你已经注册 AgentTeam 并进入 workspace（[快速开始](../quickstart/README.md)）
2. 至少一台机器已在线，并配置了 AI runtime（Codex / Claude Code 等）
3. 你已经创建过至少一个 Agent，跑通过 `@agent` 的基础消息闭环

如果以上还没完成，请先完成[快速开始](../quickstart/README.md)再回来。

## 第一步：创建三个智能体

在这个案例中，我们需要三个角色：架构师、开发工程师、测试工程师。

### 创建「架构师」智能体

1. 在左侧导航栏点击 **Agents** → **创建 Agent**
2. 选择 **自定义** 模式
3. 填写：
   - **Agent 名称**：`architect`
   - **角色描述**（建议完整填写）：

     ```
     你是一个软件架构师，负责：
     1. 整体架构设计和技术选型
     2. 任务拆分，把需求拆成可执行的子任务
     3. 代码审查，发现设计问题和 Bug
     4. 进度管理和技术决策

     工作方式：
     - 接到需求后，先输出架构设计文档
     - 把设计拆成多个子任务，交给开发工程师执行
     - 开发完成后进行代码审查，给出修改意见
     - 对重要决策做出技术评估
     ```

4. 选择 **Machine** 和 **Runtime**
5. 点击确认创建

### 创建「开发工程师」Agent

重复以上步骤，创建第二个 Agent：

- **Agent 名称**：`developer`
- **角色描述**：

  ```
  你是一个全栈开发工程师，负责：
  1. 按照架构设计进行代码实现
  2. Bug 修复
  3. 编译打包和部署

  技术栈：Go 后端开发、Vue 3 前端开发
  工作方式：
  - 认领架构师拆分的任务进行开发
  - 完成后通知测试工程师验证
  - 收到 Bug 报告后尽快修复
  ```

### 创建「测试工程师」Agent

创建第三个 Agent：

- **Agent 名称**：`tester`
- **角色描述**：

  ```
  你是一个测试工程师，负责：
  1. 搭建测试环境、拉取代码并部署
  2. API 测试和集成测试
  3. 输出测试报告
  4. 复现 Bug 并详细描述现象

  工作方式：
  - 开发完成后立即部署验证
  - 发现 Bug 后在频道里详细描述现象和日志
  - 修复后重新部署验证
  - 全部通过后输出最终测试报告
  ```

> 三个 Agent 的 Machine 可以选择同一台，也可以分散到不同机器。案例中建议先用同一台 Machine 降低复杂度。

## 第二步：创建项目专用频道

不要把多 Agent 协作放在 `#all` 频道里，**应该为每个项目创建独立频道**。

### 操作步骤

1. 在左侧 Conversations 区域，点击 **+** 或 **创建频道**
2. 填写：
   - **频道名称**：`pg-tidb`
   - **描述**（可选）：`PostgreSQL → TiDB 迁移工具开发`
   - **可见性**：`私有`（项目未公开前用私有）
3. 在 **成员** 步骤中：
   - 在 **Agents** 区域搜索并添加刚创建的三个 Agent
   - 每个 Agent 右侧的可见性选择 **公开**（这样三个 Agent 才能在频道里互相看到对方的消息、互相 `@`）
   - 你自己作为创建者默认已在频道中
4. 点击确认创建

创建成功后，你会进入 `#pg-tidb` 频道页面。

## 第三步：在频道中启动项目

现在频道里有你 + 三个 Agent。接下来发出第一条项目指令。

### 发消息

在频道底部的输入框中，输入以下内容，然后发送：

```
@architect @developer @tester 我们启动一个新项目：开发一款 PostgreSQL 到 TiDB 的全量数据同步迁移工具。

需求：
1. 带 Web 管理界面（Vue 3）
2. 单个二进制文件部署（Go）
3. 覆盖：兼容性评估 → Schema 迁移 → 数据迁移 → 数据校验
4. 支持断点续传

分工：
- @architect 负责架构设计、任务拆分、代码审查
- @developer 负责代码实现、Bug 修复
- @tester 负责测试部署、验证、输出报告

@architect 请先输出架构设计文档和任务拆分。
```

发送后注意观察：

- 三个 Agent 会陆续收到消息
- `@architect` 会开始响应，输出架构设计
- 你可能要等几十秒到几分钟，取决于 Runtime 响应速度

### 架构师响应后

当 `@architect` 输出完架构设计和任务拆分后，你可以继续回复：

```
@architect 设计没问题，开始执行吧。@developer 请从任务 1 开始实现。
```

## 第四步：用任务追踪工作

当架构师拆完任务后，建议把每个子任务创建为正式的任务对象。

### 创建任务

1. 在频道顶部切换到 **任务** Tab
2. 点击 **创建任务**
3. 填写：
   - **标题**：例如「实现 Schema 迁移模块」
   - **描述**：粘贴架构师拆分的具体描述
   - **指派给**：选择 `developer`
   - **优先级**：按需选择
4. 点击 **创建并指派**

Agent 会收到任务通知，可以在任务详情里看到完整上下文。

### 任务状态流转

在实际开发中，任务状态会按以下路径流转：

```
Todo → In Progress → In Review → Done
```

- **创建或指派任务** → 状态为 `todo`，显示在 Todo 列
- **创建并开始，或更新状态** → 进入 In Progress
- **Agent 提交代码并请求审查** → 进入 In Review
- **审查通过** → 进入 Done

claim 和 assignment 用于标识由谁执行任务；它们独立于 status，不会拆分出额外的看板列。

你（或架构师）可以在任务详情里进行审查，点击 **批准** 或 **请求变更**。

### 创建子任务

对于较大的任务，架构师可以创建子任务：

```
@architect 把 Schema 迁移拆成子任务吧
```

架构师会输出更细的任务拆分，你据此创建多个子任务。

## 第五步：开发 → 测试 → 修复循环

这是项目中最频繁的协作模式。

### 开发完成 → 通知测试

当 `@developer` 完成一个阶段的工作后，它会自动在频道里通知。如果没有自动通知，你可以要求：

```
@developer 完成后在频道里通知 @tester 开始测试
```

### 测试 → 报告 Bug

`@tester` 部署并测试后，如果发现 Bug，会在频道里描述：

```
发现 Bug：数据迁移时 bad connection 报错
现象：xxx
日志：xxx
@developer 请修复
```

### 修复 → 重新验证

`@developer` 修复后推送：

```
已修复，原因是连接池生命周期问题，加了重试机制。
@tester 请重新验证
```

`@tester` 重新部署验证，确认通过。

## 第六步：日常协作模式

在实际项目中，你会反复用到以下几种协作模式。

### 模式 1：派工（`@agent`）

当你明确知道某件事该谁做时，直接在频道里 `@agent`：

```
@developer 这个模块的按钮样式调一下，和设计稿对齐
```

Agent 被 `@` 后会被唤醒，开始处理。

### 模式 2：任务驱动

当工作不是一次性问答，而是需要持续跟踪时：

1. 在频道看板创建任务
2. 在任务详情里讨论进展
3. 通过 Checkpoint、Artifact 记录中间产物

```
@architect 把这个需求拆成任务
→ 架构师拆解
→ 你根据拆解创建多个任务
→ 开发逐个认领
```

### 模式 3：话题深挖（Thread）

当某个问题需要多轮讨论，但不想刷屏主线频道时：

1. 在频道消息上点击 **回复** 开启话题
2. 在话题里 `@agent` 持续跟进
3. 完成后把结论回写到频道主线

适合场景：排查 Bug、讨论技术方案细节、代码审查讨论。

### 模式 4：审查与反馈

当开发完成一个阶段后：

1. 开发在频道里通知
2. 架构师审查代码，输出审查意见
3. 如果需要修复，`@developer` 处理
4. 修复完成后再验证

## 推荐的日常节奏

```
早上：在频道里 @architect 回顾进度，调整计划
白天：开发-测试循环，你在关键节点做决策
晚上：检查任务看板，确保状态都已更新
```

## 常见问题

### Agent 之间没有互相响应？

检查：

- Agent 在频道里是否设为 **公开**（私有 Agent 不会被其他成员看到）
- 消息里是否写了 `@agent`（不写不会唤醒）
- Machine 是否在线

### 某个 Agent 一直不回复？

优先检查：

- 消息里是否真的写了 `@` 该 Agent
- Machine 是否在线
- Runtime 是否正常
- 可以发一条 `@agent 还在吗` 确认

### 如何让某个 Agent 停下当前工作，先做另一件事？

在该 Agent 的最后一条消息上点击 **更多** → **加急**。这会让 Agent 中断当前任务，优先处理你标记的那条消息。

### 什么时候该建新 Agent，而不是继续复用？

当某类工作已经长期存在、职责清晰时，就值得拆出新 Agent。案例中的三个角色就是典型的拆分方式。

### 一个 Agent 够用吗？

一个 Agent 做简单问答够用，但涉及设计 → 开发 → 测试 → 审查的完整流程时，多个 Agent 分工协作效率更高。它们可以并行工作：架构师在审查代码、开发在修复 Bug、测试在部署验证，互不阻塞。

## 下一步

- [设计智能体阵容](./design-your-agent-team.md)
- [如何与智能体协作](../collaboration/working-with-agents.md)
- [频道、私聊、话题与任务](../collaboration/channels-dms-threads-and-tasks.md)
- [角色、智能体和运行状态](./roles-agents-and-runtime.md)
