# 对流（Convection）— 多 Agent 持续协作

对流是多 Agent 群聊模式。人类 + 多个 Agent 在一个会话中持续对话，会长提供私聊参谋。

## 一、概念

- **公共群聊**：人类发言，参与 Agent 串行回复——所有 Agent 可见彼此发言
- **会长**：一个独立 Agent 实体，人类可在右侧面板私聊咨询
- **热插拔**：会话中随时增减参与 Agent、更换会长

## 二、创建会话

1. 侧栏切换到**对流  会议室**
2. 点击「新建会话」
3. 系统自动选取会长（首个 Agent）和参与者（后续 2 个 Agent）
4. 创建后自动加载会话

## 三、群聊发言

1. 在底部输入框输入内容，按 Enter 发送
2. 参与 Agent 按列表顺序**串行**响应
3. 每个 Agent 独立 ReAct 循环（思考 → 调工具 → 回答）
4. 所有 Agent 回复完毕后，人类可继续发言
5. 任意单次的回复都可以在上方选择串行调用的顺序以及可以回复的agent。如果不希望某个agent在某次会话中回复，可以将其移除，之后在需要本轮次需要回复前，再将这个agent加回来。

## 四、会长私聊

- 右侧面板随时向会长发消息
- 会长基于公共群聊快照回复
- 与群聊并行，互不阻塞

## 五、动态管理

- **增删参与者**：顶部 Agent 配置栏点击 + / × 按钮
- **更换会长**：配置栏长按设为会长（选中的agent会单独引用框架内agent配置的副本成为会长）（非常不建议一个agent分别饰演多个角色）
- **重命名会话**：命名框输入后确认

## 六、工具调用

参与者可调用工具（与季风相同）。工具调用过程在气泡中折叠显示：
- `<think>` → 思考过程
- `<action tool="...">` → 工具名称和参数
- `<result>` → 工具返回
参与者不具备delegate的能力

## 七、数据存储

- 会话数据：`data/convection/sessions/{sessionId}.json`
- 会话索引：`data/convection/sessions/_index.json`
- 工作区：`data/convection/sessions/{sessionId}/workspace/`
- 以上数据不入仓库

## 八、状态恢复

- 刷新浏览器后，活跃会话自动恢复
- 消息历史通过 `/status` 端点获取

## 九、指令

在输入框中输入以下指令并发送：

| 指令 | 效果 |
|------|------|
| `/reset` | 归档所有对话记录并清空（工作区文件保留） |
| `/reset summary` | 归档并清空，但会长生成 3-5 句极简摘要作为新起点 |

适用场景：长会议到后期早期讨论已被推翻或跑偏，希望模型从干净状态继续工作。归档文件保存在工作区 `bak/` 目录下。

## 十、自动压缩

当对话上下文超过 200K tokens 时，会长在当前轮所有 Agent 说完后自动压缩：
- 保留最近若干轮原文不动
- 早期内容压缩为结构化摘要
- 压缩期间前端显示「会长正在整理对话记录」
- 压缩完成后会议无缝继续，不打断议题
