--- name: dispatching-parallel-agents description: > dispatching-parallel-agents — 并行派发子 Agent。 当有 2+ 个独立任务且无共享状态时可以并行执行。 --- # Dispatching Parallel Agents(完全版) ## 核心原则 **每个独立问题域派发一个 Agent,让他们并行工作。** ## 何时使用 ``` 有多个失败? ↓ 它们是否独立?(不同根因) ↓ 是 → 可以并行派发 ↓ ↓ ├─→ 独立问题域 A → Agent-A ├─→ 独立问题域 B → Agent-B └─→ 独立问题域 C → Agent-C 否 → 单个 Agent 按顺序处理 ``` **使用场景:** - 3+ 个测试文件失败,根因不同 - 多个子系统独立出问题 - 每个问题可以独立理解 - 调查之间无共享状态 **不使用场景:** - 失败相关(修一个可能修全部) - 需要理解完整系统状态 - Agent 会互相干扰 ## 并行派发流程 ### 第一步:识别独立问题域 按问题域分组失败: ``` 问题域 A: - File A tests: 功能 A 问题域 B: - File B tests: 功能 B 问题域 C: - File C tests: 功能 C ``` ### 第二步:创建专注的 Agent 任务 每个 Agent 收到: - **具体范围**:一个文件或子系统 - **明确目标**:让这些测试通过 - **约束**:不修改其他代码 - **预期输出**:发现什么,修复什么 ### 第三步:并行派发 ```typescript // 派发多个 Agent 同时执行 Task("Agent-A: 修复功能 A 的测试") Task("Agent-B: 修复功能 B 的测试") Task("Agent-C: 修复功能 C 的测试") // 三个同时运行 ``` ### 第四步:审查和整合 Agent 返回后: 1. 阅读每个总结 2. 验证修复不冲突 3. 运行完整测试套件 4. 整合所有变更 ## Agent Prompt 结构 好的 Agent Prompt 包含: 1. **专注** - 一个清晰的问题域 2. **自包含** - 理解问题所需的所有上下文 3. **输出明确** - Agent 应该返回什么 ### Prompt 模板 ```markdown # Agent 任务:[问题域描述] ## 问题描述 [具体描述需要修复什么] ## 约束 - 只修复这个文件/子系统 - 不修改其他代码 - 如果需要改其他文件,报告问题 ## 预期输出 修复后返回: 1. 发现的问题 2. 实施的修复 3. 验证结果 ## 执行步骤 1. 阅读测试文件,理解每个测试验证什么 2. 运行测试,确认失败 3. 分析根因 4. 修复代码 5. 运行测试,确认通过 6. 提交修复 ``` ## 小溪的并行规则 1. **最多同时 3 个 Agent** - 避免资源竞争 2. **问题必须真正独立** - 不能有依赖关系 3. **结果不冲突** - 修复不会互相影响 4. **状态透明** - 更新 ACTIVE-TASK.md ## ACTIVE-TASK.md(并行版本) ```markdown # Active Task: [项目名] - 并行执行 ## 状态 - 状态: 并行执行中 - 开始时间: YYYY-MM-DD HH:mm - 并行数: 3 ## Agent 分配 | Agent | 问题域 | 状态 | 结果 | |-------|--------|------|------| | Agent-A | 功能 A | ✅ 完成 | 3 测试修复 | | Agent-B | 功能 B | 🔄 执行中 | - | | Agent-C | 功能 C | ⏳ 等待 | - | ## 整合结果 [所有 Agent 完成后汇总] ``` ## 完成后 1. 运行完整测试套件确认全部通过 2. 整合所有修复 3. 如果有冲突,单独处理 4. 继续下一步骤