Subagent-Driven Development Skill
Subagent-Driven Development 是 Superpowers 中的協作開發型 skill,專注於使用多個專門的子代理(subagents)來分工協作,系統化地完成複雜的開發任務。
何時使用
在以下情況中使用 Subagent-Driven Development skill:
✅ 必須使用的情境:
- 需要處理大型、複雜的開發任務
- 任務可以分解為多個獨立的子任務
- 需要專門的代理處理特定領域
- 想要加速開發流程並行處理
- 需要多個視角和專長的投入
❌ 不適合的情境:
- 簡單、線性的任務
- 任務無法分解為獨立部分
- 有強烈的相依性需要順序執行
- 時間不允許啟動多個代理的開銷
Subagent-Driven Development 的優勢
1. 並行處理
單一代理方式:
Agent A → 任務 1 → 任務 2 → 任務 3
(總時間:T1 + T2 + T3)
多代理並行方式:
Agent A → 任務 1 ↘
Agent B → 任務 2 →→ 整合
Agent C → 任務 3 ↗
(總時間:max(T1, T2, T3) + 整合時間)
2. 專門化處理
領域專長代理:
- Frontend Agent → 處理 UI 組件
- Backend Agent → 處理 API 設計
- Database Agent → 處理資料庫 schema
- Testing Agent → 處理測試策略
- Security Agent → 處理安全性檢查
3. 多元視角
不同代理的視角:
- Planning Agent → 關注架構和設計
- Implementation Agent → 關注實作細節
- Review Agent → 關注品質和標準
- Optimization Agent → 關注效能和改進
Subagent 類型
1. 專門領域代理
**Frontend Agent**
職責:UI 組件、狀態管理、使用者體驗
觸發:「建立 Frontend Agent 處理 React 組件」
**Backend Agent**
職責:API 設計、業務邏輯、資料處理
觸發:「建立 Backend Agent 處理 Express 路由」
**Database Agent**
職責:Schema 設計、查詢優化、遷移腳本
觸發:「建立 Database Agent 設計資料庫結構」
2. 功能專門代理
**Authentication Agent**
職責:處理所有認證相關的實作
知識:OAuth、JWT、session 管理
**Payment Agent**
職責:處理支付整合和交易
知識:Stripe、PayPal、交易安全
**Search Agent**
職責:處理搜尋功能實作
知識:Elasticsearch、全文搜尋、排序
3. 階段專門代理
**Planning Agent**
職責:需求分析、架構設計、任務分解
產出:技術設計文件、實作計畫
**Implementation Agent**
職責:編寫程式碼、實作功能
產出:功能程式碼、單元測試
**Review Agent**
職責:程式碼審查、品質檢查
產出:審查報告、改進建議
實作流程
第 1 步:任務分解
將大型任務分解為可並行處理的子任務:
大型任務:建立電商平台
分解為:
1. Frontend Agent → 建立產品列表頁面
2. Backend Agent → 實作購物車 API
3. Database Agent → 設計訂單資料表
4. Payment Agent → 整合支付系統
5. Testing Agent → 撰寫測試案例
第 2 步:分配子任務
為每個子任務指派適當的代理:
# 啟動 Frontend Agent
「建立 Frontend Agent 負責建立產品列表頁面,使用 React 和 Tailwind」
# 啟動 Backend Agent
「建立 Backend Agent 負責實作購物車 API,使用 Express 和 TypeScript」
# 啟動 Database Agent
「建立 Database Agent 負責設計訂單資料表,使用 PostgreSQL」
# 啟動 Payment Agent
「建立 Payment Agent 負責整合 Stripe 支付系統」
# 啟動 Testing Agent
「建立 Testing Agent 負責撰寫端對端測試,使用 Playwright」
第 3 步:並行執行
各代理獨立工作,並行執行任務:
時間軸:
T0: 啟動所有代理
T1: Frontend Agent 建立組件結構
T1: Backend Agent 設計 API 端點
T1: Database Agent 設計 schema
T2: Frontend Agent 實作產品卡片
T2: Backend Agent 實作 CRUD 操作
T2: Database Agent 建立 migration
...
第 4 步:整合結果
收集各代理的產出並整合:
# 整合 Frontend Agent 的產出
src/components/ProductList.tsx
src/components/ProductCard.tsx
# 整合 Backend Agent 的產出
src/api/cart.ts
src/routes/cart.ts
# 整合 Database Agent 的產出
migrations/001_create_orders.sql
src/models/Order.ts
# 整合 Payment Agent 的產出
src/services/payment.ts
src/api/payments/stripe.ts
第 5 步:驗證整合
確保各代理的工作能正確整合:
# 執行整合測試
npm run test:integration
# 驗證端對端功能
npm run test:e2e
# 檢查建置
npm run build
# 本地測試
npm run dev
實際範例
範例 1:建立使用者認證系統
情境:需要實作完整的認證系統,包含前端和後端
Subagent 驅動開發:
## 任務分解
**Frontend Agent 任務**:
- 建立登入表單組件
- 建立註冊表單組件
- 實作表單驗證
- 整合認證狀態管理
**Backend Agent 任務**:
- 設計認證 API 端點
- 實作 JWT token 產生
- 實作密碼雜湊
- 實作 session 管理
**Database Agent 任務**:
- 設計 User 資料表
- 建立 migration 腳本
- 設計索引策略
- 規劃資料關聯
**Security Agent 任務**:
- 檢查密碼安全性
- 驗證輸入 sanitization
- 檢查 SQL 注入防護
- 驗證 CORS 設定
**Testing Agent 任務**:
- 撰寫 API 測試
- 撰寫整合測試
- 撰寫端對端測試
- 測試錯誤情況
執行過程:
# 第 1 步:啟動所有代理
## Frontend Agent
「建立 Frontend Agent 負責認證表單,使用 React Hook Form」
**Agent 工作內容**:
- 建立 LoginForm.tsx 組件
- 建立 RegisterForm.tsx 組件
- 實作表單驗證邏輯
- 整合 AuthContext
產出:
- src/auth/LoginForm.tsx
- src/auth/RegisterForm.tsx
- src/contexts/AuthContext.tsx
## Backend Agent
「建立 Backend Agent 負責認證 API,使用 Express」
**Agent 工作內容**:
- 實作 POST /api/auth/login
- 實作 POST /api/auth/register
- 實作 POST /api/auth/logout
- 整合 JWT middleware
產出:
- src/api/auth/login.ts
- src/api/auth/register.ts
- src/middleware/auth.ts
## Database Agent
「建立 Database Agent 負責使用者資料表設計」
**Agent 工作內容**:
- 設計 users 資料表 schema
- 建立 migration 腳本
- 設計 email 唯一索引
- 規劃資料關聯
產出:
- migrations/001_create_users.sql
- src/models/User.ts
## Security Agent
「建立 Security Agent 檢查認證系統安全性」
**Agent 工作內容**:
- 檢查密碼複雜度要求
- 驗證 bcrypt 使用正確
- 檢查 token 安全性
- 驗證輸入驗證完整
產出:
- SECURITY_REVIEW.md
- 安全性改進建議
## Testing Agent
「建立 Testing Agent 撰寫認證測試」
**Agent 工作內容**:
- 測試登入流程
- 測試註冊流程
- 測試錯誤情況
- 測試 session 管理
產出:
- src/auth/auth.test.ts
- src/api/auth/login.test.ts
# 第 2 步:整合結果
# 收集所有代理的產出
# 確保介面一致
# 解決任何衝突
# 第 3 步:驗證整合
npm test # 執行所有測試
npm run build # 確認建置成功
npm run dev # 本地測試功能
範例 2:重構大型組件
情境:需要重構一個大型、複雜的組件
Subagent 驅動開發:
## 任務分解
**Analysis Agent 任務**:
- 分析當前組件結構
- 識別重構機會
- 評估複雜度
- 建議重構策略
**Extraction Agent 任務**:
- 提取可重用的子組件
- 建立組件介面
- 重構狀態管理
- 改善組件通訊
**Optimization Agent 任務**:
- 識別效能瓶頸
- 實作 memoization
- 優化渲染邏輯
- 減少不必要的重渲染
**Testing Agent 任務**:
- 確保重構後測試通過
- 補充重構部分的測試
- 驗證行為一致性
- 測試邊界條件
執行結果:
// 原始組件(400+ 行)
function UserDashboard({ user }) {
// ...大量複雜邏輯
}
// 重構後組件(拆分為多個專門組件)
function UserDashboard({ user }) {
return (
<DashboardLayout>
<UserInfoSection user={user} />
<UserActivityList activities={user.activities} />
<UserSettingsPanel settings={user.settings} />
</DashboardLayout>
);
}
Subagent 協作模式
1. 並行獨立模式
多個代理同時處理獨立任務:
Agent A → 任務 A(獨立)
Agent B → 任務 B(獨立)
Agent C → 任務 C(獨立)
最後整合所有產出
2. 流水線模式
代理按順序處理任務:
Planning Agent → 設計
↓
Implementation Agent → 實作
↓
Review Agent → 審查
↓
Optimization Agent → 優化
3. 迭代改進模式
多個代理輪流改進同一產出:
Agent A → 初版實作
↓
Agent B → 改進和補強
↓
Agent C → 優化和重構
↓
最終產出版本
4. 專門審查模式
各個專門代理從不同角度審查:
Security Agent → 安全性審查
Performance Agent → 效能審查
Accessibility Agent → 可訪用性審查
↓
綜合審查報告
最佳實踐
1. 清楚的任務定義
好的任務定義:
✅ 「建立 Frontend Agent 負責建立登入表單,
包含 email 和 password 欄位,使用 React Hook Form,
整合 Yup 驗證,預計 30 分鐘完成」
不清楚的任務定義:
❌ 「處理前端部分」
2. 明確的介面約定
// 在啟動代理前定義清楚的介面
interface ProductListProps {
products: Product[];
onAddToCart: (productId: string) => void;
loading?: boolean;
}
// 所有代理都遵循這個介面
3. 定期的同步檢查
# 定期檢查各代理的進度
Agent A 進度:50%
Agent B 進度:70%
Agent C 進度:30%
# 調整資源分配或預期時間
4. 系統化的整合流程
# 建立標準化的整合流程
1. 收集所有代理產出
2. 檢查介面一致性
3. 解決命名衝突
4. 整合測試
5. 驗證功能正確
常見問題
Q1:代理之間的工作重疊怎麼辦?
A:
- 在任務分配時明確責任邊界
- 定期同步,協調工作進度
- 建立清楚的介面約定
- 使用協作工具追蹤進度
Q2:代理產出不一致怎麼辦?
A:
- 在開始前定義統一的編碼標準
- 提供清晰的範例和模板
- 使用 linting 和 formatting 工具
- 建立 Review Agent 進行統一檢查
Q3:如何平衡代理數量和效率?
A:
- 小任務(1-2 小時):1-2 個代理
- 中任務(半天):2-3 個代理
- 大任務(1-2 天):3-5 個代理
- 避免過多代理造成協作開銷
與其他 Skills 組合
推薦組合
Subagent-Driven + Dispatching Parallel Agents
subagent-driven-development → dispatching-parallel-agents
使用子代理驅動開發,並行處理多個任務
Writing Plans + Subagent-Driven Development
writing-plans → subagent-driven-development
先制定詳細計畫,再分配給各代理執行
Subagent-Driven Development 讓複雜任務可以系統化地分解和並行處理,是提升開發效率的強大方法!