并行执行模式Skill parallel-execution

并行执行模式是指通过使用Task工具并设置`run_in_background: true`来同时启动多个子代理,实现多个任务并发运行,显著减少总执行时间的技能。适用于需要并行处理多个独立任务的场景,如代码审查、安全分析、性能测试等。

DevOps 0 次安装 0 次浏览 更新于 3/2/2026

name: parallel-execution description: 并行执行模式

并行执行模式

核心概念

并行执行通过使用Task工具并设置run_in_background: true来同时启动多个子代理。这使得N个任务可以并发运行,显著减少总执行时间。

关键规则: 所有的Task调用必须在单个助手消息中进行,以实现真正的并行性。如果Task调用在不同的消息中,它们将按顺序运行。

执行协议

第1步:确定可并行化的任务

在生成之前,验证任务是独立的:

  • 没有任务依赖于另一个任务的输出
  • 任务针对不同的文件或关注点
  • 可以同时运行而无冲突

第2步:准备动态子代理提示

每个子代理接收一个自定义提示,定义其角色:

你是这个特定任务的[ROLE]专家。

任务:[CLEAR DESCRIPTION]

上下文:
[RELEVANT CONTEXT ABOUT THE CODEBASE/PROJECT]

要处理的文件:
[SPECIFIC FILES OR PATTERNS]

输出格式:
[EXPECTED OUTPUT STRUCTURE]

关注领域:
- [PRIORITY 1]
- [PRIORITY 2]

第3步:在一条消息中启动所有任务

关键:在同一条助手消息中进行所有Task调用:

我正在启动N个并行子代理:

[任务1]
description: "子代理A - [简要目的]"
prompt: "[子代理A的详细指令]"
run_in_background: true

[任务2]
description: "子代理B - [简要目的]"
prompt: "[子代理B的详细指令]"
run_in_background: true

[任务3]
description: "子代理C - [简要目的]"
prompt: "[子代理C的详细指令]"
run_in_background: true

第4步:使用TaskOutput检索结果

启动后,检索每个结果:

[等待完成,然后检索]

TaskOutput: task_1_id
TaskOutput: task_2_id
TaskOutput: task_3_id

第5步:综合结果

将所有子代理的输出合并为统一的结果:

  • 合并相关发现
  • 解决推荐之间的冲突
  • 按严重性/重要性排序
  • 创建可操作的摘要

动态子代理模式

模式1:基于任务的并行化

当你有N个任务要实现时,生成N个子代理:

计划:
1. 实现认证模块
2. 创建API端点
3. 添加数据库模式
4. 编写单元测试
5. 更新文档

生成5个子代理(每个任务一个):
- 子代理1:实现认证模块
- 子代理2:创建API端点
- 子代理3:添加数据库模式
- 子代理4:编写单元测试
- 子代理5:更新文档

模式2:基于目录的并行化

同时分析多个目录:

目录:src/auth, src/api, src/db

生成3个子代理:
- 子代理1:分析src/auth
- 子代理2:分析src/api
- 子代理3:分析src/db

模式3:基于视角的并行化

同时从多个角度进行审查:

视角:安全,性能,测试,架构

生成4个子代理:
- 子代理1:安全审查
- 子代理2:性能分析
- 子代理3:测试覆盖率审查
- 子代理4:架构评估

TodoWrite集成

使用并行执行时,TodoWrite行为有所不同:

顺序执行:一次只有一个任务in_progress 并行执行:可以同时有多个任务in_progress

# 在启动并行任务之前
todos = [
  { content: "任务A", status: "in_progress" },
  { content: "任务B", status: "in_progress" },
  { content: "任务C", status: "in_progress" },
  { content: "综合结果", status: "pending" }
]

# 每个TaskOutput检索后,标记为完成
todos = [
  { content: "任务A", status: "completed" },
  { content: "任务B", status: "completed" },
  { content: "任务C", status: "completed" },
  { content: "综合结果", status: "in_progress" }
]

何时使用并行执行

好候选:

  • 多个独立分析(代码审查,安全,测试)
  • 多文件处理,文件之间相互独立
  • 从不同视角进行的探索性任务
  • 具有不同检查的验证任务
  • 具有独立组件的功能实现

避免并行化时:

  • 任务有依赖关系(任务B需要任务A的输出)
  • 需要顺序工作流(提交->推送->PR)
  • 任务修改相同的文件(冲突风险)
  • 顺序对正确性很重要

性能优势

方法 5个任务@每个30秒 总时间
顺序 30s + 30s + 30s + 30s + 30s ~150s
并行 所有5个同时运行 ~30s

并行执行大约是N倍速度提升,其中N是独立任务的数量。

示例:功能实现

用户请求:“实现用户认证,包括登录、注册和密码重置”

协调器创建计划

  1. 实现登录端点
  2. 实现注册端点
  3. 实现密码重置端点
  4. 添加认证中间件
  5. 编写集成测试

并行执行

并行启动5个子代理:

[任务1] 登录端点实现
[任务2] 注册端点实现
[任务3] 密码重置端点实现
[任务4] 认证中间件实现
[任务5] 集成测试编写

所有任务同时运行...

[通过TaskOutput收集结果]

[综合为协调的实现]

故障排除

任务按顺序运行?

  • 验证所有Task调用是否在单个消息中
  • 检查每个是否设置了run_in_background: true

结果不可用?

  • 使用带有正确任务ID的TaskOutput
  • 在检索之前等待任务完成

输出中的冲突?

  • 确保任务不修改相同的文件
  • 在综合步骤中添加冲突解决