編排
單一代理只擅長做一件事。有些需求比這更大:「研究 X 的市場並寫一份定位文件」、 「端到端交付這項功能」、「審核這個模組並修正你發現的問題」。編排就是 Control Center 處理這類需求的方式:編排者(通常是你的 CEO 代理)提出一份 整隊計劃,你批准一次,然後由一個具確定性的物化器把它轉換成一條執行 這項工作的管線。
它位於兩種既有的做事方式之間:
提案的形態
標題為「提案的形態」的章節當你給編排者一個目標,它會回傳一個結構化的
OrchestrationProposal:一份有型別的計劃,讓應用程式可以驗證並執行,
而不是自由格式的文字。一份提案包含:
- 目標:你的高層次需求,經重新表述。
- 角色:由誰完成工作。每個角色可以是你挑選的現有代理,或是編排 在批准時建立的新聘代理。
- 子工單:工作內容,拆解成由工單組成的 DAG。
- 研究 (選填):最先執行、並為其餘部分提供輸入的研究階段。
- 討論 (選填):在工作開始之前,每個角色都發表一份結構化立場的 有限回合。
- 匯總:產出交付物的最後一步。
- 預算:一個申報的成本上限。
在哪裡審閱
標題為「在哪裡審閱」的章節有兩個介面會顯示同一個編排。
提案卡位於產出該計劃的對話中。它是一則訊息,會在整個生命週期 ——已提議、執行中、已完成——中反覆重新渲染,並帶有批准與取消操作。
Plan Studio 就是編輯器:一塊 DAG 畫布、一個節點檢視器、一個修訂與
差異抽屜,以及載有預估的批准列。它會直接從那張卡片以編輯器分頁開啟。
側邊欄刻意沒有「計劃」這一項;/plans 與 /plans/:kind/:id 只作為
分享用的深層連結存在。
批准是只限操作者的操作。它沒有對應的 MCP 工具:代理可以提出提案
(propose_orchestration)、提交計劃(submit_plan)或實例化劇本
(run_playbook),但只有人類可以批准。代理發起的修訂還額外受到
兩分鐘冷卻時間的限流,因此重新規劃的迴圈會被合併,而不會淹沒你的
資訊動態。
批准前你可以修改的內容,就是節點檢視器所顯示的內容:重新命名或改寫 一個子工單、更改由哪個角色擁有它、重新接駁它的依賴關係、編輯它的 輸出結構,或直接刪除該節點。結構性節點(研究、討論、匯總)以及已經 執行過的節點都是唯讀的。你無法把某個角色固定到特定的具名代理, 也無法在編輯器中編輯預算。
同一份計劃上有兩個編輯者時,是以樂觀式並行解決,而不是合併。每次
編輯都攜帶它所依據的 base_revision;基於過期修訂的編輯會被拒絕,
並顯示「計劃已經改變」,而不會靜默覆蓋他人的修改。回退也不是刪除
——它會把較舊的提案附加為新的修訂,因此修訂時間軸只會不斷增長。
誠實的預估,否則從缺
標題為「誠實的預估,否則從缺」的章節批准列上的預估,是根據每個角色真實的已完成執行歷史,以四分位 (p25–p75)區間建立。成本總額是對可估算節點的加總;時長則是 貫穿 DAG 的關鍵路徑,而不是加總(並行分支會重疊)。
若某個節點所屬的角色沒有已完成執行的歷史,它會回報
sampleSize: 0 及空值範圍。畫面就正是這樣呈現——未知——絕不會是
捏造出來的單點數值,因為一個你無法信任的預估比沒有預估更糟。當
部分節點有歷史、部分沒有時,總額會標示為部分。只有當節點宣告了
symbol 或 file 來源參照時,才會顯示影響範圍;沒有這些參照的
節點會維持「未知」,而不會從文字描述中推斷。
一次批准,然後確定性執行
標題為「一次批准,然後確定性執行」的章節這就是核心概念:代理負責規劃;確定性函式負責執行。
當你批准時,OrchestrationMaterializer——一個不含 LLM、也不做任何
I/O 的純函式——會把提案轉換成一條真正的管線。
給定相同的提案與相同的已解析角色,它永遠會產出相同的 DAG。這一點
很重要,因為生成出來的管線會免費繼承引擎已有的全部能力:跨重啟的
暫停與恢復、當機復原、按執行統計的成本與 token 彙總,以及執行詳情
介面。
批准也會建立這項工作所需的支架:
- 聘用所有標記為新角色的角色(並記錄被聘用代理的 id,這樣批准 過程中途當機也能恢復,而不會重複聘用)
- 一個把這些角色歸組起來的團隊
- 一個用於歸檔父工單的項目
- 驅動這一切的管線範本 + 執行
生命週期
標題為「生命週期」的章節proposed → approved → executing → synthesizing → completed ↘ ↘ failed ↘ ↘ cancelled| 狀態 | 含義 |
|---|---|
proposed |
計劃已就緒,等待你那一次預先批准 |
approved |
你已批准;物化正在進行(聘用、團隊、項目、管線) |
executing |
生成出來的管線正在執行:子工單、討論、工作 |
synthesizing |
子工單已完成;匯總步驟正在產出交付物 |
completed |
已完成:父工單被標記為完成,交付物發佈在共享空間中 |
failed |
物化失敗,或生成出來的管線執行失敗 |
cancelled |
你取消了它 |
當編排者在提案仍處於 proposed 時不斷修訂它,一個單調遞增的修訂
號會追蹤這份提案;應用程式會記錄你批准的是哪個修訂。一旦狀態不再是
proposed,propose_orchestration 就會拒絕修訂。
編排一律以一張父工單開啟,並共用同一個討論空間,因此整件事都 可追溯到單一工作項目,團隊也在同一個房間裡溝通。
完成時會發生什麼
標題為「完成時會發生什麼」的章節一個常駐的監聽器會監看生成出來的管線,並把它的終態映射回編排與 父工單,因此完成與失敗會在你已經關注的地方顯現。編排功能不需要 自己的執行引擎。
你可以隨時取消編排;取消會清理進行中的工作。
- 管線與自動化:物化後的編排所運行的引擎
- 工單與委派:編排所錨定的父工單
- 代理模型:編排所填補或聘用的角色
- 執行編排
- 在 Plan Studio 工作