Claude Code 的 Subagent 與 Agent 工具:平行處理複雜任務
這是 Claude Code 系列的進階篇。建議先閱讀: 📖 Claude Code 自訂 Slash Commands:打造你的專屬 AI 工作流 📖 Claude Code Hooks 實戰:讓 AI 工作流自動化的最後一塊拼圖
🎯 前言
你有沒有遇過這種情境?
你:幫我查一下 Claude Code 的 Hooks 文件,
同時也查一下 MCP Server 的設定方式,
然後再看看有沒有 Memory 系統的教學
Claude:好的,讓我先查 Hooks...
(花 2 分鐘查完)
好的,接下來查 MCP...
(又花 2 分鐘)
最後查 Memory...
(再花 2 分鐘)
三個獨立的搜尋,一個一個做,花了 6 分鐘。
但如果 Claude 能同時派三個 subagent 去查,三個搜尋平行跑,總共只要 2 分鐘。
Agent tool 就是讓 Claude 做到這件事的機制。
📂 Agent Tool 是什麼?
Agent tool 讓 Claude 啟動一個獨立的 subagent(子代理),在獨立的 context 中執行任務。
主 Claude(你的對話)
├── Subagent A:搜尋 Hooks 文件 ← 平行執行
├── Subagent B:搜尋 MCP 設定 ← 平行執行
└── Subagent C:搜尋 Memory 教學 ← 平行執行
每個 subagent:
- 有自己的 context window(不佔用主對話的空間)
- 可以使用工具(搜尋、讀檔、執行指令等)
- 完成後回傳結果給主 Claude
- 主 Claude 整理所有結果再回覆你
核心價值:平行化 + context 隔離。
🔑 Subagent 的類型
Claude Code 提供幾種專門的 subagent 類型,各有不同的工具權限和用途:
Explore(快速探索)
最常用的類型。專門用來搜尋程式碼、找檔案、回答 codebase 相關的問題。
適合:
✅ 搜尋特定的函數、類別、檔案
✅ 回答「這個功能在哪裡實作的?」
✅ 快速了解目錄結構
不適合:
❌ 修改檔案(沒有 Edit/Write 權限)
❌ 需要深度分析的任務
Explore agent 有三個徹底程度:
- quick:基本搜尋,幾秒鐘完成
- medium:中度探索,會多看幾個檔案
- very thorough:徹底搜尋,會翻遍多個目錄和命名慣例
Plan(架構規劃)
用來設計實作方案。可以讀檔、搜尋,但不能修改。
適合:
✅ 設計複雜功能的實作計劃
✅ 分析架構 trade-off
✅ 規劃重構策略
不適合:
❌ 實際執行修改
General-purpose(通用型)
最全能的 subagent,擁有所有工具權限。適合複雜的多步驟任務。
適合:
✅ 需要搜尋 + 分析 + 修改的完整任務
✅ 上網搜尋資料
✅ 執行需要多輪操作的工作
注意:
⚠️ 比專門型 agent 慢(工具多,決策多)
⚙️ 什麼時候用 Subagent?
適合用 Subagent 的場景
1. 平行搜尋
需要同時查多個獨立的資訊時:
你:幫我查一下這三個套件的最新版本和 breaking changes:
React Router、Zustand、TanStack Query
Claude 會同時派三個 subagent 去查,比一個一個查快三倍。
2. 大量資料的前處理
搜尋結果太多,直接放進主對話會吃掉 context:
你:在整個 codebase 中找出所有使用 deprecated API 的地方
Subagent 在自己的 context 中做完搜尋和篩選,只回傳摘要結果,不會塞爆主對話的 context。
3. 獨立的子任務
複雜任務拆成幾個獨立的部分,各自平行執行:
你:幫我寫三篇文章:#4 去識別化、#8 MCP、#9 Git Hooks
如果三篇之間沒有依賴關係,可以平行寫。
4. Worktree 隔離
需要在不影響當前工作目錄的情況下做實驗:
你:在一個隔離的環境中試試看把 React Router 升級到 v7,
看看會不會壞掉
Subagent 可以在 git worktree 中工作,不影響你的 main branch。
不適合用 Subagent 的場景
| 場景 | 原因 | 改用什麼 |
|---|---|---|
| 搜尋一個已知檔案 | Subagent 啟動有額外成本 | 直接用 Glob 或 Read |
| 修改 2-3 個檔案 | 不需要平行化 | 直接讓 Claude 改 |
| 需要來回討論 | Subagent 是「發射後不管」 | 在主對話中做 |
| 依賴前一步結果 | 不能平行 | 循序執行 |
經驗法則:如果任務可以用一句話描述清楚、不需要來回、而且有多個能平行做,就適合用 subagent。
💡 怎麼讓 Claude 使用 Subagent?
你不需要手動呼叫 Agent tool。Claude 會根據任務的性質自動判斷。但你可以用這些方式引導它:
暗示平行化
✅ "同時幫我查這三個東西"
✅ "這些搜尋可以平行做"
✅ "用 agent 幫我探索一下 codebase"
明確指定
✅ "啟動一個 Explore agent 幫我找所有用到 auth 的檔案"
✅ "用 Plan agent 幫我設計這個功能的架構"
批次任務
✅ "幫我寫 #1 #2 #3 這三篇文章"(Claude 會判斷是否能平行)
🛠️ 實戰範例
範例 1:平行搜尋 codebase
你:我要重構 auth 模組。
幫我查一下:
1. 所有 import auth 相關模組的檔案
2. Session 相關的程式碼在哪裡
3. 有沒有現成的 JWT 相關程式碼
Claude 會派三個 Explore agent 同時搜尋,最後整合結果:
Claude:三個搜尋都完成了:
1. 引用 auth 模組的檔案(共 12 個):
- src/middleware/auth.ts
- src/pages/login.astro
...
2. Session 相關程式碼:
- src/lib/session.ts(核心)
- src/middleware/session.ts
...
3. JWT 相關:目前 codebase 中沒有 JWT 相關程式碼。
範例 2:平行寫多篇文章
這個部落格實際的使用方式——一次請 Claude 寫多篇文章:
你:幫我寫 #4(去識別化)、#8(MCP Server)、#9(Git Hooks)這三篇
Claude:
├── Agent A:研究 MCP 最新文件(需要上網查)
├── 同時直接寫 #4(已有足夠素材)
├── 同時直接寫 #9(已有足夠素材)
└── Agent A 回傳後,寫 #8
三篇文章的產出時間從「一篇一篇寫 30 分鐘」壓縮到「平行寫 15 分鐘」。
範例 3:Worktree 隔離實驗
你:在隔離環境中試試把 Astro 升級到 v6,
看看 build 會不會壞掉
Claude:(在 git worktree 中啟動 subagent)
subagent:
1. 建立 worktree
2. 執行 npx @astrojs/upgrade
3. 跑 npm run build
4. 回報結果
Claude:升級到 Astro v6 後,build 有 3 個錯誤:
- Content Collections API 變更...
- 需要更新 astro.config.mjs...
主分支沒有被影響。
📊 Subagent vs 直接操作的比較
| 面向 | 直接操作 | Subagent |
|---|---|---|
| 速度(單一任務) | 較快(無啟動成本) | 較慢(有啟動成本) |
| 速度(多個任務) | 循序,較慢 | 平行,較快 |
| Context 使用 | 佔用主對話空間 | 獨立空間,只回傳摘要 |
| 精準度 | 高(你直接看到過程) | 中(你只看到結果) |
| 適合 | 明確、簡單的任務 | 探索性、大量、可平行的任務 |
⚠️ 注意事項
1. Subagent 看不到主對話的內容
Subagent 啟動時會拿到一段 prompt,但看不到你和主 Claude 之前的對話。所以 prompt 要包含足夠的上下文:
❌ "根據剛才的討論,幫我查一下相關檔案"
✅ "在 src/ 目錄中搜尋所有引用 auth.ts 的檔案,列出檔案路徑和引用行號"
Claude 在啟動 subagent 時會自動組裝足夠的上下文,但如果你發現結果不對,可能是上下文不足。
2. 平行 ≠ 一定更快
如果任務之間有依賴(B 需要 A 的結果),強行平行反而會出錯。Claude 通常能判斷,但有時候需要你提示:
"先查完 auth 的架構,再根據結果設計重構計劃"
(這兩步必須循序,不要平行)
3. 多個 Subagent 修改同一個檔案
如果兩個 subagent 同時修改同一個檔案,會產生衝突。Claude 會盡量避免這種情況,但如果你的任務描述不夠清楚,可能還是會撞到。
解法:明確分工,確保每個 subagent 負責不同的檔案。
4. 結果需要你判斷
Subagent 回傳的結果是摘要,不是完整過程。如果摘要看起來不對,可以請 Claude 重新做一次,或者改用直接操作來手動驗證。
🎉 結語
Agent tool 的核心價值是兩個字:平行。
如果你的任務可以拆成多個獨立的子任務,subagent 能幫你省下大量等待時間。如果你的搜尋會產生大量結果,subagent 的 context 隔離能保護你的主對話不被塞爆。
但它不是銀彈——簡單任務直接做更快,有依賴的任務不能平行,結果需要你把關。
和 Claude Code 的其他機制一樣,用對場景才有效果。
📎 相關文章: