Claude Code 提供四種讓單一對話變成平行作業的做法:subagents、git worktrees、workflows、agent teams。一邊修 bug、一邊開發新功能、一邊查資料,這類「同時做好幾件事」的需求都可以靠它們達成。

四個名字相近、容易混淆。本文從「為什麼需要它們」開始,逐一說明:各是什麼、差在哪、怎麼用、花多少 token、什麼情況適用哪一個。

1. 先搞懂:為什麼一個 AI 不夠用

要理解這四種手段,得先知道它們在解決什麼問題。

一個正在運作的 Claude 對話,本質上是「一個大腦 + 一個記憶體」。這個記憶體叫做 context window(對話視窗),它裝著到目前為止的所有對話:使用者的輸入、它讀過的檔案、執行過的指令輸出。它有兩個天生的限制:

  • 容量有限:塞太多東西進去(例如一次讀進好幾萬行 log),會把記憶體填滿,或開始遺漏前面的內容。
  • 一次只做一件事:同一個對話視窗裡,它是一步接一步地做,沒辦法真的「分身」。
一個 AI 只有一個對話視窗,容量有限且一次只能做一件事
一個 AI 只有一個對話視窗,容量有限且一次只能做一件事

這四種平行手段,全部都是在處理這兩個限制 —— 差別只在於它們用什麼方式「分身」、彼此之間怎麼隔離、又怎麼協調。

2. 四個角色,一張圖先看懂

以下先用一張全景圖概覽。這四種手段可以用兩個問題來區分:

  1. 會不會開出獨立的「檔案工作區」?(也就是各自一份檔案、互不干擾地改)
  2. 會不會開出獨立的「對話視窗」?(也就是各自一份記憶體)
四種平行手段沿著「檔案隔離」與「對話視窗隔離」兩個維度的定位
四種平行手段沿著「檔案隔離」與「對話視窗隔離」兩個維度的定位

用一句話分別概括:

  • Subagent(小幫手):派一個助手去辦一件事,它在自己的房間做完,只把結論交回來。
  • Worktree(獨立工作桌):在同一個專案上,給每個人一張獨立的桌子,各自在自己的分支上改檔案、互不干擾。
  • Workflow(自動生產線):一段事先寫好的流程腳本,由程式自動指揮一群小幫手照表操課。
  • Agent team(團隊):一群會互相講話的完整 AI,共用一張任務清單,自己分工協作。

前兩個是 Claude Code 的正式功能,新手最先會用到;後兩個比較進階,其中 agent team 目前還是實驗性功能(後面會詳述)。接下來一個一個拆開講。

3. Subagents — 派一個小幫手去辦事

3.1 它是什麼

Subagent 是在同一個對話裡臨時派出去的一個助手。交給它一個明確的任務(「查這份文件講了什麼」「review 這個檔案」「跑測試看結果」),它會在自己獨立的對話視窗裡把事情做完,然後只把一份摘要交回主對話。

關鍵在「獨立的對話視窗」這六個字:小幫手做事過程中讀的那一大堆檔案、跑出來的大量 log、試錯過程,全部留在它自己的記憶體裡,不會灌進主對話。

Subagent 在獨立對話視窗中工作,只把摘要交回主對話
Subagent 在獨立對話視窗中工作,只把摘要交回主對話

3.2 為什麼這樣省事又省錢

舉例:要 Claude「跑完整套測試,回報哪裡失敗」。測試輸出可能有幾千行。若直接在主對話跑,這幾千行會全部進入對話視窗,佔掉大量記憶體,而且之後每一輪對話都會帶著這堆內容重算。

改用 subagent:那幾千行留在小幫手的房間裡,主對話只收到一句「3 個測試失敗,分別是 X、Y、Z」。

冗長輸出留在 subagent 的對話視窗,主對話只增加一行摘要
冗長輸出留在 subagent 的對話視窗,主對話只增加一行摘要

這就是 subagent 最核心的價值:把雜訊隔離在外,主對話保持乾淨

3.3 怎麼用

最簡單的方式就是直接講:

「派一個 subagent 去讀 docs/ 底下所有檔案,整理出這個專案的架構,回報給我。」

Claude Code 也內建幾種專門的 subagent 類型(例如負責大範圍搜尋的探索型、負責規劃的架構型),可指定使用哪一種。也可以一次派出多個 subagent,平行處理彼此沒有相依關係的事 —— 例如三個小幫手同時各讀一個子系統。

新手心法

subagent 可以理解為「外包一件有明確產出的小任務」:只在乎它交回來的結論,不在乎它過程中翻了多少資料。凡是「會產生大量看完即丟的輸出」的工作,都適合交給 subagent。

4. Worktrees — 給每個人一張獨立工作桌

4.1 先補一點 git 觀念

理解 worktree 之前,得先有一個 git 的基本概念。一個 git 專案(repo)裡可以有很多條分支(branch),例如穩定的 main 與開發中的 feature-x。一般情況下,專案資料夾「同一時間只能停在一條分支上」 —— 切到 feature-x,資料夾裡的檔案就變成 feature-x 的內容;切回 main 又變回去。

問題在於:若要同時main 上修一個急件、又在 feature-x 上開發新功能,反覆來回切分支並不方便,而且尚未存檔的改動會擋住切換。

4.2 worktree 解決什麼

Git worktree 的作法是:同一個 repo(同一份版本歷史),在硬碟上開出多個各自獨立的工作資料夾,每個資料夾停在不同分支。可以在 A 資料夾改 main、同時在 B 資料夾改 feature-x,兩邊的檔案完全分開,互不覆蓋。

同一個 repo 開出多個獨立工作資料夾,各自停在不同分支、檔案互不干擾
同一個 repo 開出多個獨立工作資料夾,各自停在不同分支、檔案互不干擾

這是一種檔案層級的隔離。它和 subagent 的差別在於:subagent 隔離的是「對話記憶體」,worktree 隔離的是「硬碟上的檔案」,兩者不同。

Claude Code 已將這件事封裝好。啟動時加上 --worktree,它會自動開一個 worktree(放在專案的 .claude/worktrees/ 底下)並在裡面工作。已經在跑的對話,也可以中途用 EnterWorktree 切進一個新的 worktree,原本資料夾的檔案完全不動;再用 ExitWorktree 切回來。

4.3 容易誤會的點:新 worktree 的來源分支

這是新手最容易誤會的地方。當 Claude Code 開一個新的 worktree,裡面的內容基於哪條分支?答案由設定 worktree.baseRef 決定:

  • 預設 "fresh":新 worktree 從遠端的預設分支(通常是 origin/main)切出來,是一份乾淨的副本
  • 設成 "head":從目前所在的分支切出來。
worktree.baseRef 為 fresh 時從 origin/main 切,為 head 時從目前分支切
worktree.baseRef 為 fresh 時從 origin/main 切,為 head 時從目前分支切

舉一個實際情境:假設某個 AI 已經在主資料夾切到 feature-x 工作一陣子,此時要另開一個工作區做全新、獨立的功能。在預設的 "fresh" 之下,新 worktree 會是乾淨的 origin/main完全不受 feature-x 進行中的工作影響 —— 這通常正是需要的結果:兩條線各做各的,互不干擾。

但有兩個前提不論哪種設定都成立:

Warning

未存檔的改動不會一起帶過去。 新 worktree 拿到的是某個 commit 的乾淨檢出;原資料夾尚未 commit 的修改只會留在原資料夾。此外,被 .gitignore 忽略但實際存在的檔案(例如 .env)也不會自動複製,需要用 .worktreeinclude 指定要帶入的檔案。

另外,baseRef 的實際行為在不同版本間有過變動,也有已知的回報問題。請以當前版本的官方文件與實測為準,不要假設固定是哪條分支。

新手心法

worktree 適合「同時在同一專案的不同分支上各做各的事」。若只是要外包一件小任務、不需要動到另一條分支,用 subagent 即可,不必開 worktree。

5. Workflows — 寫好的自動生產線

5.1 它和 subagent 到底差在哪

這是最多人混淆的地方,先用一句話講清楚:

Subagent 是「單次派遣」;workflow 是「把很多次派遣的順序、平行、迴圈寫成一段程式,讓系統自動照表執行」。

一般使用 subagent 時,是 Claude 逐輪思考:做完這步、判斷一下、再決定下一步派誰。Workflow 則是把整套流程事先寫成一段 JavaScript 腳本 —— 「第一步同時派 10 個小幫手各掃一個檔案 → 第二步合併結果 → 第三步再派人逐項驗證」 —— 然後交給背景執行器自動跑完,只把最終結果交回來。

Workflow 把編排邏輯寫成腳本,由執行器自動指揮一群 subagent
Workflow 把編排邏輯寫成腳本,由執行器自動指揮一群 subagent

5.2 關鍵差異:協調是「程式」還是「對話」

這裡有一個對成本影響很大的重點。Workflow 裡「決定下一步做什麼、誰先誰後、要不要重跑」的編排邏輯是程式碼,不是 AI 的思考。程式做判斷不花任何 token,中間結果也是存在腳本的變數裡,不會佔用任何對話視窗。Claude 的記憶體裡只留下最後那份答案。

逐輪由 AI 決策 vs. 由腳本掌握迴圈與分支,中間結果不進對話視窗
逐輪由 AI 決策 vs. 由腳本掌握迴圈與分支,中間結果不進對話視窗

換句話說,workflow 底下用的還是 subagents,它只是在上面多包了一層「用程式精準控制流程」的編排。Subagent 是零件,workflow 是把零件組起來、會自動運轉的生產線。

5.3 怎麼用、什麼時候用

不需要自己手寫腳本 —— 用白話描述要做的事,Claude 會把 workflow 腳本寫出來並在背景執行。它特別適合大規模、步驟固定、可重複的工作:

  • 一次稽核 500 個檔案,每個檔案派一個小幫手平行檢查。
  • 跨很多來源做研究,先搜尋、再逐筆深讀、最後交叉驗證。
  • 需要「先找出問題 → 再請另一批人反過來挑戰每個發現是否成立」這種有固定品管步驟的流程。

新手心法

臨時要一個答案 → 用 subagent。要對「一大批對象」跑「同一套固定流程」、且日後可能重複執行 → 才值得用 workflow。初期通常用不到 workflow,知道它存在、遇到大規模重複工作時再回頭查即可。

6. Agent teams — 一支會互相講話的團隊

6.1 它是什麼

前面三個裡,subagent 和 workflow 的小幫手都是「做完一件事就回報,彼此之間不講話」。Agent team 不一樣:它是一群完整、獨立的 Claude(每個都有自己的對話視窗),其中一個當「隊長(lead)」,其餘是「隊員(teammate)」。它們透過兩個機制協作:

  • 一張共享的任務清單:所有成員都看得到任務的狀態(待辦、進行中、完成),可以自己認領下一件,任務之間還能設相依關係。
  • 點對點訊息:隊員之間可以直接互相傳話,不需要透過隊長轉達。
Agent team:一個隊長、多個隊員,共用任務清單並彼此直接傳訊
Agent team:一個隊長、多個隊員,共用任務清單並彼此直接傳訊

這讓它適合需要真正討論與分工的工作:例如三個隊員同時從「安全性」「效能」「測試」三個角度 review 同一份程式碼;或是除錯時,幾個隊員各自驗證一個假設,再互相比對找出真正的原因。

6.2 怎麼啟動與使用

Warning

Agent teams 目前是實驗性功能,預設關閉,需要 Claude Code v2.1.32 以上。先在設定裡開啟:

// settings.json
{
  "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" }
}

實驗性功能的行為與介面可能隨版本改變,以官方文件為準

開啟後,啟動方式就是直接講,沒有特別的指令:

「建一個 team,派 3 個隊員平行處理:一個負責安全性 review、一個負責效能、一個負責測試。隊員用 Sonnet。」

Claude 會自動建 team、產生隊員、分配角色、開始照共享清單工作。日常操作(單一終端機的 in-process 模式)大致是:

想做的事操作
加一個隊員對隊長說「再派一個隊員去做…」
看共享任務清單Ctrl+T 切換
在隊員之間切換Shift+Down 循環
看某個隊員的完整畫面Enter
中斷某個隊員Esc
收掉整個團隊隊長說「clean up the team」(要先把隊員關掉)

想要分割畫面同時看到所有隊員工作,可以裝 tmux 或用 iTerm2,把設定 teammateMode 設成 "tmux"

6.3 注意事項

Agent teams 功能完整,但有幾個實驗性階段的限制需先知道:in-process 模式的隊員不支援 /resume/rewind 還原;一個隊長一次只能帶一個 team;隊員不能再開自己的子團隊;VS Code 內建終端、Windows Terminal、Ghostty 不支援分割畫面。最重要的是它的 token 成本最高 —— 下一節細講。

7. 它們到底差在哪:一張比較表

把四個放在一起對照,差異就清楚了。重點看三件事:會不會開獨立的 git 檔案目錄、會不會開獨立的對話視窗、彼此怎麼協調

四種手段在「檔案隔離 / 對話視窗 / 協調方式 / 用途」四個面向的比較
四種手段在「檔案隔離 / 對話視窗 / 協調方式 / 用途」四個面向的比較
開獨立 git 目錄?開獨立對話視窗?協調方式最適合
Subagents是(與主對話隔離)主對話派發 → 小幫手回報結論聚焦、自足的小任務
Worktrees是(各自獨立 session)無內建協調,純檔案隔離在不同分支上平行作業
Workflows是(它派出的 subagents)**腳本(程式)**驅動,自動編排大規模、可重複的固定流程
Agent teams是(每個隊員是完整 AI)AI 互傳訊息 + 共享任務清單需要討論協作的複雜工作

一句話總結:前三個在回答「誰來做、怎麼協調」,worktree 在回答「在哪個檔案空間做」。

8. 成本怎麼算:token 花費比較

平行作業實用,但並非免費。這四種手段的 token 消耗差距很大,使用前最好先掌握。

8.1 由便宜到貴

相對 token 成本:subagents 最低、workflows 中等、agent teams 最高(約 7 倍)
相對 token 成本:subagents 最低、workflows 中等、agent teams 最高(約 7 倍)
  • Subagents(最低):小幫手做事的雜訊全留在它自己的房間,只有摘要回到主對話,等於替主對話擋掉大量 token。
  • Workflows(中等,隨小幫手數量增加):編排邏輯是程式,協調本身不花 token;中間結果也不進對話視窗。成本主要是它派出去的那些 subagent 的總和。也就是說,協調是免費的,只有實際做事的小幫手在計費。
  • Agent teams(最高,約單一對話的 7 倍):每個隊員都是一個完整的 Claude 實例,各自載入自己的設定與記憶體;而且協調是靠隊員之間互傳訊息完成的,每一則訊息、每次認領任務都是一次 AI 思考,會把該成員的整個對話視窗再算一次。

白話版

Workflow 的「指揮」由程式執行(不計 token),agent team 的「指揮」是一群 AI 互相溝通(每一則訊息都計入 token)。因此同樣是多 AI 協作,workflow 的單位成本遠低於 agent team。官方數據:agent team 在 plan mode 下約為單一對話的 7 倍 token。

8.2 「閒置的隊員仍會消耗 token」是什麼意思

官方文件明確建議「用完立刻 clean up 團隊」,理由是「閒置的隊員仍會持續消耗 token」。這句話容易被誤解為「待機就持續計費」,實際上需要更精準的說明:

AI 的計費原則是 —— 只有實際送出一次思考請求才計入 token。真正在等待、沒有思考的隊員,當下不消耗 token。所以「閒置仍消耗」指的不是被動待機空轉,而是以下幾點:

  1. 隊員會自己認領下一個任務:做完一件事後,會主動查看任務清單、決定接下哪一件 —— 這個「查看、判斷」本身就是一次思考。看似閒置,實際上可能正在接新工作。
  2. 重新喚醒的代價很高:一個跑很久的隊員,記憶體已經很大;任何一則訊息將它喚醒,都要把整份記憶體重算一次
  3. 只要還存在就會被納入協調:未收掉就可能被指派任務、被點名、被帶進新一輪討論。

所以「用完立刻收掉團隊」要避免的,不是想像中的待機耗用,而是**「只要它還存在,就會持續產生協調思考,並重算越來越大的記憶體」**。

9. 我該用哪一個?一張決策圖

實際使用時,有一個簡單的判斷順序:

決策樹:依照任務性質選擇 subagent、worktree、workflow 或 agent team
決策樹:依照任務性質選擇 subagent、worktree、workflow 或 agent team

判斷的順序如下:

  1. 只是想外包一件有明確產出的小事,不希望雜訊塞滿對話?Subagent
  2. 需要同時在同一專案的不同分支上各做各的事、檔案不能互相覆蓋?Worktree
  3. 需要對一大批對象跑同一套固定流程、且可能重複執行?Workflow
  4. 需要多個 AI 真正討論、互相挑戰、分工協作?Agent team(成本最高,且為實驗性)。

它們也可以組合使用 —— 例如在 workflow 裡讓每個小幫手各自在獨立的 worktree 中工作,避免平行改檔時互相覆蓋。

10. 注意事項總整理

最後把容易出錯的點集中列出:

  • 避免用錯工具:順序性的工作、或只是外包一件小事,用單一對話或 subagent 最快也最省;不必動輒開 agent team。
  • 改同一個檔案會互相覆蓋:多個成員同時改同一份檔案會衝突。需要平行改檔時,搭配 worktree 做檔案隔離。
  • Agent team 是實驗性、成本最高:預設關閉、需要 v2.1.32+、約 7 倍成本,用完務必立刻 clean up。
  • Worktree 的 baseRef 行為依版本而定:未 commit 的改動不會帶過去、.gitignore 的檔案要靠 .worktreeinclude 帶入,實際從哪條分支切請以官方文件與實測為準。
  • 版本會變動:這些都是仍在快速演進的功能,本文為當前的整理,遇到行為不符時,以官方最新文件為準

11. 小結與延伸閱讀

  • Subagent = 派一個小幫手辦一件事,只收結論(最省)。
  • Worktree = 給每條分支一張獨立工作桌(檔案隔離)。
  • Workflow = 寫好的自動生產線,用程式免費指揮一群小幫手。
  • Agent team = 一支會互相溝通的團隊,能力最完整、成本也最高(實驗性)。

四者解決的維度不同:前三個處理「誰做、怎麼指揮」,worktree 處理「在哪改檔」。掌握這條主線後,剩下的就是依任務性質選工具。

延伸閱讀(官方文件):