Appearance
/fleet 命令让 Copilot CLI 把一个复杂任务分解成多个可并行执行的子任务,分配给多个子代理同时处理。适合大型多部分任务(如同时修复多个文件的 Bug、并行生成多个模块的测试),相比顺序执行能显著缩短完成时间。代价是会产生更多 LLM 调用,消耗更多 Premium Request 额度。
GitHub Copilot CLI /fleet 命令:并行多代理任务加速指南
什么是 /fleet
/fleet 是 Copilot CLI 的一个内置命令,它让主代理分析任务并拆分成独立子任务,然后启动多个子代理并行执行这些子任务。
类比:就像项目管理中把大项目拆分给多个开发者并行推进——只是这里的"开发者"是 AI 子代理。
工作原理
- 你发出
/fleet指令,描述大型任务 - 主代理分析任务,判断哪些部分可以独立并行
- 子代理被分配各自的子任务,每个子代理有独立的上下文窗口(互不干扰)
- 并行任务完成后,主代理汇总结果
注意:子代理的上下文是隔离的,与主代理和其他子代理互相独立,所以适合相互之间没有依赖的子任务。
使用方式
在交互式会话中:
/fleet 把 src/components/ 目录下所有组件的 CSS 样式迁移到 Tailwind 类指定自定义代理处理子任务:
/fleet 使用 @test-writer 为所有新增的 API 端点编写测试用例配合 Autopilot 模式:
/fleet --autopilot 优化所有 API 响应,添加缓存头并确保 ETag 正确实现适合使用 /fleet 的场景
| 场景 | 说明 |
|---|---|
| 多模块并行修复 | 同时修复多个独立文件/模块的同类问题 |
| 批量测试生成 | 为多个模块并行生成测试用例 |
| 多语言翻译 | 同时将文档/注释翻译成多种语言 |
| 性能审查 | 并行分析多个服务的性能瓶颈 |
| 代码风格统一 | 同时对多个目录进行风格规范化 |
不适合使用 /fleet 的场景
- 子任务之间有严格依赖顺序(A 完成后 B 才能开始)
- 任务本质上是单一连续流程(如一个完整的代码审查)
- 对 Premium Request 额度敏感的情况
/fleet 与 Autopilot 的配合
| 功能 | 作用 |
|---|---|
| Autopilot 模式 | 让主代理自主执行多步骤,不需要每步确认 |
| /fleet 命令 | 让子代理并行执行子任务,加速完成 |
两者可以组合使用:先用 Autopilot 模式让 Copilot 自主规划和执行,在执行中用 /fleet 分发并行子任务:
bash
# 启动时同时开启 Autopilot + 全权限
copilot --autopilot --yolo -p "分析整个 codebase 的 TypeScript 类型错误,批量修复"
# 在会话中,Copilot 会在合适的时候自动或者在你输入 /fleet 时分发子任务成本与配额
使用 /fleet 会产生比单代理更多的 LLM 调用——因为每个子代理都要独立初始化和运行。在额度紧张时要慎用。
实践建议:
- 先评估任务规模,小型任务不值得
/fleet的开销 - 设置
--max-autopilot-continues防止子代理无限制运行 - 用
/context查看当前会话的 token 使用情况
常见问题
Q: /fleet 和 /delegate 有什么区别?
A: /delegate 是将当前任务委托给一个子代理处理(单个);/fleet 是将任务分解成多个子任务,分发给多个子代理并行处理(多个)。前者适合需要专项处理的任务,后者适合规模大但可拆分的任务。
Q: 子代理能访问主代理的上下文吗?
A: 不能。每个子代理有独立的上下文窗口,不继承主代理的历史对话。子代理需要的上下文要通过任务描述传入。
Q: /fleet 任务失败了怎么办?
A: 主代理会汇报哪些子任务成功、哪些失败。失败的子任务可以手动重新执行,或修改任务描述后重试。