跳至內容

編排

單一代理只擅長做一件事。有些需求比這更大:「研究 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 就會拒絕修訂。

編排一律以一張父工單開啟,並共用同一個討論空間,因此整件事都 可追溯到單一工作項目,團隊也在同一個房間裡溝通。

一個常駐的監聽器會監看生成出來的管線,並把它的終態映射回編排與 父工單,因此完成與失敗會在你已經關注的地方顯現。編排功能不需要 自己的執行引擎。

你可以隨時取消編排;取消會清理進行中的工作。