Agents 與 Subagents:讓 AI 派出分身,一次做完一堆事
前面五課,你和 Claude 的互動幾乎都是同一個節奏:你打一句話、它回一段答案,你再打一句、它再回一段。這種一問一答很好用,但有個天花板——只要任務需要好幾個步驟、還要中途自己判斷,一問一答就撐不住了。
想想這個任務:「把這份設計稿變成一個能跑的網頁。」這不是回一段文字就完成的事,它需要讀檔案、寫程式、跑起來看看、發現跑版再回頭改。這種會自己規劃、多步驟、動手做到完成的 AI,有個名字叫 Agent(代理)。而這課的主角,是 Agent 的進階玩法:讓主 Agent 再派出分身去平行處理,這些分身叫 Subagent(子代理)。
這堂學什麼
- Agent 到底是什麼:跟一般聊天差在哪,為什麼 Claude Code 本身就是一個 agent
- Subagent 是主 AI 派出去的分身:用「主編派記者」一次搞懂平行處理的威力
- 在 Claude Code 裡實際建一隻 subagent:
.claude/agents/資料夾、name/description/tools/model四個關鍵欄位 - 內建的三隻分身:Explore、Plan、general-purpose 各自的專長與省錢邏輯
- 什麼時候該派、什麼時候別派:四個判斷問題,避免殺雞用牛刀
- 三個新手最常踩的坑:含實際錯誤訊息與解法
觀念一:Agent 是「你給目標,它自己做完」
先把最核心的觀念立起來。
一般的 AI 對話:你問一句,它答一句。你要什麼、怎麼做,幾乎都得你自己想清楚再一步一步餵給它。
Agent(代理)不一樣:你給它一個目標,它會自己拆解步驟、呼叫工具、動手執行、檢查結果,一路做到完成,而不是只丟一段文字給你。

你其實已經用過 agent 了。Claude Code 本身就是一個 agent——你在第 3 課說「修好這個 bug」,它不是回你一段「你可以試試看改這裡」的文字,而是真的去讀檔案、找出問題、改程式碼、跑測試驗證。它自己決定要先做哪一步、下一步做什麼,這就是 agent 的本質:能自主行動,不只是產生文字。
那什麼任務適合交給 agent?與其硬記規則,用四個問題判斷就好:
觀念二:Subagent 是主 AI 派出去的分身
Agent 已經很強了,但它一次只有一條主線在做事。當任務可以拆成好幾塊彼此獨立的小事,更聰明的做法是:主 agent 當協調者,派出好幾個**子代理(subagent)**去平行處理,自己負責分工跟彙整。
打個最好懂的比方:你是編輯部主編,今天要出一篇「五家 AI 公司近況比較」。你不會自己一家一家慢慢查——你派五個記者,同時各查一家,查完把重點交回來,你再彙整成一篇稿。Subagent 就是那五個記者。

這樣做的好處很直接:
- 快:五件事平行做,不用一件排隊等一件。
- 脈絡乾淨:每個 subagent 只專注自己那塊,查一堆資料產生的雜訊留在它自己的脈絡裡,不會塞爆主線。
- 能分工設定:不同 subagent 可以用不同工具、不同模型——簡單的探勘用又快又便宜的模型,重要的分析用強的模型。
第三點在 Claude Code 裡特別實用,等一下講內建分身時你會看到它怎麼幫你省錢。
Subagent 最值錢的一件事:脈絡隔離
新手最容易忽略、但其實最關鍵的好處,是脈絡隔離(context isolation)。
Claude 的「脈絡窗(context window)」你可以想成它的短期記憶,是有上限的。如果你在主對話裡叫它「跑整套測試,然後告訴我哪些失敗」,那一大堆測試輸出、log、堆疊訊息全部會塞進主對話,把記憶體吃掉一大半,後面它就容易忘東忘西。
改成派一個 subagent 去跑測試就完全不同了:那些又臭又長的輸出全部留在 subagent 自己的獨立脈絡窗,它消化完,只把「這三個測試失敗、錯誤訊息是這些」的結論回傳給主線。主對話乾乾淨淨,你的 token 也沒白燒在一堆你根本不會再看第二眼的 log 上。

記住這句話,它是你以後判斷「要不要開 subagent」的第一直覺:會產生一大堆你不需要留下的中間輸出,就丟給 subagent。
把「該派」和「別派」的情境整理成一張圖,以後猶豫時對一下就知道:

觀念三:Claude Code 內建就有三隻分身
好消息是,你不用從零開始。Claude Code(2026 年 7 月版本)開箱就內建幾隻 subagent,平常你叫它做事時,它會自己判斷該不該派、派哪一隻。認識這三隻,你才看得懂它在背後做什麼:

- Explore(探勘):一隻唯讀的快手,專門搜尋、讀懂程式碼庫。它被禁用 Write 和 Edit,所以絕對不會動到你的檔案,適合「先幫我搞懂這個專案的結構」這種需求。而且它很省——探勘這種粗活可以跑在比較便宜的模型上,不會浪費你貴模型的額度。
- Plan(規劃):在「規劃模式」下先蒐集脈絡、幫你想清楚要怎麼做再動手,一樣是唯讀,只研究不改扣。
- general-purpose(通用型):最全能的一隻,多步驟、既要探勘又要動手的複雜任務就交給它,它能用全部工具。
這三隻多半是 Claude 自動幫你派的,你不用手動叫。但認識它們有個實際好處:當你看到 Claude 說「我派 Explore 去看一下程式碼」,你就知道它在做低成本的探勘,而不是在燒你的貴模型額度。
實戰:自己建一隻 subagent
內建的很好用,但真正的威力在於你可以建自己的 subagent——一隻專門幫你做某件事、每次都照你規矩來的分身。我們就來建一隻「程式碼審查員」。
Subagent 的真面目其實很樸素:就是一個放在特定資料夾的 Markdown 檔,上面有一段設定(YAML frontmatter),下面是給它的系統提示。先看它長什麼樣,再動手:

叫 Claude 幫你寫這隻 subagent
最省事的做法不是自己打字,而是直接叫 Claude Code 幫你建。在你的專案裡開 Claude Code,說:
幫我在 ~/.claude/agents/ 建一隻叫 code-reviewer 的 subagent,專門審查程式碼的可讀性、效能與安全性。它要對每個問題說明原因、貼出目前的程式碼、給出改好的版本。設成唯讀(只能讀不能改),用 sonnet 模型。
Claude 會幫你把檔案寫好,長得像這樣:
---
name: code-reviewer
description: 審查程式碼的可讀性、效能與安全性。寫完或改完程式碼後主動使用。
tools: Read, Grep, Glob
model: sonnet
---
你是一位資深程式碼審查員。對於發現的每個問題,說明問題所在、
貼出目前的程式碼,並提供一個改好的版本。
上半 --- 中間包起來的是 frontmatter(設定區),下半是給它的系統提示。這隻分身工作時只會看到這段提示 + 基本環境資訊,不會拿到你主對話的整段歷史——這正是它脈絡乾淨的原因。
看懂四個關鍵欄位
frontmatter 欄位不少,但新手只要先搞懂這四個(其中 name 和 description 是必填):
name:這隻分身的代號,只能用小寫英文和連字號,例如code-reviewer。description:最重要的一欄。Claude 就是靠這句話決定「什麼時候該派這隻分身」。寫得越具體越好,想讓它主動被派,可以加上「寫完程式碼後主動使用」這類字眼。tools:這隻分身能用哪些工具。像審查員只給Read, Grep, Glob(讀取、搜尋類),它就絕對改不動你的程式碼——這是一種安全護欄,「一個不能寫扣的審查員,就不可能不小心改壞你的扣」。不寫這欄的話,它會繼承主對話的全部工具。model:指定用哪個模型,可以填sonnet、opus、haiku、fable,或完整型號如claude-opus-4-8,也可以填inherit跟著主對話。省錢就用haiku,要仔細分析就用opus。
放對位置:專案用還是全機器用
檔案放哪裡,決定這隻分身在哪些地方能用:
~/.claude/agents/(家目錄):放這裡,你這台電腦的每個專案都用得到。適合像 code-reviewer 這種通用工具。.claude/agents/(專案資料夾):放這裡,只有這個專案用得到。適合跟某個專案綁定的分身,而且可以連同專案一起用 git 版控,團隊成員都能共用、一起改進。
兩邊有同名的,專案的優先。剛剛範例放在家目錄,所以你每個專案都叫得動它。
叫它出來做事
建好之後,直接在對話裡點名它:
用 code-reviewer 這隻 subagent 檢查我剛剛改的檔案
Claude 就會把工作派給這隻分身,它跑去審查,只把「重點問題 + 修正建議」回傳給你。你也可以打 @ 從跳出的清單選它(跟 @ 檔案一樣),這樣能保證是這隻分身接手,而不是讓 Claude 自己決定要不要派。
進階:讓多隻分身平行研究
真正爽的是平行。當你有好幾塊彼此獨立的工作,一句話就能讓 Claude 同時派好幾隻分身:
用不同的 subagent 平行研究這個專案的登入、資料庫、API 三個模組,各自整理重點回來
三隻分身同時各鑽一個模組,查資料的雜訊都留在各自脈絡裡,最後 Claude 把三份重點彙整給你。這比你自己一個一個問快得多,主對話也不會被三個模組的細節塞爆。前提是:這三塊要真的彼此獨立——如果研究 B 需要先知道 A 的結果,那就不能平行,得排隊。
常見坑(踩過的人都懂)
坑 1:剛建好的 subagent,Claude 說找不到
你照著建了 ~/.claude/agents/code-reviewer.md,結果叫它時 Claude 一臉茫然,像是沒這隻分身。九成是因為:這個 agents 資料夾是你這次開 Claude Code 之後才第一次出現的。Claude Code 只會盯著開場時就存在的資料夾,新冒出來的第一隻分身它偵測不到。解法很簡單:關掉 Claude Code 重開一次就會載入了。之後在已存在的資料夾裡再新增或修改分身,它幾秒內就會自動抓到,不用重開。
坑 2:分身中途掛掉,出現 Agent terminated early due to an API error
派出去的分身跑到一半,回來一句紅字:
Agent terminated early due to an API error
後面通常跟著更細的原因。翻譯:這隻分身還沒做完就被 API 中斷了,最常見的是**撞到用量上限(usage limit)**或伺服器一時過載。這不是你設定錯,是額度或服務端的問題。處理方式:等一下、等上限重置或服務恢復,再叫 Claude **重跑或接續(resume)**那個任務即可。順帶一提,如果分身在背景跑、掛掉前已經產出一些文字,Claude 收到的訊息會帶上它最後的輸出,所以做到一半的成果不會整包白費。
坑 3:開一堆分身,結果又慢又亂,主線還是被塞爆
新手學會 subagent 後最容易犯的錯,就是什麼都想開分身,以為分身越多越強。實際上剛好相反,有兩個陷阱:
第一,分身之間不共享對話記憶。你派出去的每隻分身都是一張白紙,只看得到你交辦時寫的那段任務,看不到主對話、也看不到彼此。所以要它做什麼,得在派工時一次講清楚,不能假設它「知道我們剛剛在聊什麼」。
第二,每隻分身回傳的結果還是會回到主對話。你一次開十隻、每隻都回一長串詳細結果,主線一樣被塞爆,還多花了十份啟動成本,更慢更貴。官方文件自己都提醒:跑很多隻、每隻都回一大包,一樣會吃掉大量脈絡。
正確心態是:先想清楚哪些事真的能平行、彼此獨立,再分工。 單純讀一個檔、跑一個指令,主線直接做最快;需要頻繁來回討論、一直迭代的任務,留在主對話反而順。分身是用來「隔離雜訊」和「平行獨立工作」的,不是用來炫技的。
name 一樣的分身,Claude Code 只會載入其中一隻,另一隻被無視。新版可以用 /doctor 指令檢查有沒有重複命名。建議每隻分身的 name 在整棵資料夾裡都保持獨一無二。作業
- 建你的第一隻 subagent:照實戰步驟,叫 Claude Code 幫你在
~/.claude/agents/建一隻code-reviewer,設成唯讀、用sonnet。建好後打開檔案,確認 frontmatter 的四個欄位都對。 - 故意踩坑 1:建好後先別重開,直接叫它做事,感受一下「找不到分身」的狀況;然後重開 Claude Code,再叫一次,體會前後差別。
- 點名 vs 自動派:先用自然語言「用 code-reviewer 檢查我的檔案」,再用
@選它一次,觀察兩種叫法的差別。 - 平行研究:找一個有好幾個資料夾/模組的專案(沒有的話用第 3 課做的網站也行),叫 Claude「用不同 subagent 平行研究這幾個部分」,看它同時派出多隻分身、最後彙整給你。
- 想一想:列出你最近叫 AI 做過、事後回頭看「其實可以派 subagent」的三件事。判斷標準:是不是會產生一堆你不需要留下的輸出?是不是彼此獨立可以平行?
下一課預告
到這裡,你已經會讓 Claude 派出分身、平行做完一堆事了。但不管是主 agent 還是 subagent,它們預設都只知道「它自己」和你電腦上的檔案——它連不上你的 Google 雲端硬碟、你的 Notion、你的資料庫、GitHub、公司內部工具。
要打通這一層,需要一個標準介面,叫 MCP(Model Context Protocol)。它就像幫 AI 裝上一排「萬用插座」,一插上去,Claude 就能直接讀你的 Google 檔案、查你的資料庫、開你的 GitHub PR。這是把 Claude 從「很會做事的助理」升級成「能操作你所有工具的助理」的關鍵一步。下一課,我們就來把這些插座一個一個接上。