多会话 Agent Board
有些工作对单个 AI 来说太重了 —— 同时处理后端、前端和一次 DB 迁移,或者把一次大型重构按领域拆分。多会话 Agent Board 把多个 AI 代理放到一块屏幕(一块看板)上,让它们以团队方式协作,并通过运行队列和统一审批让你始终安全掌控。
Blyck 的切入点不是”一个运行代理的地方” —— 如今每个主流工具都能做到这一点。它是**“一个运行代理、然后信任并合并结果的地方”**。三个层次让这一点成为现实:编排(跨会话查看与中继)、治理(ChangeSet + 统一审批,在代理运行时进行评审),以及运维工作台(DB、SSH、终端和预览就在代理旁边,并带有环境隔离)。
- 把多个 AI 聊天会话(Claude 和 Codex 混合)以卡片形式排布在一块看板上。
- 以节点/边图的形式实时可视化代理关系和工作流。
- 代理彼此交接工作(中继)并并行运行,而运行队列则防止冲突。
- 每一个审批请求都汇聚到一处 —— 底部的统一收件箱。
点击页眉中的 🤖 按钮,打开一个 Agent Board 面板(在新标签页或分屏中,和其他任何面板一样)。看板上的卡片是在后台停靠的 AI 聊天会话 —— 你从看板管理许多会话,而实际上同时只有少数几个在流式输出。
看板是一个纵向卡片列表(相比网格更优,网格会裁剪信息且扩展性差)。顶部固定着一条状态栏;下方是可以滚动、展开和重新排序的卡片。
一行固定的内容,概括整块看板:
6 agents · 2 streaming · 1 awaiting approval · total $2.14 · today $0.42- 实时统计代理数量、有多少个正在流式输出、有多少个正在等待审批。
- 累计运行费用,以及在许多代理同时运行时给出的并发流式输出警告(费用治理)。
每张折叠卡片默认显示3 行 —— 文件夹、摘要、进度 —— 外加一个紧凑切换,可将其压缩为一行以适应密集的看板。
| 行 | 显示内容 |
|---|---|
| 页眉 | 状态点 · 代理名 · 提供商/模型 · 📁 项目文件夹 · 模式徽标(chat/plan/act × instant/review)· ⏹ 停止 / ⤢ 展开 / 📌 停靠控件 |
| 摘要 | 近期活动摘要(或最后一句用户/AI 发言)、ChangeSet chip、运行费用 |
| 进度 | 流式输出尾部、当前工具,以及设置了步数预算时的第 N/M 步 |
状态点实时反映会话状态:
| 状态 | 含义 |
|---|---|
| idle | 无任何运行 |
| thinking / streaming / tool | 正在响应,或正在运行工具 |
| queued | 等待某个运行队列门控(见下文) |
| awaiting approval | 被统一收件箱中的审批卡片阻塞 |
| error | 上一回合失败(例如额度耗尽)—— 置顶固定 |
排序按活动进行,并将等待审批和错误的卡片置顶固定,使紧急事项不会滚出视野。
折叠 ↔ 展开
Section titled “折叠 ↔ 展开”- 折叠(默认,3 行) —— 文件夹、摘要、进度、ChangeSet、费用。紧凑切换可将其降至一行。
- 就地展开(手风琴) —— 点击卡片可原地展开:一段精简的对话记录 + 流式输出尾部 + 审批卡片 + 一个迷你输入框。你不会离开列表,而且可以同时展开多张卡片以便并排对比。
- ⤢ 展开为面板 —— 把会话拉出成一个真正的面板(完整的”驾驶舱”),用于深入工作。它是同一个聊天,因此不会分叉。
这就是控制塔 / 驾驶舱的分工:看板负责扫视和操控;完整的 AI 聊天面板用于深入工作。两者投射的是同一个会话。
切换页眉的 [List ⇄ Graph],即可从卡片列表切换到🕸 编排图 —— 一个层级化的 DAG,把每个代理绘制为一个节点、把每次委派(agent_send)绘制为一条边,支持平移和缩放。你一眼就能看出谁把什么交给了谁,以及事情卡在了哪里。
- 每个节点的实时状态:流式输出、等待、等待审批、完成。
- 流程路由:工作沿中继链所走的路径。
看板让代理关系可见,使繁忙的看板依然清晰易读。
| 边 | 含义 | 颜色 |
|---|---|---|
| → pipe | A 的结果交给 B | 蓝色 |
| ↩ ref | B 引用 A 的聊天 | 灰色 |
| ⑃ subchat | A 派生了子代理 B(ai_subchat) | 紫色 |
| ⚙ task | A 派生了一个后台任务(task_spawn) | 绿色 |
| ◱ team | 共享的笔记主题 / 项目文件夹 | 派生色带 |
- 连接通道(左侧栏)—— 一条 Git 图风格的通道,在卡片之间用曲线连接,按边类型着色,并用箭头表示方向。
- 每张卡片上的徽标 ——
→ pipe: B, C/↩ refs: A/⑃ subs: 2。点击可滚动到并高亮目标。 - 实时流动动画 —— 当一个 pipe 触发时,一个圆点沿 A→B 的连线移动,目标随之闪烁。
- 分组色带 —— 共享同一文件夹或团队主题的卡片会在左侧获得一条彩色色带。
- 聚焦模式 —— 点击 🔗 可淡化无关卡片,仅高亮某张卡片的进/出边。
代理被赋予同伴感知,使它们协作而非各自盲干。
| 工具 | 作用 |
|---|---|
agent_send(targetChatId, message) | 把工作/结果交给另一个代理(中继)。若目标正忙,会在该代理的回合结束后自动送达 |
agent_create(title, provider?, projectRoot?, mode?) | 创建一个基于角色的队友;通过返回的 chatId 向它发送消息 |
- 同伴感知提示词 —— 每个代理的系统提示词会写明它的队友、各自的职责范围以及产物存放位置,并要求它把共享决策记录到一份团队笔记(
workspace_note)中。 - 顺序中继 vs. 并行扇出 —— 有依赖关系的工作(C 需要 B 的结果)顺序中继;只有相互独立的工作才并行扇出。不要把同一个文件同时交给两个代理。
- 汇报协议 —— 当一个代理完成被委派的工作时,它会通过
agent_send向委派方汇报,以便编排者推进下一步。 agent_create限制 —— 新队友默认为 Act + Review 模式(每次变更都需要你审批);自主模式需要主动开启。创建上限为每 15 分钟窗口内 5 个代理。- 循环护栏 —— 如果同一对代理不断来回抛工作,中继会被阻止。护栏使用 15 分钟窗口(单向约 3 次、往返约 4 次、总计约 8 次)来阻止无限中继和费用失控。
运行队列 —— 安全地并行
Section titled “运行队列 —— 安全地并行”当多个代理同时行动时,冲突随之而来。运行队列用门控将它们串行化并加以协调,因此数字”5”是一个并发上限,而不是你能管理的代理数量上限 —— 停靠的卡片不产生任何开销。
- 自身回合门控 —— 如果代理自己已经在响应或准备中,则等待(每个聊天始终只有一个回合所有者)。
- 提供商预算 —— 每个提供商的并发上限;Claude(一个进程池,最多 5 个 LRU 并带有空闲清理)和 Codex(基于线程)分别计算预算,因此各自的上限互不侵占。
- 文件冲突护栏 —— 同一文件夹的代理默认并行运行;只有当两个回合触及同一文件时,才会有一个等待(约 90 秒)以防止覆盖。
- ⚡ 并行切换 —— 默认开启。关闭后会回退到严格的同文件夹串行化。
文件隔离 —— git + ChangeSet
Section titled “文件隔离 —— git + ChangeSet”Blyck 不使用 git worktree,而是用回合边界 git 检查点 + ChangeSet 归属 + 运行队列的文件冲突护栏来隔离文件工作。
- 每个回合都会打检查点(一个恢复点);当一块看板共用一个仓库时,每个代理分别提交,使变更保持可归属且可单独撤销。
- 之所以刻意不使用 worktree:每张卡片各自的文件夹是常见模式(因此冲突只会发生在同一个文件夹内),worktree 在 Windows 上代价高昂,而且在远程 SFTP 项目根目录上结构性地不可能实现 —— 而这恰恰是 Blyck 工作台大放异彩之处。
每个代理都拥有一个隔离的 SSH/DB 作用域。某个代理连接的远程主机或数据库不会泄漏进另一个代理的上下文 —— 从而防止团队协作中的意外。这是竞品工具在结构上无法企及的一层,因为这些代理就活在与 DB、SSH 和终端面板同一个工作台内部。
统一审批收件箱
Section titled “统一审批收件箱”当有多个代理 —— 其中若干在后台停靠 —— 时,审批请求否则会弹出在你看不见的隐藏 DOM 里。看板把它们全部汇聚到底部的一处,与内联审批卡片的位置一致。
- 按代理分组的紧凑卡片:命令预览 + 原因 / 工作目录 + 允许 / 拒绝。
- 手风琴可展开完整命令。
- 上限约为屏幕的三分之一并带内部滚动,因此绝不会淹没会话视图。
有关单张审批卡片的工作方式,请参见 AI 聊天 → 工具审批门。
看板序列化 —— 重启后恢复
Section titled “看板序列化 —— 重启后恢复”看板布局、每个会话的对话以及进度都会被序列化并保存(与命名面板布局相同的机制)。重启应用后,看板会完整回归 —— 包括卡片、对话和边。
底部固定的输入框可一次性发送给全部、部分或单个代理。附上一段共享的前导语(公共上下文),每个被选中的代理都会收到它,各自经过自己的运行队列门控和自己的审批模式 —— 绝不是绕过所有权的原始并行启动。
- 把总体目标交给主导代理。
- 主导代理用
agent_create创建基于角色的队友(或挂接已有会话)。 - 用
agent_send把独立工作并行扇出;有依赖的工作顺序中继。 - 从统一收件箱处理审批。
- 主导代理汇总并验证产物 —— 优先把验证委派给一个没有参与构建的同伴。
如果代理无休止地互相调用怎么办? 循环护栏会检测 15 分钟窗口内的来回重复和扇出,并阻止进一步的中继。
如果两个代理编辑同一个文件怎么办? 同一文件夹的代理并行运行,但当它们的回合触及同一文件时,运行队列的文件冲突护栏会让其中一个等待(约 90 秒),以防止覆盖。关闭 ⚡ 并行切换即可实现严格串行化。
同时能运行多少个代理? 并发按提供商设上限(Claude 约 5 个,Codex 单独计算),但你能管理的数量要多得多 —— 停靠的卡片不产生任何开销,运行队列会在空位释放时把其余的逐一放行。
重启后看板会消失吗? 不会。看板布局、对话、边和进度都会被序列化并恢复。
为什么不用 git worktree 来隔离? 每张卡片各自的文件夹使冲突罕见(仅限同文件夹),worktree 在 Windows 上代价高昂,且无法存在于远程 SFTP 根目录上。Blyck 改用 git 检查点 + ChangeSet + 文件冲突护栏 —— 它在远程文件夹上同样有效。
一个代理的 SSH/DB 连接会影响另一个吗? 不会。每个代理都有一个隔离的环境作用域,因此某个远程主机或数据库不会在代理之间泄漏。