我請 Claude 同時做三件事:查公司 codebase 怎麼處理 token 更新、檢查測試覆蓋率缺口、整理相依套件的更新風險。三個 subagent 各自出發,幾分鐘後回來三份結論——而我主對話的脈絡乾淨如初,沒被幾百個檔案的搜尋結果淹沒。
這篇你會學到
- Subagent 解決的真正問題不是「平行」,是「context 污染」
- 怎麼用一句話觸發委派、怎麼定義自己的專用 subagent
- 讓每個 subagent 在自己的 worktree 裡改檔案,互不衝突
- 什麼時候不該用(被濷用反而變慢)
為什麼需要 subagent
每次 Claude 幫你探索大專案,讀過的檔案內容都會塌進主對話的 context。探索完一個 auth 系統,你的 context 可能已經被幾十個檔案占滿——之後的對話品質都會受影響。
Subagent 的設計就是針對這件事:它在自己的 context 視窗裡工作,讀一百個檔案都是它自己的事,回報給主對話的只有結論摘要。平行只是附加好處,真正的價值是隔離。
最簡單的用法:一句話
你可以直接複製這段:
用三個 subagent 平行處理:一個調查 src/auth 的 token 更新邏輯並整理流程圖,一個找出測試覆蓋率最低的五個模組,一個檢查 package.json 裡有哪些套件落後主版本。各自回報摘要就好,不要貼完整檔案內容。
最後那句很重要——明確要求「回報摘要」,不然子任務的結果一樣可能把主 context 填滿。
進階:定義自己的專用 subagent
如果你發現自己一直用同一種工人(例如「只負責審查、不寫程式」的 reviewer),可以把它定義成檔案放在 .claude/agents/ 裡:自己的系統提示、自己的工具清單、自己的權限。Claude 碰到符合描述的任務會自動委派給它。
幾個實用的設定:
💡 限制工具:reviewer 不給編輯權限,它就物理上不可能「順手幫你修」。角色邊界靠工具清單強制,比靠提示詞可靠。
💡 指定便宜模型:重複性高的檢查任務讓 subagent 跑 Haiku,成本差很多。
💡 開啟獨立記憶:subagent 可以有自己的 auto memory,審查工人會越用越熟你們專案的套路。
改檔案會衝突怎麼辦:worktree 隔離
兩個 subagent 同時改同一個檔案就會出事。解法是跟 Claude 說「use worktrees for your agents」,或在 subagent 定義檔裡加一行 isolation: worktree——每個 subagent 會拿到自己的臨時 git worktree,改完沒變更就自動清掉。三個工人同時重構三個模組,零衝突。
什麼時候不要用
❌ 任務之間有依賴順序(B 要等 A 的結果)——硬拆成平行只會互等
❌ 小任務——subagent 起手有成本,五分鐘能做完的事直接做比較快
❌ 需要你中途介入的探索——subagent 一旦出發就是独立作業,不會回頭問你
💡 任務描述的精確度決定結果品質。「去看看測試」會拿到泛泛之論,「找出覆蓋率最低的五個模組並列出缺的測試案例類型」才拿得到能直接用的結果。
收尾
把 subagent 當「可以雙手奉送 context 的臨時工」:髒活累活丟出去,乾淨的結論拿回來。主對話留給真正需要連貫脈絡的決策。
官方文件:Create custom subagents。