TTechSpecs

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 是最大化開發效率的強大技能,適當使用能顯著提升開發速度!