跳至內容

使用計劃模式

本指南說明如何在代理撰寫任何程式碼之前,先從它身上取得一份結構化計劃。

在計劃模式中,代理只以唯讀方式研究,而它唯一的交付項目是一份具型別的計劃:一個 由你批准的步驟相依圖,Control Center 接着會把它編譯成實際工作。當你想看清一項變更的 範圍、想把步驟拆解開來,或在任何東西被觸碰之前先弄清楚風險與相依關係時,就可以用它。

以下任何一項都會切換空間的模式,而變更會持久保存:

  • 在輸入框工具列最左邊的模式下拉選單中選擇計劃
  • 按 Shift+Tab
  • 送出 /plan。單獨一個 /plan 只會啟用該模式;/plan <request> 會啟用該模式, 並把其餘內容當作你的訊息送出

/plan 永遠不會以文字形式傳送——它會設定所儲存的模式,而工具介面、守衛預設集與提示詞 全都以這個模式為準。因此該模式會在這一回合以及之後每一個回合持續生效,直到你改回為止。

模式儲存在空間上,因此同一個代理可以在這裏處於計劃模式,而在別處處於代理模式。

  1. 它以唯讀方式研究——記憶、程式碼索引、檔案
  2. 它會呼叫 submit_plan 一次,帶上一個 goal 以及 nodes,其中每個節點各有穩定 的 key、title、description,以及它所 dependsOn 的節點鍵(正因如此,獨立的 工作才能並行執行)
  3. 它停下來

該工具會驗證這張圖——重複的鍵、懸空的相依關係、循環——並把違規項目傳回讓代理修正, 而不是接受一份壞掉的計劃。

計劃會在對話中以一個精簡的列出現,顯示目標、它的狀態與步驟數目。Plan Studio ——相依圖、逐節點檢視器與成本估算——會在對話旁邊以分頁開啟:按該列上的開啟,或 單純等待,因為當你正在看這則對話時,30 秒內送達的計劃會自行開啟它的分頁。

純文字敘述在這裏不是交付項目。一次沒有呼叫 submit_plan 就結束的執行,會在對話中貼出 一行可見的「在未提交計劃的情況下結束(沒有 submit_plan 呼叫)。」,並把該次執行標記 為未達成交付項目。該次執行的狀態刻意維持為 completed——這樣管線與工單的狀態機就不會 受到影響——因此請看那一行,而不是狀態徽章。

在對話中計劃所屬的列上,按批准並執行。在 Plan Studio 的批准列上,按批准計劃 (或旁邊的拒絕;當圖仍有驗證錯誤時,批准會停用)。

接着:

  1. Control Center 會把計劃編譯成一次編排並將它具體化——工單與執行。這一步不涉及任何 模型;它是確定性的
  2. 計劃會以撰寫它的那個代理身分執行。是否要帶其他人進來,由該代理在執行時決定——它 可以把某個步驟 delegate_task 給更合適的隊友,但受工作區的委派深度上限限制
  3. 計劃的目標會成為該對話的目標,而工作會在同一個對話中執行:每個步驟都會貼出 代理被要求做的事,並把它的回合串流回來,因此你可以在自己原來的位置跟進(也能停止 某個回合)
  4. 對話的通用側邊面板中(在待辦之下)的目標列,會以 settled/total 顯示該次 執行的進度,並帶有它的停止按鈕;Plan Studio 會在圖上顯示每個節點的狀態,也可以在那 裏取消

如果你寧願留在這則對話而不批准計劃,代理可以呼叫 exit_plan_mode。那是唯一獲認可的 退出方式:它會開啟一項連結到該對話的持久批准請求並傳回 pending——空間會維持在計劃 模式,代理不得行動。請求一旦獲批准,代理下一次呼叫 exit_plan_mode 便會把空間由計劃 模式切換為代理模式,並解除其會變更狀態的工具。若遭拒絕,它可以就修訂後的計劃開啟新的 請求。

如要離開計劃模式,請切換輸入框的下拉選單(或按 Shift+Tab),或批准已提交的計劃。 exit_plan_mode 開啟的持久批准,是透過 decide_approval MCP 工具決定的。用於被封鎖 工具呼叫的護欄覆蓋層是另一條記憶體內佇列,不會承載計劃退出請求。

messaging.createSpace 管線節點會從節點設定的 mode extra 讀取對話模式—— extras['mode']: 'plan'。這個鍵採完全比對:任何其他拼法,包括 conversationMode 或 dispatchMode,都會被靜默忽略,該房間則回退到請求主體的預設值,也就是審查模式, 而不是聊天。promptAgent 步驟會加入並非由它建立的房間,而且不會重新授予權限。節點 設定編輯器中的派發模式選單(allParallel / manager)是供團隊派發節點使用。如要 設定對話模式,請在會開啟空間的範本上、或經由 API 在該節點的設定上使用 extras['mode']。