為了不讓兩個 agent 同時改同一個檔案,導致後做的會把先做的蓋掉。
所以六月底那天走完整流程的 3 個任務,指揮中心沒有一次全部丟出去。那時距 7/31 上線剩不到五週,我沒有時間讓一個覆蓋事故吃掉半天。
平行處理不是「開比較多 agent」。它是排完序之後剩下來的空間——把會撞在一起的、要照順序的先處理掉,剩下的才同時開。

那天的需求檔列了 11 個任務——一份清單上的 11 件工作,跟 8-Step 的「步驟」是兩回事。每個任務本來就標好「會動到哪些檔案」,指揮中心把這些讀進來、倒過來整理成一份反查:每個檔案,被哪幾個任務動到。這一步是自動的。
這 11 個任務裡,有 3 個檔案被多個任務撞到:
一個共用的確認頁 ← 4 個任務(3 個改文字、1 個加新填寫模式)
一個共用的導覽框架 ← 2 個任務(1 個改文字、1 個依身分控制選單)
一個雲端專案表單 ← 3 個任務(2 個改文字、1 個加新填寫模式)
被 2 個以上任務動到的檔案,就是不能平行的地方。
沒有這份對照,就不知道哪些任務不能同時開。 這步驟主要是避免,兩個 agent 同時改同一個檔案,後做的會蓋掉先做的。

| 情況 | 解法 |
|---|---|
| 撞到同一個檔案,但都只是小改文字 | 讓同一個 agent 一同處理。這個 agent 內部照順序改。 |
| 一個是小改文字,一個是新功能邏輯 | 排進不同批次:先做小改批次一,新功能用批次二再進來改邏輯。 |
那個被 4 個任務碰到的確認頁,就是這樣拆的:3 個文字調整合併給一個 agent 先做完,剩下那個新功能的邏輯改動排到後面的批次。
決定在你的程式怎麼切檔案。
假設一個專案,所有申請流程的邏輯都塞在同一個大檔案。那不管這批有幾個任務,只要都動到申請流程,它們全部指向同一個檔案——對照表上全撞在一起,就要想如何多 agent 管理一個檔案。
換成另一個專案,每種功能有各自檔案、每個元件各自一個檔案。同樣一批任務,這個改這頁、那個改那頁,對照表上幾乎沒有重疊——大部分直接平行。
同一批任務、同一個指揮中心,能平行的數量差很多,差在架構。Day 10 講的「把更動範圍控制住」、還有把 spec 邊界寫清楚,紅利在這裡回收:切得乾淨,能平行的任務就多。
有一種檔案架構再乾淨也閃不掉:router、主 layout、每條流程都會經過的確認頁。這種天生被很多任務碰到,只能用前面那兩招——合併給一個 agent,或排進不同批次。
排完之後,一份分派計畫大概長這樣:
批次 1(平行):互不衝突的任務,同時開
批次 2(等批次 1 完成):依賴批次 1 產出的任務
批次 3(人確認 plan 後):需要先確認做法的新功能
六月底那天照這個結構分了幾批。平行的部分,事後估算比一件一件做省下大約四成時間——這是團隊自己前後測量的數字,不是獨立的效能測試。而且要照順序的那幾批、還有每個 agent 都要重新讀一次相關檔案的成本,都不會因為平行而變快。
Anthropic 有一篇〈Building a C compiler with a team of parallel Claudes〉,講的是更大規模的平行:它需要更嚴謹的工作結構和持續驗證,協調和成本也有上限。DAP 這種 3 到 4 個 session 的平行小得多,靠的就是這份檔案對照,不是「agent 越多越好」。(Anthropic, Building a C compiler with a team of parallel Claudes)
你的專案還沒有指揮中心幫你彙整這份對照,所以先自己畫。挑 3 到 5 個你接下來要做、可能會互相影響的任務,填一張表:
# Dependency Map
| 任務 | 讀哪些檔案 | 寫哪些檔案 | 要等誰先完成 |
| --- | --- | --- | --- |
| A | | | |
| B | | | |
| C | | | |
填完後找三件事:
先建檔案對照、抓出衝突、決定合併還是排序、把依賴排進順序——做完這些,剩下能同時開的任務自然就浮出來了。這張對照能多短,看你的檔案邊界切得多乾淨。
順序排錯,多開 agent 只會讓覆蓋和衝突同時發生。順序排對,平行才是省時間的。
下一篇把分流(Day 17)和排批次(Day 18)合起來看:六月底那天,指揮中心第一次完整跑一遍。那天它跑通了——但整批任務的 Scenario 驗證全被跳過,沒有人知道使用者實際會怎麼操作。