Fleet Mode
Fleet Mode 是一个实验性的编排功能,用于从一个父会话并行运行多个子代理。当工作可以拆分为独立的单元时,父会话会分配职责范围,并汇总各个子代理的结果。 在 Laravel 版中可以从 typed RPC layer 调用session.fleet.start。
适合的用途
- 可以按文件、包、语言 SDK 拆分的重构
- 分别调查多个模块的研究任务
- 以差异、警报、文档页面为单位的评审
- 迁移工作等每个职责范围可以独立验证的任务
启动 Fleet Mode
prompt 是可选的。省略时仅通过运行时侧的 Fleet Mode 指令来启动。
从 Plan Mode 启动
如果你在自行处理 Plan Mode UI,可以在onExitPlanModeRequest 中选择 autopilot_fleet,从已批准的计划进入 Fleet Mode。
autopilot 用于单个自主 worker,interactive 用于用户持续参与的运行方式,autopilot_fleet 用于以并行方式推进独立工作单元的运行方式。
子代理的协作
Fleet Mode 不是通过隐式的共享内存,而是通过显式的工作单元进行协作。父会话拆分任务,每个子代理只处理自己的职责范围,返回完成或阻塞状态。 在设计工作单元时,请明确以下几点。- 1 个 worker 负责的范围
- 该 worker 可以编辑的文件或目录
- 完成时应返回的产出或验证结果
- 与其他任务的依赖关系
注意事项
- Fleet RPC 是生成 RPC 层的实验性功能。使用时请匹配 Copilot CLI 和 SDK 的版本
- 避免容易冲突的文件编辑,明确分配职责范围
- 在父会话侧汇总结果的前提下,如果将各 worker 的报告格式包含在 prompt 中会更易处理
参考
最新信息请参考 GitHub 仓库。