并行执行Skill parallel-execution

并行执行技能用于在软件开发中,通过单个消息调用多个子代理同时运行独立任务,以优化任务管理、减少多组件特性的实现时间并提升效率。适用于任务分解、代码执行加速等场景。关键词包括:并行执行、任务管理、软件开发、效率提升、独立任务、子代理调用、多任务处理、时间优化。

架构设计 0 次安装 0 次浏览 更新于 3/14/2026

名称:并行执行 描述:当多个子任务没有共享文件或依赖关系且可以同时执行时使用。

并行执行

概述

通过单个消息中的多个子代理调用同时执行多个独立任务。对于多组件特性,减少实现时间50-80%。

开始时宣布:“我正在使用并行执行同时运行[N]个独立任务。”

流程

步骤1:识别并行任务

检查子任务JSON文件中的parallel: true

bash .opencode/skills/task-management/router.sh parallel {feature}

输出显示哪些任务可以一起运行:

批次1(现在准备就绪):
- subtask_01.json (parallel: true)
- subtask_02.json (parallel: true)

批次2(在批次1之后):
- subtask_03.json (depends_on: ["01", "02"])

步骤2:执行并行批次

在单条消息中进行多个task()调用:

我将并行执行批次1的任务:

task(
  subagent_type="CoderAgent",
  description="执行子任务01",
  prompt="读取 .tmp/tasks/feature/subtask_01.json 并实现..."
)

task(
  subagent_type="CoderAgent",
  description="执行子任务02",
  prompt="读取 .tmp/tasks/feature/subtask_02.json 并实现..."
)

关键:两个task()调用在同一个消息中——不是分开的消息。

步骤3:等待所有任务完成

批次中的所有任务必须在进行下一个批次之前完成。

步骤4:验证批次完成

bash .opencode/skills/task-management/router.sh status {feature}

检查批次中的所有任务标记为status: "completed"

步骤5:执行下一个批次

一旦批次1完成,继续批次2:

task(
  subagent_type="CoderAgent",
  description="执行子任务03",
  prompt="读取 .tmp/tasks/feature/subtask_03.json 并集成..."
)

示例:转换多个文件

我将并行转换这5个子代理文件:

task(subagent_type="CoderAgent", description="转换认证代理",
     prompt="将 .opencode/agent/subagents/auth-agent.md 转换为新格式...")

task(subagent_type="CoderAgent", description="转换用户代理",
     prompt="将 .opencode/agent/subagents/user-agent.md 转换为新格式...")

task(subagent_type="CoderAgent", description="转换支付代理",
     prompt="将 .opencode/agent/subagents/payment-agent.md 转换为新格式...")

task(subagent_type="CoderAgent", description="转换通知代理",
     prompt="将 .opencode/agent/subagents/notification-agent.md 转换为新格式...")

task(subagent_type="CoderAgent", description="转换分析代理",
     prompt="将 .opencode/agent/subagents/analytics-agent.md 转换为新格式...")

时间节省:5个任务 × 10分钟 = 50分钟顺序执行 → ~10分钟并行(快80%)。

避免冲突

✅ 好(隔离文件)

task(CoderAgent, "创建 src/auth/service.ts")
task(CoderAgent, "创建 src/user/service.ts")
task(CoderAgent, "创建 src/payment/service.ts")

❌ 坏(相同文件)

task(CoderAgent, "添加认证函数到 src/utils/helpers.ts")
task(CoderAgent, "添加验证函数到 src/utils/helpers.ts")

这会导致合并冲突——改为顺序执行。

预加载共享上下文

在并行执行前加载上下文一次:

# 在并行任务前加载上下文
读取:.opencode/context/core/standards/code-quality.md
读取:.opencode/context/core/standards/security-patterns.md

# 现在所有并行任务都有相同上下文
task(CoderAgent, "实现认证服务...")
task(CoderAgent, "实现用户服务...")

不要让每个任务单独发现上下文(较慢)。

错误处理

并行执行期间任务失败

  • 在进入下一个批次前修复失败的任务
  • 批次中的其他任务仍可使用

任务以乱序完成

  • 直到当前批次所有任务完成,不要开始下一个批次
  • 使用子任务JSON中的依赖跟踪

文件冲突

  • 审查任务分解——确保真正的隔离
  • 如果任务必须修改相同文件,标记parallel: false

记住

  • 为并行执行,在单条消息中进行多个task()调用
  • 任务必须真正独立(没有共享文件/状态)
  • 在并行任务前一次预加载共享上下文
  • 在下一个批次前等待批次中所有任务完成
  • 时间节省:多组件特性减少50-80%实现时间
  • 最佳批次大小:2-4个任务(最多8个,如果真正独立)
  • 不要并行化修改相同文件的任务
  • 不要并行化有依赖关系的任务

相关

  • 任务分解
  • 上下文发现
  • 代码执行

关键模式:在同一个消息中进行多个独立的task()调用 = 并行执行。