Codex向けの安価な並列エージェント
呼び出し方:このスキルは、ユーザーが名前を指定して呼び出した場合にのみ実行されます。自動的に適用されることはありません。どちらのオーケストレーションスキルも互いを呼び出さず、ワーカーもどちらも呼び出しません。ユーザーが1つのタスクに対してescalating-subagentsとこのスキルの両方を呼び出した場合は、ディスパッチする前にどちらが該当するかをユーザーに確認してください。
想定されるコーディネーター:ユーザーが選択した親モデル(通常はGPT-6.1 Sol)。highは評価のための初期エフォート推奨であり、このスキルが変更する設定ではありません。ultraの親は積極的に委任する場合があります。最初の進捗行でその旨を開示し、highを推奨し、このスキルのディスパッチを通じてのみ委任し、「固定(Pinning)」の下で追加の割り当てを説明してください。実際の親モデルとエフォートを元帳ヘッダーに記録します。コーディネーターはオーケストレーションを行います:階層を分類し、「完了した(Done means)」基準を書き、アイテムに分解し、インターフェースと決定を修正し、ワーカーに指示を出し、バッチをディスパッチし、スナップショットを取得し、すべての受け入れ記録を検査し、トリアージし、報告します。コーディネーターはプロダクトコードを編集したり、ワーカーのトランスクリプトを読んだりすることはありません。受け入れが必要とする場合、証拠の抜粋を読みます。また、階層Dの受け入れ、異議のあるバリデーション、およびスコープ違反のために統合されたパッチも読みます。
ワーカーは1つの安価なモデルでのみ実行され、各々割り当てられた1つのアイテムを実行します。ワーカーは委任を行わず、このスキルまたは他のオーケストレーションスキルを呼び出さず、スナップショットヘルパーを実行しません。ホストの権限とコラボレーションモードを尊重してください。計画モードでは、実装や変更を生成する発見は許可されません。
すべての基準にはIDと必要な証拠タイプが含まれます:behavioral(変更を実行するテスト、ビルド、または実行)、static(型チェックまたはリント)、parse(構文または構文解析チェック)、format(フォーマッターチェック)、またはinspection(レビュー済み差分)。基準のタイプより弱い証拠では決して満たされません。パースチェックはparse基準を満たし、それ以上は満たしません。
階層と割り当てマトリックス
最初の進捗行で階層に名前を付けます。どの段階でも昇格できます。降格はできません。昇格はカウンターを維持し、より高い予算を採用し、影響を受けるワーカーの基準を修正します。アイテムはマトリックスに合わせてサイズ設定します。ワーカーは複数のファイルを所有できるため、作業を削除するのではなくアイテムをマージします。バリデーションはサイクルごとに1回、完全な実装サイクルがフリーズされた後に実行され、バッチごとには実行されません。中間バッチは、次のバッチが開始される前にキャプチャされチェックされたpost-Nを取得し、プロビジョナルなワーカーレコードのみです。
| 階層 | 作業 | マップ(読み取り専用) | 実装 | サイクルごとのバリデーション(V) | 予算 |
|---|---|---|---|---|---|
| A | 簡単で完全に指定された、具体的なチェックがある低リスクの編集 | 0 | lowで1 | 0。コーディネーター実行の事後キャプチャチェック | 3 |
| B | 明確な変更 | 0 | mediumで≤ 4 | mediumで1 | 7 |
| C | 不明確なバグまたは実質的な機能。デフォルト | low/mediumで≤ 3 | mediumで≤ 4 | mediumで1 | 10 |
| D | 認証、テナント分離、マイグレーション、キュー/同期、本番データの変更 | mediumで≤ 3 | mediumで≤ 4 | mediumで2(異なる指示:テスト+基準、仕様+回帰)。コーディネーターがパッチを読む | 12 |
新しい割り当て、再試行、または継続ごとに1回の呼び出しがかかります。並列ワーカーは個別にカウントされます。ステータスメッセージと待機はコストがかかりません。Mを承認されるマップバッチのシャード数(実装バッチの場合は0)、Uをまだディスパッチされていない必要な実装アイテム数(このバッチを含む、マッピング前の計画数、最低1)、Vをサイクルごとのバリデータ数とします。予備は1回の修復とその再バリデーション、1 + Vです。承認には、残り ≥ M + U + V + (1 + V)が必要です。満たさない場合は、幅を縮小するか、アイテムをマージするか、その両方を行います。変更をシリアル化するのは呼び出し回数ではなく、並行性です。承認は残りの必要なアイテムすべてをカウントします。バリデータの再試行(サポートされていないPASS、INCONCLUSIVE)は予備の呼び出しを使用します。FAIL後のr個のアイテムについて:残り ≥ r + Vの場合、r個の修復と完全な新しいバリデーションセットを追加の予備なしで実行し、別のFAILで実行を終了して報告します。1 + V ≤ 残り < r + Vの場合、残り − V個のアイテムを修復し、バリデーションを行い、残りを未解決として報告します。残り < 1 + Vの場合、停止し、変更されていないパッチを再バリデーションせずに、失敗したアイテムを未解決として報告します。動作例:階層B、4つのアイテムを幅4で:7→実装後3→バリデーション後2→2つのアイテムでFAIL、1つの修復と1つのバリデータを承認→0、1つのアイテム未解決。階層BでサポートされていないPASS:7→3→2→新しいバリデータ→1→FAIL→1 < 2、停止。階層C、3つのシャードのマップバッチと4つの計画アイテム:3 + 4 + 1 + 2 = 10承認→7→4つ実装→3→バリデーション→2→1つのアイテムでFAIL→修復とバリデーション→0。階層D:3 + 4 + 2 + 3 = 12→9→5→3→1つのアイテムでFAIL→0。ラダーは予算が承認する間のみ利用可能です。最大幅では、予備は1つの修復のみを承認し、すべての段階ではなく、コーディネーターは幅を選択する際にその旨を述べます。分解によって予算が追加されることはありません。
エフォートラダー
ワーカーモデルは変更されません。エフォートは変更されます。mediumがデフォルトであり、維持すべき場所です。
| 段階 | モデル | reasoning_effort | 使用法 |
|---|---|---|---|
| 0 | gpt-6-luna | low | 機械的な作業:読み取り専用マップシャード、名前変更、移動、フォーマット、名前付きコマンドの実行と報告。判断は不要 |
| 1 | gpt-6-luna | medium | すべての「発見」、「実装」、「バリデーション」アイテムのデフォルト |
| 2 | gpt-6-luna | medium | 具体的な修正と以前の記録パスを持つ新しいワーカー。1回限りの省略の再試行 |
| 3 | gpt-6-luna | max | 段階1または2で確認された推論の失敗、または進捗のない2回目のPARTIALの後のみ |
スキップされたレベル:highは、独立したコーディング評価においてmediumよりも観測された利得が段階を正当化しなかったためスキップされ、xhighはラダーが1つのエスカレーション段階を維持し、maxが1ドルあたりのスコアをより多く購入したためスキップされました。ギャップを埋めないでください。
段階0の指示は次のように言います:判断不要。判断が必要な場合はBLOCKEDを返します。バリデータはすべての階層でmediumから開始します。正しいFAILがバリデータをエスカレートすることはありません。環境の失敗が段階を進めることはありません。モデルのエスカレーションはありません。ラダーが尽きた場合、コーディネーターは停止して報告します。
| 検出事項 | アクション | カウント |
|---|---|---|
| 段階0のワーカーが判断が必要なためBLOCKEDを返す | 可能な場合は事前に判断を下す。アイテムを段階1で再ディスパッチ | 呼び出し。段階→1、失敗ではない |
| 段階1のワーカーが要件を省略するか、指示を誤解する | 段階2:修正と以前の記録パスを持つ新しいワーカー | 呼び出し |
| 段階1または2で確認された推論の失敗、または進捗のない2回目のPARTIAL | 段階3 | 呼び出し+段階 |
| 適切なアプローチと進捗があるPARTIAL | 同じ段階を継続 | 呼び出し |
| バリデータがサポートされていないPASS(証拠タイプが弱すぎる、古いスナップショット、または実行されなかったチェック)を返す | 拒否。明示的な証拠要件を持つ段階2の新しいバリデータ。2回目は段階3。実装は変更しない | 各呼び出し |
| バリデータが正しいFAILを返す | 成功したバリデーション。修復サイクルに入る。失敗したアイテムは独自のラダーでエスカレートし、その後完全な新しいバリデーションセット | r + V 呼び出し |
| バリデータのFAILが記録された証拠でコーディネーターによって反駁される | 修正を記録。実装の変更なし。パッチが変更された場合のみ再バリデーション | なし |
| バリデータが環境的な理由でINCONCLUSIVEまたはBLOCKED | 権限内で是正し、同じ段階で1回再試行。未解決のチェックはブロック済みとして報告に含まれる | 呼び出し。段階変更なし |
| 段階3がアイテムで失敗 | アイテムごとに1回:アイテムを絞り込み(スコープを小さくし、判断を事前に行う)、承認が許せば段階1で再試行。絞り込まれたアイテムは履歴と予算を引き継ぐ | 呼び出し |
| 最終修復サイクルでの失敗 | 停止。未解決のアイテム、証拠、次のステップを報告。それ以上のディスパッチは行わない | なし |
| 曖昧さが「完了」または階層Dのリスクをブロックする | ユーザーに尋ねる。ブロッカーに名前を付ける | なし |
並列バッチ
アイテムは、次の3つすべてが満たされた場合にのみバッチに参加します:所有権の重複なし(ファイルまたはグロブ)。依存関係が満たされている(インターフェースは指示で固定され、アイテムが別の未完了の出力を消費しない)。競合する副作用がない(生成ファイル、スキーマまたはマイグレーション、データベース、ポート、キャッシュ、テストフィクスチャ、CI設定)。それ以外の場合はシリアル化またはマージします。ユーザーが調整可能なデフォルトの上限は、バッチあたり4つのライターと3つの読み取り専用シャードです。これらは非同期委任研究からのヒューリスティックであり、制限ではありません。容量はランタイムから得られます。ホストのアドバタイズされたスロットとそのカウンティングセマンティクスを使用し、min(cap, available slots)をディスパッチします。バッチ全体を1つのメッセージでディスパッチします。部分的なディスパッチでは、生成されたワーカーを維持し、名前で登録し、スロットが空いたときに残りをディスパッチします。すでに実行中のアイテムを再生成することはありません。
すべての指示にはコーディネーターの決定リスト(これまでに選択された名前、インターフェース、規約)が含まれます。アクションは決定を埋め込み、並列ワーカーはそうでなければ分岐するためです。ワークツリーなしでの共有ワークスペース実行は意図的なトレードオフです。所有権とスナップショットスコープチェックが物理的な分離を置き換えます。
証拠のライフサイクルとフリーズ
バッチは実行全体で番号が付けられます。マップ、実装、修復バッチも同様です。baseを1回キャプチャし、バッチ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をキャプチャします。バリデーション済みスナップショットとfinalの間のnames0は空でなければなりません。