跳到內容

編排

單一代理擅長做好一件事。有些需求的格局比這更大:「研究 X 的市場並寫出一份定位文件」、「把這項功能端到端交付上線」、「稽核這個模組並修正你發現的問題」。編排就是 Control Center 處理這類需求的方式:由編排器(通常是你的 CEO 代理)提出一份整團隊計畫,你核准一次,接著由確定性的具體化器把它轉成一條負責實際執行工作的管線。

它介於現有兩種完成工作的方式之間:

當你想要… 使用
把一項任務交給一個代理 空間中的訊息
以手動方式編寫你已經知道的流程 管線範本
說出目標,讓團隊自行想出計畫 編排

當你把一個目標交給編排器,它會回傳一份結構化的 OrchestrationProposal:一份有型別的計畫,讓應用程式可以驗證與執行,而不是 自由形式的散文。一份提案包含:

  • 目標:你的高層次需求,以重新表述的方式呈現。
  • 角色:由誰來做這些工作。每個角色不是由你挑選的現有代理,就是編排在 核准時建立的新進人員。
  • 子工單:把工作拆解成由工單組成的 DAG。
  • 研究 (選用):最先執行、並把結果餵給其餘階段的研究階段。
  • 討論 (選用):在有界範圍內進行的一輪流程,讓每個角色在工作開始前 發表一份結構化的立場。
  • 彙整:產出交付成果的最後一個步驟。
  • 預算:宣告的支出上限。

有兩個介面會顯示同一份編排。

提案卡片位於產生該計畫的對話中。它是一則訊息,會隨著整個生命週期 (已提出、執行中、已完成)重新轉譯,並在卡片上帶有核准與取消動作。

Plan Studio 則是編輯器:包含 DAG 畫布、節點檢視器、修訂版本與差異抽屜, 以及帶有預估值的核准列。它會直接從該卡片以編輯器分頁開啟。側邊欄刻意沒有 「計畫」項目;/plans 與 /plans/:kind/:id 只是供分享用的深層連結。

核准是僅限操作者的動作。它沒有對應的 MCP 工具:代理可以提出提案 (propose_orchestration)、提交計畫(submit_plan)或具現化 playbook (run_playbook),但只有人類能核准。代理發起的修訂版本另受兩分鐘冷卻時間的 速率限制,因此重新規劃的迴圈會合併處理,而不是淹沒你的動態。

在核准之前你能更動的內容,就是節點檢視器所揭露的項目:重新命名或改寫子工單、 變更它由哪個角色擁有、重新連接它的相依項、編輯它的輸出結構描述,或直接 刪除該節點。結構性節點(研究、討論、彙整)以及已經執行過的節點都是唯讀。你不能 把角色固定到某個特定的具名代理,也不能從編輯器編輯預算。

一份計畫有兩個編輯器同時編輯時,是以樂觀並行控制解決,而不是合併。每次編輯都會 帶上它所依據的 base_revision;以過期修訂版本為基礎的編輯會以「計畫已繼續推進」 遭到拒絕,而不是悄悄覆蓋別人的變更。回溯也不是刪除——它會把較早的提案附加成 新的修訂版本,因此修訂時程只會不斷增長。

核准列上的預估值,是以每個角色真實的已完成執行歷史為基礎,並以四分位距 (p25–p75)區間呈現。成本總計會加總可預估的節點;所需時間則是 DAG 中的 關鍵路徑,而不是加總(平行分支會重疊)。

某個節點的角色若沒有已完成執行的歷史,會回報 sampleSize: 0 與 null 範圍。 這會如實呈現為——未知——而絕不會是捏造出來的單點數值,因為無法信任的預估比沒有 預估更糟。當有些節點有歷史、有些沒有時,總計會標示為部分。影響範圍只有在節點 宣告了 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 就會拒絕修訂。

一份編排一律以父工單為對象開啟,並共用一個討論空間,因此整項工作可 追溯到單一工作項目,團隊也都在同一個房間裡對話。

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

你隨時可以取消編排;取消會拆除正在進行中的工作。