用於 Codex 的升級式子代理
建議協調器:gpt-6.1-sol 搭配低努力。保留父層選定的模型;此技能不會更改它。主代理負責協調:選擇層級、定義驗收標準、簡報工作單元、檢查交接、分類問題及報告。它從不編輯產品程式碼。從簡潔報告(最多 30 行)、範圍差異與證據路徑開始;在證據遺失、有爭議或不足以判定 D 層風險時檢查更多程式碼或執行檢查。不要機械性地對未更改的修補程式重複檢查。
工作單元執行一個指定的階段,且絕不委派或叫用此技能。尊重主機權限與協作模式;計畫模式不允許進行實作或產生變更的探索。
層級
在第一行進度中命名層級。任何階段都可以升級層級;絕不能降級。升級時,保留計數器,使用較高層級的總預算,並為每個受影響的工作單元修訂標準。對於 D 層,將探索/驗證提升至至少第 3 級;絕不降低現有等級。在進一步實作之前,執行新要求的探索。
| 層級 | 工作 | 流程 | 起始等級 |
|---|---|---|---|
| A | 瑣碎、完全指定、低風險的編輯,具有具體的檢查 | 實作;交接取代驗證 | 1 |
| B | 明確的變更,受益於委派 | 實作 → 驗證 | 兩者皆為 1 |
| C | 不明確的錯誤或重要功能;預設 | 探索 → 實作 → 驗證 | 三者皆為 1 |
| D | 驗證、租戶隔離、遷移、佇列/同步、生產資料變更 | 探索 → 實作 → 驗證 | 探索/驗證 3;實作 1 |
階段與檢查
- 驗收標準 - 父層: 在調度前定義「完成意味著」。A/B 層從請求中推導檢查和預期結果;C/D 層在探索後完善草稿。實作和驗證接收相同的標準和原始請求。
- 探索 - C/D 層: 確認範圍或重現問題。不進行產品編輯;明確擁有的重現/測試檔案是允許的。報告原因/範圍,包含位置、證據、建議的標準和開放問題。對於唯讀探索,在簡報中禁止儲存庫編輯並驗證範圍;不要發明每個代理的沙盒設定。
- 實作: 僅變更擁有的檔案;報告編輯、命令、退出狀態和未完成的工作。
- 驗證 - B/C/D 層: 一個未參與實作的新代理,根據請求、規格和標準檢查整合後的修補程式。不進行儲存庫編輯或新增回歸測試;為實作建議遺失的測試。允許從頭開始報告和正常的測試產出物。根據每個標準報告證據和未測試的區域。
在提交命令之前執行前置測試先決條件。僅在其覆蓋範圍同等時才偏好可行替代方案。切勿僅僅為了獲得 PASS,而以單元測試取代所需的整合、端到端、視覺或裝置證據。將受阻的必要檢查帶入最終結果;不要假定任何特定的測試執行器可以在沙盒中執行。僅在具體補救措施後重試環境失敗。
探索/實作回傳 DONE、PARTIAL 或 BLOCKED。驗證回傳 PASS、FAIL、BLOCKED 或 INCONCLUSIVE。每次呼叫的時間預算:A/B 10 分鐘;C/D 25 分鐘。在極限時,回傳 PARTIAL 或 INCONCLUSIVE,並附上已完成的工作、證據、未完成的檢查和下一步。
階梯與調度
| 等級 | 模型 | reasoning_effort |
|---|---|---|
| 1 | gpt-6-luna | medium |
| 2 | gpt-6-luna | medium |
| 3 | gpt-6.1-sol | low |
| 4 | gpt-6.1-sol | medium |
| 5 | gpt-6.1-sol | high |
等級 2 是一個帶有具體修正證據的全新 Luna 重試。Sol low 在應用程式中是 Light,不是額外的等級。
對於具體的遺漏或誤讀簡報,前進一級;等級 2 是在使用更強模型之前唯一的遺漏重試。對於等級 1 或 2 的確認推理失敗,直接跳到等級 3。在等級 3 或以上,前進一級。下面的「升級」即指此規則。當不充分的工作耗盡等級 5 時停止。有成果的延續和已修正的環境失敗不會前進等級。不要在沒有具體修正的情況下重試相同的失敗方法;改為升級。這並不禁止有成果的延續。
使用暴露的 Codex 架構:spawn_agent 搭配唯一的 task_name、在 message 中提供完整的簡報、明確的 model、reasoning_effort,以及在支援的情況下使用 fork_turns: "none"。不要使用完整歷史分支進行覆蓋。報告不相容的控制項,而不是更改全域設定或透過巢狀 CLI 繞過它們。對於同一等級的延續使用 followup_task,對於模型/努力變更則使用全新的生成。等待/監聽/引導呼叫不會產生免費的額外指派。中斷逾時的工作單元,並確保在繼續之前寫入已停止。
記錄要求和可觀察到的有效設定;當有效值未暴露時使用 unavailable。從不默默地替換不可用的模型或設定。在簡報中保留證據路徑,而不是複製記錄檔。重試簡報需命名修正/假設,並說明繼續修補程式或取代這些區塊。
會計與分類
分別追蹤總呼叫數、每個階段的呼叫數以及每個階段/工作項目的等級。每個新的工作指派、重試或延續花費一次呼叫;狀態訊息和等待不花費。平行工作單元和基線測試工作單元單獨計算。在支援的情況下,為每個調度的指派或延續建立一個執行時期任務清單項目;更新它不花費呼叫。正確的驗證 FAIL 是成功的驗證,而不是升級驗證器的理由。在選擇資料列之前診斷失敗。
| 發現 | 下一步行動 | 計為 |
|---|---|---|
| 不充分的工作 | 使用證據升級負責的階段 | 呼叫 + 等級前進/跳躍 |
| PARTIAL 搭配合理的方法和進度 | 在同一等級繼續 | 呼叫 |
| 同一等級的第二次 PARTIAL,或無進度證據 | 升級該階段 | 呼叫 + 等級前進/跳躍 |
| 錯誤的診斷 | 升級探索;之後修訂實作簡報 | 呼叫 + 等級前進/跳躍(探索) |
| 驗證 FAIL 是錯誤的 | 父層使用記錄的證據修正,或升級驗證;不要更改實作 | 修正不計;重新驗證計為呼叫 + 等級前進/跳躍 |
| 驗證 FAIL 正確識別出不充分的實作 | 升級實作,然後在其當前等級進行全新的驗證 | 呼叫 + 等級前進/跳躍(實作),呼叫(驗證) |
| 驗證超時,但列出了已完成的檢查 | 在其當前等級繼續處理未完成的檢查 | 呼叫 |
| 環境失敗或缺少先決條件 | 在授權範圍內補救,然後重試一次;如果未解決則停止 | 重試計為呼叫;等級不變 |
| 阻礙性的模糊性改變了「完成」或 D 層風險 | 詢問使用者;命名阻礙者 | 無 |
父層修正不會免除檢查:驗收需要每個標準的證據。僅在驗證器從未實作且修補程式未變更時,才在相同代理中繼續驗證。在修復後,使用全新的驗證器。等級 5 的正確 FAIL 並不會耗盡驗證器;分類實作。
預算: A 層 3 次呼叫;B 層 4 次;C/D 層 8 次。在調度前檢查:剩餘呼叫必須涵蓋所有提議的工作單元,加上當他們的工作需要時的最後一次最終驗證。驗證本身只需要自己的呼叫。允許剩一次加上最終驗證;允許剩兩次加上一個實作;不允許剩兩次加上兩個實作。僅當所有必要工作仍然符合時才減少批次。在探索後保留實作和驗證。升級後重新檢查。
最後一次允許的呼叫可以成功完成任務。否則在無法負擔的工作前、最終等級失敗時或未解決的阻礙者處停止。從不默默地省略必要的工作或在必要的驗證未完成時聲稱完成。一般的實作選擇不需要詢問使用者問題;記錄它們。
快照與交接
父層獨自執行以下內嵌的 Bash/Git 快照腳本。不需要伴隨檔案。使用 umask 077,建立 ${TMPDIR:-/tmp}/escalating-subagents/,然後使用 mktemp -d 在其中建立一個唯一的 task.XXXXXX 目錄。使用以下命令提取標記的區塊,從不透過重新輸入(SKILL 是此文件的絕對路徑,TASK 是任務目錄):
sed -n '/^<!-- agent-snapshot:start -->$/,/^<!-- agent-snapshot:end -->$/p' SKILL | sed '1,/^```bash$/d;/^```$/,$d' > TASK/agent-snapshot.sh
其 SHA-256(shasum -a 256 或 sha256sum)必須為 ddc6cd474ae00cb7fc7613deefb4a9f5ff959f6b641abf041f1a7e26d7d8ca95;不符即為阻礙者。對於快照,單獨使用 <task>/state。不要將腳本放在最初為空的狀態目錄內。使用 Bash 執行它,從不 source 它。
在父層帳冊中記錄絕對的儲存庫、輔助程式和狀態路徑;在每次呼叫時明確傳遞它們,不依賴跨命令的 shell 狀態。工作單元從不執行輔助程式或接收其控制路徑。在任何調度之前成功初始化;報告初始化錯誤並停止,僅在權限導致問題時識別沙盒阻礙者。下面的大寫單詞是佔位符;引用實際路徑:
bash HELPER init REPO STATE
bash HELPER capture STATE base
bash HELPER capture STATE pre-1
bash HELPER capture STATE post-1
bash HELPER diff STATE pre-1 post-1 names0
bash HELPER diff STATE pre-1 post-1 stat
bash HELPER diff STATE base post-1 patch
捕捉 base 一次,pre-N 緊接在每次調度/批次之前,以及 post-N 在其所有工作單元和寫入完成之後。將整合的修補程式輸出儲存在草稿證據中。命名的快照是不可變的。狀態會保留樹狀 ID 和臨時索引/物件;實際的索引/物件資料庫不變。包含追蹤的忽略檔案和未被忽略的未追蹤檔案。不要使用 git diff HEAD 作為替代。
輔助程式失敗是阻礙者。它拒絕並發寫入;除非其記錄的處理程序已確認停止,否則不要刪除鎖。中斷的未發布快照無法取代命名的快照。保留狀態直到報告和任何預期的後續工作完成。
使用 NUL 分隔的變更路徑進行範圍檢查,使用 stat 進行摘要,以及使用整合的修補程式進行驗證。超出範圍的編輯將被拒絕,除非父層為合法的依賴項明確擴展所有權。保留無關的工作;從不自動重置、清理、儲藏或還原它。
在可用容量內一起調度不相交的實作工作單元。對於每個批次,針對所有權的聯集進行比較;報告提供個別歸屬,而非作者證明。在檢查範圍或驗證之前等待整個批次。序列化共享檔案/基礎架構和會污染快照的無關並發寫入者。
在交接時驗證命令結果、證據路徑、引用位置和檔案狀態相關性。新的編輯會使受影響的檢查失效。已接受的工作前進;被拒絕的工作返回分類。追蹤長時間運行的命令直至完成,並在快照前停止未完成的寫入;背景啟動不等同於完成。
儲存庫限制與簡報
閱讀適用的 AGENTS.md、範圍內的說明、規格和設計指南。使用儲存庫的套件管理器、鎖定、依賴版本、遷移和文件政策。將生產資料限制明確帶入相關的工作單元簡報,包括適用時的即時資料和僅新增需求;不要依賴工作單元間接發現它們。
工作單元從不提交、推送、部署或執行無關的外部寫入。僅當儲存庫和主機規則允許時,父層才能執行明確請求的動作。
每個簡報包含:任務、層級、原始請求、絕對的儲存庫/說明/證據路徑、模型/努力、逐字的標準、所有權、命令超時、牆上時鐘預算、生產資料限制,以及「不要委派、叫用此技能或執行快照輔助程式」。
- 探索: 相關路徑,如果重試則包含先前的報告;除了明確授權的重現/測試檔案外,不擁有任何東西。不進行產品編輯或安裝。報告結果、原因/範圍、位置、證據、建議的標準、開放點、下一步...