# Chat 与任务的区别

> 这是新用户最常问的问题。看完本文你就能在每次开发时**清楚地选择该用 Chat 还是任务**。

## 一句话区分

- **Chat = 一对一私聊**：AI 一次只能盯这一个 Chat，多个 Chat 之间只能**串行**等。适合"试试看"的小改动。
- **任务 = 一个微信群**：在群里能拉多个 Chat **并行**推进同一个大需求，整体完成后统一合并到默认分支。

## 数据模型对比

| 维度 | Chat | 任务 |
|------|------|------|
| 是否有标题 | 否（用第一条消息预览） | 是 |
| 并行度 | 多个 Chat 之间**串行**等 | 任务下多个 Chat **并行**跑 |
| 状态枚举 | 等待 / 执行中 / 完成 / 终止 | 未开始 / 进行中 / 已挂起 / 已结束 |
| 是否绑定应用 | 是（创建时选） | 是 |
| 是否带"主版本" | 直接基于**应用主版本**拉分支 | 拥有自己的**任务主版本**，所有 Chat 改动先合到这里 |
| 合并去向 | 合并到应用主版本 | 先合并到任务主版本，再合并到应用主版本 |
| 适合时长 | 几分钟到几十分钟 | 几小时到几天，多次推进 |
| 入口 | 侧栏 [Chat](#/chats) | 侧栏 [任务](#/tasks) |

## 行为对比

### 创建

- **Chat**：在 [Chat](#/chats) 页面输入框直接打字、选应用、发送即可，**无需先建任务**。
- **任务**：在 [任务](#/tasks) 页面点 *+ 新建任务*，填写标题描述。

### 输出方式

- Chat **当前不流式输出**：发送后状态显示 `执行中…`，AI 跑完才一次性把结果展示在右侧（执行中只看到三个跳动的省略号）
- 想盯进度就盯左侧 Chat 列表的状态徽章变化即可

### 中途控制

- Chat 不支持"挂起"，但可以**终止**——这只是前端打个"中断"标记，让你能再发一条消息接着聊；Agent 收到新消息后会继续往下做。
- 任务可以**挂起**保留全部上下文，需要时再恢复继续。

### 合并按钮

- Chat 详情底部只有 *合并到应用主版本*、*预览*、*发送*、*终止*。
- 任务下的 Chat 多一个 *合并到任务主版本*——会把当前 Chat 改动并入任务的长期分支。

## 选择指南

```
┌─ 改动是否需要分多次推进？ ─┐
│                          │
yes                        no
│                          │
▼                          ▼
任务                      Chat
│                          │
│           ┌─ 改完就想立刻上线？ ─┐
│          yes                  no
│           │                    │
│           ▼                    ▼
│       直接合并到主版本      继续追问 / 终止
▼
新建任务 → 多个 Chat → 任务主版本 → 一次性合并
```

## 实战示例

**场景 A**：你想把首页一个错别字改掉。
→ 直接去 [Chat](#/chats)，输入"把首页 xxx 改成 yyy"，跑完合并即可。

**场景 B**：你想重构整个登录模块，预计要改 10+ 文件、跨 3 天。
→ 去 [任务](#/tasks) 新建任务，描述目标和验收标准；然后在任务下开多个 Chat 分别处理"重构 store"、"重构 UI"、"补单元测试"等子事项；每次 Chat 完后合到任务主版本；全部做完再合并到应用主版本。

## 常见疑问

**Q：能把已经发的 Chat "升级"成任务吗？**
A：暂不支持。建议在意识到工作量大时尽早新建任务。

**Q：Chat 终止后还能恢复吗？**
A：可以。终止只是前端打的"中断"标记，并不会销毁 Chat。再往输入框里发一条消息，Agent 就会继续往下做，上下文和分支都还在。

**Q：任务里的 Chat 之间会冲突吗？**
A：每个 Chat 用独立分支干活，提交时合到任务主版本；如有冲突，AI 会提示并在合并阶段处理。

下一步推荐：`05-misc.md`
