👥 子代理入門
⭐⭐ 中級 Claude Code 擴充 完成可獲證書原始課程:Introduction to Subagents(英文)
📖 課程簡介
當你在 Claude Code 中進行長時間的開發對話,上下文視窗會逐漸被塞滿——舊的討論、已完成的任務、不再相關的程式碼片段。這讓 Claude 越來越難聚焦在真正重要的事情上。
子代理(Subagents) 的解決方案是:將特定任務委派給一個獨立的 Claude 實例,讓它單獨完成工作,只把結果摘要回傳給你的主對話。主上下文保持乾淨,對話保持聚焦。
⚠️ 前置條件
前置條件
- Claude Code 的基本使用經驗(能夠完成基本任務)
- 建議先完成 Claude Code 101
🎯 學習目標
完成本課程後,你將能夠:
- 理解子代理如何在獨立的上下文視窗中工作
- 了解輸入傳遞和摘要回傳的機制
- 使用
/agents命令建立自訂子代理 - 設計可靠的子代理(結構化輸出、障礙報告、工具限制)
- 判斷何時使用子代理,以及哪些情況是反模式
📋 課程大綱
💡 單元一:子代理的概念
- 子代理 vs. 主對話的關係
- 獨立上下文視窗的好處
- 子代理的生命週期
⚙️ 單元二:子代理的工作機制
主對話
│
├─ 委派任務給子代理 A → [子代理 A 的獨立上下文]
│ │
│ └─ 完成任務,回傳摘要
│
├─ 委派任務給子代理 B → [子代理 B 的獨立上下文]
│ │
│ └─ 完成任務,回傳摘要
│
└─ 主對話只看到摘要,上下文保持乾淨💻 單元三:使用 /agents 命令
/agents命令的基本語法- 定義子代理的任務描述
- 設定子代理的工具存取權限
- 指定回傳格式
🏗️ 單元四:設計可靠的子代理
- 結構化輸出的重要性
- 障礙報告(Blocker Reporting)
- 進度更新
- 工具存取限制
🎯 單元五:子代理的適用場景
- 適合委派給子代理的任務類型
- 不適合使用子代理的情況(反模式)
- 何時直接在主對話處理更好
⚙️ 單元六:建立自訂子代理設定檔
- 子代理設定的持久化
- 常用子代理的範本庫
- 團隊共享子代理設定
📝 重點筆記
🎯 適合委派給子代理的任務
✅ 好的子代理任務:
- 深度分析一個獨立的模組或功能
- 在特定目錄中執行重構
- 生成一批測試案例
- 研究特定技術問題並產出報告
- 掃描程式碼庫找特定模式
❌ 不適合子代理的任務(反模式):
- 需要持續對話和互動的任務
- 高度依賴主對話上下文的任務
- 非常短的任務(委派開銷大於效益)
- 需要頻繁修改方向的任務
🏗️ 設計可靠子代理的關鍵原則
1. 結構化輸出
告訴子代理輸出的格式:
請用以下 JSON 格式回傳結果:
{
"status": "completed" | "blocked",
"summary": "完成事項摘要",
"changes": ["變更1", "變更2"],
"blockers": ["障礙1"](如有)
}2. 障礙報告
讓子代理在遇到障礙時立即回報,而不是自行猜測:
如果你遇到任何不確定如何處理的情況,
請立即停止並在 "blockers" 欄位中說明。
不要自行做超出指示範圍的決策。3. 工具限制
限制子代理只能使用必要的工具:
你只能使用 read 和 bash 工具。
不要修改任何檔案。⚖️ 子代理 vs. 其他方案
| 方案 | 適用場景 |
|---|---|
| 主對話直接處理 | 短任務、需要持續互動 |
| 子代理 | 獨立、可分析的中等複雜任務 |
| Skills | 重複性任務的可重用指令模板 |
| MCP Server | 需要外部工具或服務整合 |
💡 學習建議
搭配學習:
- 先完成 Claude Code 101
- 結合 Agent Skills 入門 建立完整的 Claude Code 擴充能力
實作練習:
- 找一個你的程式碼庫中的中等複雜任務,試著用子代理完成它
- 設計一個「程式碼審查子代理」,負責審查特定目錄的所有 Python 檔案
- 建立一個「文件生成子代理」,根據程式碼自動生成 README
🔗 相關課程
- Claude Code 101(基礎)
- Agent Skills 入門(互補的擴充方式)
- Claude Code 實戰(深度整合)