Control Tower 功能導覽
與 Control Tower 協作講 BAT 和 Control Tower 怎麼一起用;這一頁講 Control Tower 本身:它能做什麼、怎麼運作,以及你每天會怎麼用它。
怎麼取得 Control Tower
Control Tower 已經公開,採 MIT 授權。取得與安裝方式見 Control Tower 安裝頁,設計理念與使用說明見 Control Tower 站。
這一頁只介紹 Control Tower 的概念與流程。BAT 對外公開的整合介面,見BAT 提供的整合點。
Control Tower 是什麼
Control Tower 是一套以檔案為核心的多 Agent 開發流程:塔台負責想清楚、排順序、驗收,Worker 負責動手。
- 塔台不寫程式
- 塔台只規劃、派工、驗收和做決定。要讀程式碼或改程式,就開一張工單交給 Worker。
- 工單是唯一的交接方式
- 塔台與 Worker 不靠對話傳話。要做什麼寫在工單裡,做了什麼也寫回同一張工單。
- 檔案說了算
- 進度、決定和經驗都存成 repo 裡的檔案。檔案和塔台記得的不一樣時,以檔案為準。
- 每次經驗都留下來
- 塔台從每張工單的回報裡整理經驗,越用越熟悉你的專案。
為什麼分成塔台與 Worker
同一個對話又要規劃、又要寫程式,脈絡很快就塞滿,前面講好的規則被擠出去。分開之後,塔台的脈絡只放全局:進度、相依關係、做過的決定;每個 Worker 只帶一張工單的脈絡上工,做完就結束。
因為一切都在檔案裡,對話斷了、隔天再開,或換一個 Agent 當塔台,都能從檔案讀回來接著做。塔台與 Worker 用的是一般的 Claude Code 或 Codex 分頁;機場比喻與 BAT 怎麼接上,見分工:塔台、跑道與雷達。
四級能力
第 0 級只靠檔案就能完整運作;裝了其他工具,塔台會自動用上更多能力。
第 0 級核心
自包含核心
只靠 repo 裡的檔案,不依賴任何外部工具。工單、進度追蹤、Debug、中斷處理、多塔台協調與自我學習,都在這一級。
適合任何專案的起點。
第 1 級可選
加上 hook 觀察
裝了以 Claude Code hook 記錄每個動作的觀察工具後,塔台的學習多一份完整的觀察來源,經驗的信心度更有依據。移除工具,已經學到的東西也不會丟。
適合想讓自我學習更完整。
第 2 級可選
加上 BMad-Method 流程指引
塔台依專案目前的階段,查出該走哪一套 BMad-Method 流程,並在工單上標出適合的 Agent 角色。
適合已經在用 BMad-Method 的團隊。
第 3 級可選
加上跨機器記憶
已經確立的規則,同步到跨機器的記憶服務,換一台電腦也帶得走。目前只單向寫出:塔台把規則存過去,還不會反過來查詢。
適合在好幾台機器上工作。
塔台啟動時會自己偵測裝了哪些工具,不必另外設定。各級可以任意組合,例如只在核心之外加上第 2 級。
一天的基本流程
一天的工作是一個迴圈:對齊、開單、派工、收單,再派下一張。你說的是平常的話,塔台把它變成檔案與動作。
- 1
第 1 步:開工
你開一個塔台分頁,說今天要接著做 demo-shop 的結帳頁。
塔台讀回進度與所有工單,列出環境狀態、進行中的工作、上次留下的待決事項,再建議下一步。
- 2
第 2 步:對齊需求
你「折扣碼要能設到期日,不能和會員折扣疊加。」
塔台先聽完、再追問、用自己的話複述一次請你確認。還沒有答案的,記成待決事項,不先動手。
- 3
第 3 步:開單
你「範圍沒問題,開單吧。」
塔台拆成幾張工單,每張寫清楚目標、範圍、驗收條件與禁止事項,並比對各工單會動到的檔案有沒有重疊。
- 4
第 4 步:派工
你依自主程度,點頭同意,或什麼都不用做。
塔台在 BAT 裡開好 Worker 分頁並啟動;自主程度設在 off 時,改成告訴你要在哪裡貼什麼指令。
- 5
第 5 步:收單
你「T1024 完成。」在 BAT 裡,這句話由 Worker 自己送回塔台。
塔台讀回報區、逐項核對驗收條件、更新進度、記下這次學到的東西,再決定下一張。
- 6
第 6 步:對帳
你「同步一下進度。」
塔台掃過所有工單檔,找出和自己記憶不一致的地方,以檔案為準更正。
- 7
第 7 步:收工交接
你「今天先到這裡。」
塔台把進度、待辦與做過的決定寫進進度檔。明天不管是你、同事,還是換一個 Agent 開塔台,都從這裡接手。
規劃到一半有緊急事件時,直接跟塔台說:它把手上的工作標成暫停、先處理緊急的那一張,再從暫停的地方接回來(見臨時插隊)。每張工單從派工到合併的細節,見一張工單的一生。
工單的狀態與驗收
工單的狀態由 Worker 依證據填寫,不是一句「做完了」就算數。
○PENDING
待派工
工單寫好了,還沒有 Worker 接手。
●IN_PROGRESS
執行中
Worker 開工時先標上,才開始動手。
‖PAUSED
暫停
替緊急事件讓路;恢復後回到執行中。
收尾時,Worker 依證據標成其中一種
✓
DONE完成
每一項驗收條件都有證據證明通過。
✓
FIXED已修復
Bug 修好了,等你或 QA 實際驗證。
◐
PARTIAL部分完成
有些驗收項目還沒過;卡點解除後補正為完成。
●
BLOCKED受阻
在等外部條件:權限、環境、別人的回覆,或塔台的決定。
✗
FAILED失敗
試過的做法沒有達成目標,交回塔台換個角度。
PARTIAL 記的是當下的狀態:當時沒過的項目後來解決了,塔台會把它補正為 DONE,紀錄不會停在舊的狀態。
證據式驗收
Worker 收尾時把回報寫進工單:做了什麼、改了哪些檔案、跑了哪些驗證、結果如何、commit 是哪一個、和工單有出入的地方,以及還卡住的事。
驗證依性質分開記錄:原始碼與文件檢查、建置與測試、實際執行、部署、安裝包驗證、外部確認,每一項各自標明通過、部分通過、受阻或失敗。跑不了的驗證會寫明卡在哪裡,不會被當成通過。塔台收單時,逐項核對回報與驗收條件。
回報先寫完,才改狀態
Worker 收尾有固定順序:先 commit 產品變更,再寫回報,最後才改狀態,然後通知塔台。塔台看到「完成」時,回報一定已經在檔案裡,不會讀到一張狀態寫著完成、回報卻還空著的工單。
Worker 開工前先檢查
- 確認落在對的 repo:動手寫任何東西之前,Worker 先確認自己所在的 repo 就是這張工單要改的那一個;對不上就停下來回報,不猜、也不硬做。
- 守住範圍:做到一半發現要做的事超出工單範圍,Worker 會停下來問你(yolo 模式下改問塔台):只完成目前的範圍、記下來交給塔台,還是明確擴大範圍。
補充說明,同一張工單接著做
回報不夠完整,或塔台需要 Worker 多查一點時,塔台在同一張工單裡加一段補充說明,Worker 讀到後接著做,不必重開一張。補充說明有次數紀錄;同一張工單補充太多次,通常代表工單本身該拆開或重新規劃。
研究型工單
方向還不清楚時,塔台開研究型工單。Worker 可以在研究過程中提問,最後交回一份可以拿來做決定的結論:找到的原因或事實、可行的選項、建議、仍有的風險,以及建議的下一張工單。
不只工單
除了工單,塔台還管 Bug 單、計畫單與實驗單,各有自己的狀態流轉。例如 Bug 修好之後還要經過驗證才結案;實驗在獨立的分支上進行,失敗就整個丟掉,主線不受影響。做過的決定另外寫進決策紀錄。結案的單據可以移到歸檔區,平常的清單保持精簡,需要時也能搬回來。
自主程度與斷點
自主程度決定塔台自己推進多少;不管選哪一檔,斷點出現時都會停下來問你。
- off:塔台寫好工單,告訴你要貼什麼指令。
- ask:每次派工前先問你,你同意才開 Worker 分頁。
- on:塔台直接開好 Worker 分頁;回報會先填進塔台的輸入列,等你送出。
- yolo:派工、收回報、驗收、決定下一張都由塔台推進,只在斷點停下來。
每一檔你要做什麼、Worker 有問題時問誰,見自主程度對照。
一定會停下來問你的時候
- 範圍要擴大
- 刪除,或其他不可逆的操作
- 對外發布:push、發版
- 需要你的偏好才能決定的選擇
- 連續失敗
yolo 模式另外會暫停的時候
- 回報不在預期之內:Worker 送回來的結果不是固定的幾種說法,塔台先停下來,請你看過工單的回報區再決定。
- 同一張工單補充太多次:工單可能沒切好,該拆開或重新規劃。
- 需要跨計畫的方向決定:例如要不要開一個新的里程碑。
連續失敗的上限可以調整。第一次用 yolo,可以先把上限調低,看看斷點怎麼觸發。
塔台查看 Worker 狀態時,若發現有 Worker 停在權限確認或正在問你問題,會用分頁標題告訴你是哪一個,請你過去處理。它不替你回答,也不替你按鍵,其他工作照常進行。yolo 下的每次派工與每個斷點都會記進進度檔,事後查得到塔台什麼時候、為什麼這樣決定。Worker 有問題時怎麼先問塔台,見Worker 問塔台。
自我學習
塔台每收一張單就記下一點東西;同一個做法驗證越多次,它越敢主動用。
從回報到規則
每收一張工單,塔台會安靜地記下觀察:哪個做法有效、哪裡踩了坑。整理經驗時,它從這些觀察裡找出反覆出現的模式,依驗證次數調高信心度。幾張工單總是照同一個順序做時,它會提議把這個順序定成一套標準工單流程;最可靠的經驗,最後成為預設做法。
信心度決定塔台怎麼用
| 信心度 | 什麼時候 | 塔台怎麼用 |
|---|---|---|
| 觀察 | 第一次記下 | 只記不說 |
| 初步 | 驗證過一次 | 遇到類似情境時提出建議 |
| 可靠 | 在不只一個專案裡都成立 | 主動套用 |
| 規則 | 一再被驗證 | 成為預設做法 |
觀察
- 什麼時候
- 第一次記下
- 塔台怎麼用
- 只記不說
初步
- 什麼時候
- 驗證過一次
- 塔台怎麼用
- 遇到類似情境時提出建議
可靠
- 什麼時候
- 在不只一個專案裡都成立
- 塔台怎麼用
- 主動套用
規則
- 什麼時候
- 一再被驗證
- 塔台怎麼用
- 成為預設做法
你的糾正最有價值
每次你糾正塔台,它會記下這個錯誤的做法、歸納成規則,之後自動避開。在所有學習來源裡,你的糾正最值得記住。
經驗會長大
信心度說的是一條經驗有多可靠;成長管線說的是它最後長成什麼樣子:
觀察
塔台記下
從做完的工單裡記下一條觀察
已驗證
幾張工單之後
同一個做法一再有效,之後主動套用
標準流程
你決定
夠成熟了,定成一套標準工單流程
技能
你決定
做成任何專案都能用的技能
回頭看你們怎麼工作
塔台也能分析你們的工作方式:哪些習慣有效、哪些行為該改,以及塔台的幾條原則在哪些地方互相拉扯。可以只看這個專案、只看這一次工作,或跨專案比較。
團隊規矩怎麼記、教戰手冊與視覺規範怎麼產生,見越用越懂你的專案。
多塔台協調
專案大到一個塔台管不過來時,可以開好幾個塔台。它們靠共用的檔案協調,不必由你在中間傳話。
- 登記
- 每個塔台啟動時先登記自己負責什麼,其他塔台看得到現在有誰在線上。
- 留言板
- 塔台之間互相留言:我改了什麼、你要注意什麼。對方下次啟動就會讀到。
- 工單鎖定
- 一張工單同時只歸一個塔台,兩個塔台不會同時派同一張工單。
- 心跳
- 太久沒有更新的塔台會被視為離線,其他塔台就知道它已經不在。
例如 demo-shop 的前台和付款服務各有一個塔台。付款服務的塔台修好了連線池的問題,在留言板留了一句;前台的塔台下次啟動時讀到,提醒你先把主線的修正合併進來,再接著做結帳頁。
一個塔台還是好幾個,看子專案之間的關係,見常見問題。兩邊都要改的變更怎麼協調,見兩邊都要改時,先寫契約。
Debug 三層防線
除錯從最便宜、最可靠的方法開始,前一層抓不到,才往下用更重的手段。
先寫測試
邏輯錯誤,先寫一個會失敗的測試把問題釘住,再修到測試通過。測試留下來,之後同一個地方再壞,測試會先抓到。
診斷腳本
難以重現的問題,寫一支腳本自動偵測與重現,不靠人一次次手動操作。
結構化日誌
前兩層都抓不到時,才加上精簡、有結構的日誌,只留判斷需要的幾十行,不把整份輸出丟給 Agent。
品質閘門:審查找到嚴重或高風險的問題時,塔台會先開修正工單,修完才進下一個階段。同一個問題換了幾種做法都沒解決時,Worker 怎麼停手回報,見卡住就停。
使用情境
四個小情境,看塔台在不同的開頭怎麼起步。專案與工單編號都是虛構的。
從零開始的新專案
你要替 demo-shop 開一個全新的會員系統,技術選型已經定了。塔台沒有直接開始寫程式,而是先開第一張工單:整理專案脈絡,包括技術棧、目錄慣例、建置與測試方式。之後的每張工單,都以這份脈絡為起點。
結果:第一個 Worker 寫下的慣例,第十個 Worker 也照著做。
接手只有 README 的舊專案
你接手 demo-shop 的舊後台,幾百個檔案,前手只留下一份 README。塔台不自己讀程式碼,而是派出分析工單,讓 Worker 一區一區讀、把結論寫回來。有 BMad-Method 流程指引時,它會選接手既有專案的那套流程起步;你在別的專案整理過類似的逆向步驟,它會問你要不要照那套流程走。
結果:規格一區一區補回來,每一區都有工單可查。
審查挑出嚴重問題
T1025 的金額計算做完了,審查工單卻列出兩個嚴重、三個高風險的問題。塔台不讓它帶著問題往下走:先開一張修正工單,修完才派出 T1026 的結帳頁畫面。
結果:問題在合併前就修掉,不會等到上線後才發現。
換一個 Agent 接手
昨天的塔台是 Claude Code,今天你想換 Codex 試試。新的塔台啟動後讀回進度檔、工單與決策紀錄:哪些做完了、哪些在等你、當初為什麼這樣決定,連之前學到的規則也一起帶上。
結果:換了 Agent 也不用從頭講起,工作從昨天停下的地方接著做。
現實比計劃更混亂的時候,例如合併後問題接連冒出來、規劃到一半正式站出事,塔台怎麼接住,見實戰案例。
Control Tower 怎麼長出來的
Control Tower 不是一次設計好的。它經過七代,每一代都在解決前一代實際用起來卡住的地方。
對話裡的指揮塔
起點想把規劃和動手分開:一個對話專門規劃,另一個對話寫程式。
做法塔台在對話裡寫出工作指引,你複製到另一個對話執行,做完再整理摘要貼回來。
工單檔案
卡在每一段交接都經過你的手:漏貼一段、排版跑掉、忘了把摘要帶回來。
做法工作指引改寫成工單檔案,開工與完成時間、回報都寫回同一張工單。你只要告訴 Worker 工單編號,做完回塔台說一聲。
分開跑、會學習
卡在塔台與 Worker 的規則放在一起,Worker 連「塔台不寫程式」的禁令也一起帶上,結果改不了程式;學到的規則寫回 Control Tower 本身,一升級就被蓋掉。
做法塔台與 Worker 的規則拆開,兩邊只靠工單交換。塔台開始記下進度與經驗,對話重開也接得回來;Control Tower 本身唯讀,經驗分成跨專案與本專案兩處存放。
接上 BAT
卡在只有工單一種單據不夠用;派工時仍要你開分頁、貼指令,再把回報帶回塔台。
做法加入 Bug 單、計畫單、實驗單、決策紀錄與研究型工單。接上 BAT 後,塔台自己開 Worker 分頁,Worker 做完直接通知塔台;yolo 模式讓塔台自己推進,只在斷點停下來。
規則只寫一處
卡在規則越寫越多,每次啟動都整份讀進脈絡;同一條規則寫在好幾處,改了一處漏了另一處,Worker 讀到舊的就做錯。
做法工單狀態改放在檔頭的固定欄位,每個讀取的地方都看同一處。規則從一份大文件拆成按需載入的章節,每條規則只留一處完整定義,其他地方只引用。Worker 開工前先確認自己在對的 repo。
管理分頁
卡在派工自動了,Worker 做完之後分頁卻一直留著;BAT 也分不出哪個分頁是塔台。
做法收單後,塔台回收 Worker 的分頁;啟動時,塔台向 BAT 表明自己是塔台,分頁標題跟著標出來。
看得見、問得到
卡在派出去之後看不見:Worker 有沒有真的啟動、是不是在等人回答都不知道;幾個 Worker 同時改檔,也會互相踩到。
做法每個分頁各有自己的權限,Worker 在各自的 worktree 裡平行開工;塔台看得到 Worker 是否已啟動、是否在等你,yolo 下 Worker 改問塔台。這些能力都是 BAT 先定好介面,Control Tower 再照著寫規則。
回頭看,每一代卡住的地方,大多是又有一件事要靠你記住、靠你的手搬運:交接要你貼、分頁要你開、狀態要你一個一個點進去看。每一代都把其中一件交給檔案或 BAT。這條共同的線索,在把腦力留給判斷有完整說明。
七代下來,工單始終是唯一的交接方式。BAT 負責開分頁、通知、狀態與提問的通道,Control Tower 負責什麼時候派、派給誰、怎麼驗收。兩邊怎麼分工,見與 Control Tower 協作;實際跑起來的樣子,見實戰案例。
常見問題
Control Tower 去哪取得?
Control Tower 已經公開,採 MIT 授權。取得與安裝方式見 Control Tower 安裝頁。想接上自己的流程,BAT 的派工、回報、提問與查詢介面也是公開的,見BAT 提供的整合點。
一定要用 Claude Code 嗎?
不用。Control Tower 的核心只靠讀寫檔案,Claude Code 與 Codex 都能當塔台,也都能當 Worker,還可以混著用。
一定要用 BMad-Method 嗎?
不用。沒有 BMad-Method 時,工單的流程標成「自訂」,其他功能照常運作;有的話,塔台會依專案階段選出對應的流程(第 2 級)。
塔台的對話斷了怎麼辦?
重新開一個塔台就好。它從進度檔與工單讀回進度、做過的決定與學到的經驗,接著做下去。
沒有 BAT 能用嗎?
可以。塔台會改用其他終端機開新分頁,或告訴你要在哪裡貼什麼指令;Worker 做完,你再把結果帶回塔台。BAT 把開分頁、通知、提問、狀態查詢與回收都接了起來,見與 Control Tower 協作。
搭配的工具更新了,要跟著改什麼嗎?
通常不用。塔台在執行時才去讀這些工具提供的內容,沒有把內容寫死;只有工具的檔案格式或目錄結構出現不相容的變更時,才需要配合調整。
第一次用,怎麼開始?
塔台有新手教學模式,分幾關帶你走:認識塔台、對齊需求、派工、讀回報,最後完整跑一圈。教學模式下 Worker 的保護也比較多,例如超出範圍就停、連續失敗就停。另外,塔台也能用幾題選擇題問你的工作習慣,寫成這個專案的規則(見十分鐘問答)。