Orchestration 决定任务如何拆分、并行、持续和恢复。它不改变底层模型、工具和 Safety 契约。
层级
flowchart TB Workspace --> Session Workspace --> Bot Session --> Run["run"] Run --> Goal Run --> Subagent Run --> Workflow Run --> Team Team --> Member["member"] Team --> Task["shared task"] Bot --> BotRun Bot --> Routine Bot --> Conversation["Bot Conversation"] Conversation --> Peer["peer BotRun"] Subagent --> MRM Workflow --> MRM Member --> MRM Subagent --> Safety Workflow --> Safety Member --> Safety
Workspace 提供文件边界。Session 提供持久对话边界,run 是一次 Session 执行。Bot 是另一种应用级持久边界,拥有独立 definition revision、Memory、Routine、Conversation 和 BotRun。
Goal
Goal 为跨轮任务保存 objective、completion criteria、constraints、预算和状态。complete 需要验证证据;blocked 由 terminal 类原因立即触发,或因同一阻塞原因连续出现 3 轮触发。
Subagent
Subagent 适合单个独立问题域。它获得独立上下文和角色权限,返回结果给调用者。同步派发等待结果,后台派发通过任务通知返回。
Workflow
Workflow 把 JavaScript 运行在 QuickJS 沙箱中。脚本可以调用 Agent、并行执行任务、标记 phase 并读取 constraints。
沙箱限制内存、栈、运行时间和 Agent 调用数。run_id 结合 journal 允许重复运行时复用已经完成的 Agent 结果。
Agent Teams
Team 适合需要长期协作、共享任务依赖和成员消息的工作。每个 member 有独立 transcript 和 inbox,可以绑定角色和模型。Team 共享所属 Session 的工作目录;需要文件隔离时,应让整个 Session 位于 Worktree 中。
Bots
Bot 适合把重复工作发布为独立 definition。Routine 负责定期创建 BotRun,Bot-to-Bot Conversation 使用 Message、Delivery 和 CollaborationTask 异步派发 peer BotRun。Group 中每个 Bot 保留自己的 revision、权限和预算,不形成共享权限上下文。
Agent Team 服务于当前 Session 的任务编排;Bot Group 服务于多个独立 Bot 的长期协作。两者都不是多真人聊天。
统一控制面
无论使用哪种编排方式:
- 模型调用必须经过 MRM。
- 工具调用必须经过角色权限和 Safety。
- 用户停止 Session 时必须能够中断等待。
- 运行状态必须进入事件流。
- 最终结果必须写入 Session 或对应持久化对象。