Dispatching Parallel Agents Skill
Dispatching Parallel Agents 是 Superpowers 中的並行處理型 skill,專注於同時分派多個代理處理獨立的任務,以最大化開發效率和速度。
何時使用
在以下情況中使用 Dispatching Parallel Agents skill:
✅ 必須使用的情境:
- 面對 2 個以上可以獨立進行的任務
- 任務之間沒有共享狀態或順序依賴
- 想要加速完成多個獨立功能
- 需要同時處理多個不同的檔案或模組
- 團隊有足夠的資源進行並行開發
❌ 不適合的情境:
- 任務之間有強烈的相依性
- 需要順序執行的工作流程
- 任務會修改相同的檔案或狀態
- 只有一個可以分配的代理
並行處理的原理
時間節省對比
順序執行方式:
任務 A (2hr) → 任務 B (1.5hr) → 任務 C (1hr)
總時間:4.5 小時
並行執行方式:
任務 A (2hr) ↘
任務 B (1.5hr) →→ 整合 (0.5hr)
任務 C (1hr) ↗
總時間:2.5 小時(節省 44%)
加速比計算
加速比 = 順序執行時間 / 並行執行時間
理想情況:
- 3 個相同時間的任務
- 加速比 ≈ 3x
實際情況:
- 考慮整合開銷
- 加速比 ≈ 2-2.5x
並行任務的條件
1. 獨立性
任務必須是真正獨立的:
// ✅ 可以並行
任務 A:修改 auth 模組
任務 B:修改 payment 模組
任務 C:修改 UI 組件
// ❌ 不能並行
任務 A:修改 User model
任務 B:依賴 User model 的 API
任務 C:使用 User model 的前端
2. 無衝突
不能修改相同的檔案:
# 檢查檔案衝突
任務 A 修改:src/auth/login.ts
任務 B 修改:src/auth/register.ts # ✓ 可以並行
任務 C 修改:src/auth/login.ts # ✗ 衝突!
3. 資源可用
有足夠的代理和資源:
所需資源:
- 可用的代理數量
- 記憶體和 CPU 資源
- 開發環境配置
- 協作工具支援
分派流程
第 1 步:識別並行機會
分析任務找出可以並行處理的部分:
## 任務分析
**大型任務**:建立電商網站
**子任務清單**:
1. 建立產品列表頁面
2. 建立購物車功能
3. 建立結帳流程
4. 建立使用者認證
5. 建立訂單管理
**並行分組**:
組 1:UI 組件(任務 1、2)
組 2:後端 API(任務 3、4)
組 3:資料庫設計(任務 5)
**依賴關係**:
- 組 1 和 組 2 可以並行
- 組 3 需要先完成(被其他依賴)
第 2 步:分配代理
為每個任務分配專門的代理:
# 同時分派多個代理
## Agent 1: Frontend Agent
「建立 Frontend Agent 負責產品列表頁面,
使用 React 和 TypeScript,預計 2 小時」
## Agent 2: UI Component Agent
「建立 UI Component Agent 負責購物車組件,
使用 React Context 管理狀態,預計 1.5 小時」
## Agent 3: Backend Agent
「建立 Backend Agent 負責結帳 API,
使用 Node.js 和 Express,預計 2 小時」
## Agent 4: Auth Agent
「建立 Auth Agent 負責認證 API,
實作 JWT 和 session 管理,預計 1.5 小時」
## Agent 5: Database Agent
「建立 Database Agent 負責訂單資料表設計,
使用 PostgreSQL,預計 1 小時」
第 3 步:並行執行
所有代理同時開始工作:
時間軸:
T0: 分派 5 個代理
T1: 所有代理開始工作
T2: Database Agent 完成 (1hr)
T3: Auth Agent 完成 (1.5hr)
T4: UI Component Agent 完成 (1.5hr)
T5: Backend Agent 完成 (2hr)
T6: Frontend Agent 完成 (2hr)
T7: 整合所有代理的產出
第 4 步:監控進度
追蹤各代理的工作進度:
# 進度追蹤
Agent 1 (Frontend): ████████░░ 80%
Agent 2 (UI Component): ██████████ 100%
Agent 3 (Backend): ██████░░░░ 60%
Agent 4 (Auth): ██████████ 100%
Agent 5 (Database): ██████████ 100%
# 調整資源分配
- Agent 2 和 4 可以協助其他代理
- Agent 1 可能需要更多時間
第 5 步:整合結果
收集並整合所有代理的產出:
# 整合順序
1. 先整合 Database Agent 的 schema
2. 再整合 Backend 和 Auth Agent 的 API
3. 最後整合 Frontend 和 UI Agent 的組件
# 整合測試
npm test
npm run build
npm run dev
實際範例
範例 1:同時開發多個功能模組
情境:需要建立一個新的管理面板,包含多個獨立功能
並行分派策略:
## 任務分解
**管理面板功能**:
1. 使用者管理
2. 產品管理
3. 訂單管理
4. 報表分析
5. 系統設定
## 並行分派
**Agent 1: User Management Agent**
「建立 User Management Agent 負責使用者管理功能,
包含使用者列表、編輯、刪除、角色管理」
工作內容:
- 建立 UserList 組件
- 建立 UserEdit 組件
- 實作角色管理 UI
- 整合使用者 API
預計時間:2.5 小時
**Agent 2: Product Management Agent**
「建立 Product Management Agent 負責產品管理功能,
包含產品列表、新增、編輯、庫存管理」
工作內容:
- 建立 ProductList 組件
- 建立 ProductForm 組件
- 實作庫存追蹤 UI
- 整合產品 API
預計時間:2 小時
**Agent 3: Order Management Agent**
「建立 Order Management Agent 負責訂單管理功能,
包含訂單列表、詳情、狀態更新、退貨處理」
工作內容:
- 建立 OrderList 組件
- 建立 OrderDetail 組件
- 實作狀態更新功能
- 整合訂單 API
預計時間:2 小時
**Agent 4: Analytics Agent**
「建立 Analytics Agent 負責報表分析功能,
包含銷售圖表、使用者統計、趨勢分析」
工作內容:
- 建立圖表組件
- 整合圖表庫(Chart.js)
- 實作資料聚合
- 整合統計 API
預計時間:1.5 小時
**Agent 5: Settings Agent**
「建立 Settings Agent 負責系統設定功能,
包含系統配置、通知設定、權限管理」
工作內容:
- 建立 SettingsForm 組件
- 實作配置管理 UI
- 整合設定 API
預計時間:1 小時
執行時間對比:
順序執行:
2.5 + 2 + 2 + 1.5 + 1 = 9 小時
並行執行:
max(2.5, 2, 2, 1.5, 1) + 0.5(整合) = 3 小時
時間節省:67%
範例 2:同時處理多個檔案的重構
情境:需要重構多個相似的服務檔案
並行分派策略:
# 識別需要重構的檔案
src/services/userService.ts
src/services/productService.ts
src/services/orderService.ts
src/services/paymentService.ts
# 每個檔案都有相似的重構需求:
# - 加入錯誤處理
# - 改善型別定義
# - 加入日誌記錄
# - 優化效能
## 並行分派
**Agent 1: User Service Refactor Agent**
「重構 userService.ts,加入錯誤處理和日誌」
**Agent 2: Product Service Refactor Agent**
「重構 productService.ts,加入錯誤處理和日誌」
**Agent 3: Order Service Refactor Agent**
「重構 orderService.ts,加入錯誤處理和日誌」
**Agent 4: Payment Service Refactor Agent**
「重構 paymentService.ts,加入錯誤處理和日誌」
# 執行結果
# 原本需要:4 小時(順序)
# 並行執行:1 小時(所有代理同時工作)
範例 3:同時撰寫多個測試檔案
情境:需要為多個模組補充測試
並行分派策略:
# 需要測試的模組
src/auth/login.ts
src/auth/register.ts
src/auth/password-reset.ts
## 並行分派
**Agent 1: Login Test Agent**
「為 login.ts 撰寫完整的單元測試和整合測試」
**Agent 2: Register Test Agent**
「為 register.ts 撰寫完整的單元測試和整合測試」
**Agent 3: Password Reset Test Agent**
「為 password-reset.ts 撰寫完整的單元測試和整合測試」
# 每個代理獨立負責一個模組的測試
# 包含:
# - 正常情況測試
# - 錯誤情況測試
# - 邊界條件測試
# - 整合測試
並行分派最佳實踐
1. 清楚的任務邊界
好的任務定義:
✅ 「Agent 負責 auth 模組的所有檔案,
不接觸其他模組,介面已定義好」
不清楚的任務定義:
❌ 「Agent 處理一些相關的功能」
2. 預先定義介面
// 在分派前定義好介面
interface UserService {
getUser(id: string): Promise<User>;
createUser(data: CreateUserDto): Promise<User>;
updateUser(id: string, data: UpdateUserDto): Promise<User>;
deleteUser(id: string): Promise<void>;
}
// 所有代理都遵循這個介面
3. 標準化的工作流程
# 為每個代理建立標準流程
1. 接收任務和介面定義
2. 獨立進行開發
3. 執行本地測試
4. 提交產出給整合者
5. 參與整合測試
4. 整合計畫
## 整合策略
**階段 1:收集產出**
- 收集所有代理的程式碼
- 檢查檔案結構
- 驗證介面一致性
**階段 2:解決衝突**
- 解決命名衝突
- 解決依賴衝突
- 解決程式碼風格差異
**階段 3:測試整合**
- 執行整合測試
- 驗證端對端功能
- 檢查整體效能
**階段 4:部署驗證**
- 建置測試
- 部署到測試環境
- 執行驗收測試
並行處理的挑戰
1. 通訊開銷
挑戰:代理之間需要協調和同步
解決方案:
- 建立清晰的通訊協議
- 定期同步進度
- 使用協作工具追蹤
2. 整合複雜度
挑戰:多個代理的產出需要整合
解決方案:
- 預先定義整合策略
- 建立標準化的介面
- 自動化整合測試
3. 品質一致性
挑戰:不同代理可能有不同的品質標準
解決方案:
- 建統一的編碼標準
- 使用 linting 和 formatting 工具
- 建立 Review Agent 進行統一檢查
4. 資源競爭
挑戰:多個代理可能競爭相同資源
解決方案:
- 預先分配資源
- 建立資源使用協議
- 監控資源使用狀況
與其他 Skills 組合
推薦組合
Writing Plans + Dispatching Parallel Agents
writing-plans → dispatching-parallel-agents
先制定計畫識別並行機會,再分派代理並行執行
Subagent-Driven Development + Dispatching Parallel Agents
subagent-driven-development → dispatching-parallel-agents
使用子代理驅動開發,並分派多個代理並行處理
Dispatching Parallel Agents + Verification
dispatching-parallel-agents → verification-before-completion
並行完成任務後,進行統一的驗證
效能考量
加速比預期
理想加速比:
- N 個代理:接近 N 倍加速
實際加速比:
- 2 個代理:1.7-1.9x
- 3 個代理:2.2-2.7x
- 4 個代理:2.8-3.2x
- 5+ 個代理:3-3.5x(收斂效應)
何时使用並行
使用並行的條件:
- 任務可以真正獨立執行
- 任務時間 > 整合開銷
- 有足夠的代理資源
- 整合複雜度可控
不使用並行的情況:
- 任務時間很短(< 30 分鐘)
- 整合開銷大於並行效益
- 任務有強烈的相依性
Dispatching Parallel Agents 是最大化開發效率的強大技能,適當使用能顯著提升開發速度!