Claude Code 的 Dynamic Workflow與 Agent Teams:你該選哪一個?

同樣都是多 AI牛馬並行幫你做事

如果你最近認真用過 Claude Code,大概已經撞上一個抉擇點。當任務大到一個對話塞不下時,現在有兩種完全不同的辦法可以投入更多代理:動態工作流程(Dynamic Workflows)和代理團隊(Agent Teams)。

兩者表面上很像。都會啟動多個代理,都承諾替你扛下原本要耗掉好幾小時的工作,名詞還重疊到剛好夠讓人搞混。但底層的設計理念不一樣,選錯的代價是實際的時間、實際的 token,偶爾再附送一段你完全沒料到的除錯時間。

簡單的說:Dynamic Workflow把計畫寫進程式碼,Agent Teams則把計畫留在主導代理的腦子裡,逐回合臨機決定。

這個差異會牽動後面所有事以及工作怎麼擴展、中間結果放哪裡、哪些部分能重複用、中斷後怎麼復原,還有花多少錢。

Dynamic Workflow是什麼

動態工作流程是一段協調子代理(subagents)的 JavaScript 指令碼。你描述任務,Claude 寫出指令碼,執行環境在背景跑它,期間你的工作階段照常能用。你不用盯著逐回合的對話,啟動之後等結果就好。

重點在於邏輯放在哪裡。迴圈、分支和所有中間結果都待在指令碼的變數裡,不在 Claude 的脈絡視窗中。Claude 只看得到最終答案。這就是為什麼工作流程能擴散到數十、甚至數百個代理,協調者卻不會被自己的脈絡淹沒。

單次執行最多能同時協調 16 個並行代理,並設有每次執行 1,000 個代理的硬上限,防止迴圈失控。差別就在這裡:流程是由指令碼掌控,還是由對話掌控。

因為計畫已經是程式碼,工作流程能做到兩件對話式協調者做不到的事。第一是可重複——某次執行調到你要的效果後,可以存成斜線指令,往後在每個分支、每次發布、每次稽核上重跑一模一樣的協調流程。第二是把品質把關寫進結構裡。它不只是平行多跑幾個代理而已,還能讓獨立代理在回報前對彼此的發現做對抗式審查,或從幾個角度各自草擬計畫再互相權衡。內建的 /deep-research 指令就是現成例子:它從多個角度擴散搜尋、交叉比對來源、針對每項主張投票,最後回傳一份附引用的報告,沒通過驗證的主張早就被濾掉了。

工作流程在同一個工作階段內也能恢復。中途暫停的話,已完成的代理會回傳快取結果,其餘的即時接續。

它的限制是執行途中不能接受使用者輸入,唯一能讓它停下來的是代理的權限提示。所以如果你需要在各階段之間有人簽核,就把每個階段拆成獨立的工作流程來跑。

Agent Teams是什麼

代理團隊是一群協同合作的獨立 Claude Code 實例。其中一個工作階段當團隊主導者,負責協調工作、指派任務、彙整最終結果,其餘是隊員,各自在獨立的脈絡視窗裡運行。

它和工作流程最大的不同在於溝通方式。子代理是「派發後就不再追蹤」的工作者,只能向單一呼叫者回報;隊員則可以彼此直接對話。他們靠兩種機制協調。一種是共享任務清單,一個每個代理都能讀寫的即時佇列:主導者放入工作項目,隊員自行認領、完成、標記。這份清單支援相依性追蹤,所以某項任務可以在先決條件完成前一直維持封鎖,等條件達成後自動解除。另一種是直接傳訊:隊員可以指名傳訊給特定隊員,閒置的隊員做完手上的事也會主動回報主導者。

為了避免兩個代理同時動到一個檔案,系統用檔案鎖定隔離各自的工作,並行寫入才不會打架。

團隊還有一個工作流程沒有的能力:你可以跟個別代理直接互動。略過主導者,直接找某個隊員講話,想挑戰某個代理的假設時特別好用,比如另外開一個專門唱反調(devil’s advocate)的隊員。

不過,下一步要做什麼,還是由主導者在脈絡裡逐回合推理決定。計畫沒有寫成程式碼,而是活在協調代理的推理迴圈裡。

一張表看完兩者

面向動態工作流程代理團隊
本質由執行環境跑的指令碼監督對等工作階段的主導代理
誰決定下一步指令碼主導代理,逐回合決定
中間結果放哪指令碼變數共享任務清單
可重複的是什麼協調流程本身團隊定義
規模每次執行數十到數百個代理少數幾個長時間運行的對等代理
中斷時同一工作階段內可恢復隊員持續運行
人為介入執行途中無法輸入可直接與個別隊員互動
供應狀態研究預覽版,涵蓋所有付費方案及 API、Bedrock、Vertex AI、Foundry實驗性功能,預設停用

由上往下讀這張表,會看出一個取捨:Dynamic Workflow拿彈性換規模和可重現性,Agent Teams拿可重現性換即時協調和介入的掌控。沒有誰比較好,它們是為不同型態的問題調校的。

什麼時候選哪個

最快的判斷法則:路徑已知、要大規模、要可重複、必須可重現,用 Dynamic Workflow;流程需要協調與對話、想在執行中介入個別代理,用 Agent Teams。

對應到具體情境,Dynamic Workflow 適合這幾種狀況。

  • 任務龐大又好平行的時候,例如整個程式碼庫的錯誤掃描、500 個檔案的遷移、逐一檢查每個 API 端點少了哪些授權檢查。
  • 你大致知道要做什麼,只是量很大。
  • 同一個流程會反覆跑的時候,例如每個分支都要做的審查,或每週固定的研究例行程序,指令碼存一次就能無限重跑。
  • 可信度比一次快速完成更重要的時候,像是你想把對抗式交叉檢查或多角度草擬直接內建進協調流程,而不是聽天由命。
  • 你想能讀、能比對計畫的時候,因為指令碼是一份打得開、看得到、進得了版本控制的東西。
  • 最後,在意成本上限的人也會喜歡它:代理數量的硬上限能框住一段失控指令碼最多會燒掉多少。

Agent Teams則適合另外幾種

  • 工作之間有真正的相依性、又需要邊跑邊協調的時候,跨層重構是典型案例:一個破壞性的 API 變更會牽動後端端點、用這些端點的前端元件,還有涵蓋兩邊的測試套件。
  • 後端得先做完前端才能動,但測試代理可以並行先把骨架(scaffolding)搭起來,這個先後順序可以直接編進共享任務清單。
  • 代理之間需要互相挑戰的時候也適合,例如價值來自隊員彼此分享發現、互相反駁,而不是各做各的孤立回報。
  • 你想介入特定代理的時候:直接找某個隊員,就能在不打擾其他人的情況下單獨把他重新導回正軌。

成本與運作的現實

Dynamice Workflow會生出一大堆代理,單次執行燒掉的 token 可能明顯高過用一般對話處理同一件事。這些執行跟其他工作階段一樣,都會算進你方案的用量和速率限制。

正確的做法是先縮小範圍。先在單一目錄上跑,別一上來就掃整個儲存庫;先挑一個範圍明確的問題,別丟一個籠統的大問題。執行時打開 /workflows 檢視畫面,盯著每個代理的 token 用量。你隨時可以停,不會損失已經完成的部分。如果你平常會為例行工作切到較小的模型,啟動大型執行前先確認一下目前掛的是哪個;你也可以叫 Claude 把不需要最強模型的階段改派給便宜一點的模型。

投入前先知道的幾個坑

Agent Teams還是實驗性功能,稜角比較鋒利。它不能恢復工作階段,隊員崩了,或工作階段重啟,進行中的隊員都救不回來,只能整團重建。每個工作階段一次只能有一個作用中的團隊。隊員不能再自己往下開子團隊。主導者在團隊建立時就定死了,中途換不了。

還有一個可能直接影響你選擇的限制:依角色分模型,主導者用強模型規劃、實作和測試代理用便宜模型這在 Agent Teams目前還不支援。Dynamic Workflow可以在不需要最強模型的階段指定小一點的模型。如果「依角色分攤模型成本」對你很重要,這就是工作流程的一個加分點。

其實不必二選一

這兩種模式不是互斥的,把它們當競爭對手反而會看不到它們怎麼互補。Dynamic Workflow的指令碼本來就在協調子代理,天生適合管問題的廣度——一大堆需要交叉檢查再彙整的平行分支。代理團隊則在需要對話的環節發揮,也就是一組緊緊相依、得邊做邊喬的工作。

成熟一點的配置裡,常常是外層用工作流程管整體廣度,特定階段再交給協作式協調去處理真正相依的部分。哪裡有效就用哪種結構:別把自由流動的協作問題硬塞進僵硬的指令碼,也別把龐大的平行掃描丟給幾個話很多的對等代理。

結論

撇開術語,這個選擇最後就歸結到一件事:你想讓計畫住在哪裡。

路徑已知、規模龐大、流程會重複,而可重現性是你不能放掉的條件,就把它寫進程式碼,那是動態工作流程。工作彼此相依、代理之間要對話,而你想在執行途中親自帶個別工作者,就交給一個協調代理,那是代理團隊。

兩個都是比較新的功能,也都在快速變動。所以在你拿任何一邊當關鍵系統的地基之前,先去查當前的 Claude Code 文件,確認啟用方式、限制和行為的最新狀況。大方向已經穩了,邊緣的細節還在動。