用於 Codex 的廉價並行代理(Cheap parallel agents for Codex)
呼叫方式: 此技能僅在使用者按名稱呼叫時執行;絕不自動套用。沒有任何一個編排技能會呼叫另一個,且工人也不會呼叫任何一個。當使用者同時為一個任務呼叫了 escalating-subagents 與此技能時,請在分派前詢問應使用哪一個。
假設的協調器: 使用者所選擇的父模型,通常是 GPT-6.1 Sol;high 是一個初始的努力建議用於評估,並非此技能會變更的設定。若父模型設定為 ultra,則可能主動委派工作:請在第一行進度中揭露此事實,建議使用 high,僅透過此技能的分派來委派工作,並在「固定(Pinning)」下說明任何額外的指派。在帳本標頭中記錄實際的父模型與努力級別。協調器負責:分類層級、撰寫「完成」的定義標準、將任務分解為項目、修正介面與決策、簡報給工人、分派批次、擷取快照、檢查每個驗收記錄、進行分類、以及回報。協調器從不編輯產品程式碼,也從不讀取工人的對話記錄。它會根據驗收需求讀取證據摘要,以及針對 D 層級驗收、有爭議的驗證與範圍違規來讀取整合後的修補程式。
工人僅在一個便宜的模型上執行,並且每人僅執行一個被指派的項目。他們從不委派工作,從不呼叫此或任何編排技能,也從不執行快照輔助程式。請遵守主機的權限與協作模式;計劃模式(Plan mode)不允許任何實作或產生突變的探索。
每個標準都有一個 ID 與一個必需的證據類型:behavioral(執行的測試、建置或執行,以驗證變更)、static(型別檢查或 lint)、parse(語法或解析檢查)、format(格式化檢查)、或 inspection(審查過的 diff)。比標準類型更弱的證據無法滿足該標準;一個解析檢查只能滿足 parse 標準,不能再多。
層級(Tiers)與指派矩陣
在第一行進度中命名層級。任何階段都可以提升層級;但絕不降級。提升層級會保留計數器、採用更高的預算,並為受影響的工人修訂標準。根據矩陣調整項目大小:一個工人可以擁有數個檔案,因此應合併項目而非放棄工作。驗證(Validation)在每個週期(cycle)執行一次,在完整的實作週期凍結之後,而非每次批次執行;中間的批次會在下一批次開始前擷取並檢查 post-N,且僅有暫定的工人記錄。
| 層級 | 工作 | 對應(唯讀) | 實作 | 每個週期的驗證(V) | 預算 |
|---|---|---|---|---|---|
| A | 瑣碎、完全指定、低風險的編輯,且有具體的檢查 | 0 | 1 個 low | 0;由協調器執行擷取後檢查 | 3 |
| B | 明確的變更 | 0 | ≤ 4 個 medium | 1 個 medium | 7 |
| C | 不明確的錯誤或大型功能;為預設層級 | ≤ 3 個 low/medium | ≤ 4 個 medium | 1 個 medium | 10 |
| D | 身份驗證、租戶隔離、遷移、佇列/同步、生產資料變更 | ≤ 3 個 medium | ≤ 4 個 medium | 2 個 medium 且具有不同的簡報(測試+標準;規格+回歸);協調器會讀取修補程式 | 12 |
每個新的指派、重試或延續都會花費一次呼叫;並行工人個別計算;狀態訊息與等待不計費。令 M 為正在接納的地圖批次中的碎片數量(若為實作批次則為 0),U 為尚未分派的需求實作項目數(包含此批次中的項目,在地圖化之前為計劃數量,至少 1),V 為每個週期的驗證者數量;保留為一次修復及其重新驗證,1 + V。接納任何批次需要 剩餘 ≥ M + U + V + (1 + V);若不符合,則縮減寬度、合併項目,或兩者皆做。序列化變更的是並發性,而非呼叫次數:接納會計算每個剩餘的必要項目。驗證者重試(不支援的 PASS、INCONCLUSIVE)會消耗保留的呼叫次數。在 FAIL 之後,針對 r 個項目:當 剩餘 ≥ r + V 時,執行這 r 個修復以及完整的全新驗證集合(無進一步保留),而另一次 FAIL 則以報告結束執行;當 1 + V ≤ 剩餘 < r + V 時,修復 剩餘 − V 個項目,進行驗證,並將剩餘項目報告為未解決;當 剩餘 < 1 + V 時,停止並報告失敗的項目為未解決,且不重新驗證未變更的修補程式。工作範例:層級 B,四個項目寬度為 4:7 → 在實作者之後為 3 → 在驗證之後為 2 → 兩個項目上發生 FAIL,允許一次修復加一次驗證 → 0,一個項目未解決。層級 B 帶有一個不支援的 PASS:7 → 3 → 2 → 新的驗證者 → 1 → FAIL → 1 < 2,停止。層級 C,一個包含 3 個碎片的地圖批次,有 4 個計劃項目:3 + 4 + 1 + 2 = 10 接納 → 7 → 實作 4 個 → 3 → 驗證 → 2 → 一個項目 FAIL → 修復並驗證 → 0。層級 D:3 + 4 + 2 + 3 = 12 → 9 → 5 → 3 → 一個項目 FAIL → 0。只有當預算允許時才能使用梯子;在最大寬度下,保留僅允許一次修復,而非每個梯級,協調器在選擇寬度時會這麼說。分解絕不會增加預算。
努力階梯(Effort ladder)
工人模型永不改變;努力(effort)會改變。medium 是預設值,也是應保持的級別。
| 梯級 | 模型 | reasoning_effort | 用途 |
|---|---|---|---|
| 0 | gpt-6-luna | low | 機械性工作:唯讀地圖碎片、重新命名、移動、格式化、執行已命名的命令並回報;無需判斷 |
| 1 | gpt-6-luna | medium | 每個探索(Discover)、實作(Implement)與驗證(Validate)項目的預設值 |
| 2 | gpt-6-luna | medium | 帶有具體修正與先前記錄路徑的全新工人;單一遺漏重試 |
| 3 | gpt-6-luna | max | 僅在梯級 1 或 2 確認有推理失敗,或第二次 PARTIAL 且無進展後使用 |
跳過的級別: high 因為其在獨立編碼評估中觀察到的相較於 medium 的收益不足以證明增加一個梯級是合理的,而 xhigh 則因為此階梯只保留一個升級梯級,且 max 能買到更好的每美元分數。請不要填補這個間隙。
梯級 0 的簡報需說明:無需判斷;當需要判斷時回傳 BLOCKED。驗證者在所有層級中都以 medium 開始。正確的 FAIL 絕不會升級驗證者。環境失敗絕不會推進梯級。沒有模型升級:當梯級耗盡時,協調器會停止並回報。
| 發現 | 動作 | 計數方式 |
|---|---|---|
| 梯級 0 工人因需要判斷而回傳 BLOCKED | 若可能,預先做出決定;在梯級 1 重新分派該項目 | 一次的呼叫;梯級 → 1,非失敗 |
| 梯級 1 工人遺漏需求或誤讀簡報 | 梯級 2:帶有修正與先前記錄路徑的全新工人 | 一次的呼叫 |
| 在梯級 1 或 2 確認有推理失敗,或第二次 PARTIAL 且無進展 | 梯級 3 | 一次的呼叫 + 梯級 |
| PARTIAL 但方法合理且有進展 | 在同一個梯級繼續 | 一次的呼叫 |
| 驗證者回傳不支援的 PASS(證據類型太弱、快照過時或檢查未執行) | 拒絕;在梯級 2 使用明確的證據要求,進行新的驗證;第二次發生 → 梯級 3;實作保持不變 | 每次呼叫 |
| 驗證者回傳正確的 FAIL | 成功的驗證;進入修復週期:失敗的項目根據其自身的階梯升級,然後進行完整的全新驗證集合 | r + V 次呼叫 |
| 驗證者 FAIL 被協調者以記錄的證據駁回 | 記錄修正;無實作變更;僅在修補程式變更時才重新驗證 | 無 |
| 驗證者因環境原因回傳 INCONCLUSIVE 或 BLOCKED | 在授權範圍內補救,在同一梯級重試一次;未解決的檢查將作為受阻項目載入報告 | 一次的呼叫;無梯級變更 |
| 梯級 3 在一個項目上失敗 | 每個項目一次:縮小項目範圍(更小的範圍、預先做好的決定)並在梯級 1 重試(若接納允許);縮小後的項目繼承歷史與預算 | 一次的呼叫 |
| 最終修復週期中的失敗 | 停止;回報未解決的項目、證據與下一步;無進一步分派 | 無 |
| 阻擋性模糊導致「完成」定義不明或層級 D 風險 | 詢問使用者;命名阻擋者 | 無 |
並行批次
一個項目僅在滿足以下所有三個條件時才能加入批次:不重疊的擁有權(檔案或 glob);依賴關係已滿足(介面已在簡報中固定,沒有項目消耗另一個未完成的輸出);無衝突的副作用(生成的檔案、schema 或遷移、資料庫、端口、快取、測試固定裝置、CI 設定)。否則請序列化或合併。預設上限(可由使用者調整)為每批次 4 個寫入者與 3 個唯讀碎片;這些是來自非同步委派研究的啟發式建議,而非硬性限制。容量來自執行環境:使用主機廣告的插槽及其計數語義,並分派 min(上限, 可用插槽)。在一則訊息中分派整個批次。若分派不完全,則保留已產生的工人,以其名稱註冊,並在插槽釋放時分派剩餘部分;絕不重新產生已在運行的項目。
每個簡報都包含協調器的決策列表(名稱、介面、迄今選定的慣例),因為行動中包含決策,而並行工人若不如此則會出現分歧。共享工作區執行而不使用工作樹(worktrees)是一個刻意的取捨:擁有權加上快照範圍檢查取代了物理隔離。
證據生命週期與凍結
批次在整個運行中依序編號,包括地圖批次、實作批次與修復批次。擷取 base 一次,並在批次 N 之前立即擷取 pre-N;將快照名稱與樹狀 ID 放入該批次的所有簡報中。地圖工人回報對 pre-N 的結果。實作者的檢查在驗證之前都是暫定的;他們的記錄會這麼說並命名 pre-N。在批次 N 的所有寫入者與背景指令停止之後,擷取 post-N 並檢查 names0 pre-N post-N 中該批次的擁有權(對地圖批次則為空);在分派任何其他事項之前,names0 post-N pre-N+1 也必須為空,任何那裡的變更都是範圍外的編輯。當其最後一個實作批次通過此檢查時,一個週期即被凍結:新的驗證者會收到該批次的 post-N,並根據該凍結狀態產生驗收記錄;協調器也會檢查從該週期的第一個 pre 到該 post 的聯合,並且在驗證期間沒有寫入發生。屏障: 一個週期的所有驗證者會一起被分派並一起等待,且直到所有驗證者都已回傳,或被中斷並確認終止之前,不會開始任何修復。一個修復本身是一個批次:擷取其 post-N,進行檢查,並完整地重新運行驗證者集合。在驗收之前,擷取 final;names0 在經驗證的快照與 final 之間必須為空。輔助程式會偵測...