
2026/02/04 8:31
「選択であり、予測ではありません」
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Summary
本研究は、複数のコーディングエージェントを並行して実行し、最高品質の出力(“best‑of‑N”)を選択する方策が、単一エージェントに依存するよりも遥かに効果的であることを示しています。このアプローチは、言語・タスク種別・時間によって変動する予測不可能なエージェント性能を最適化問題へと転換します。
Methodology:
仕様書の作成から始まり、それを複数の隔離されたワークツリー上にあるエージェントへディスパッチし、リポジトリ評価を実行、最後に人間レビュアがマージ用に最適な差分を選択するというワークフローを構築しました。プロセスは、どのエージェントのパッチが実際にマージされたかを記録するリーダーボードで追跡されます。
Data & Findings (211 本の実世界 TypeScript タスク、18 エージェント):
- 単一トップエージェントはわずか 24 % の確率で勝利します。
- トップ3コホートでは成功率が約 51 % に上昇し、トップ7コホートでは 91 % 近くに達します。
- 7番目以降のエージェント追加は減少限界を迎え(8–18 エージェントはほぼ僅かな向上しか提供しません)。
- Bradley‑Terry/Elo モデリングでは、エージェント間に明確なパフォーマンス階層が示され、トップティアと下位ティアの間に顕著なギャップがあります。トップティア内では信頼区間が大きく重複しています。
Practical Implications:
トークン使用量は低コストである一方、人間レビュー時間は費用がかかるため、3–7 エージェントの小規模なコホートをデプロイすることで、マージ可能なパッチを生成する確率を最大化しつつオーバーヘッドを管理できます。この戦略は日常的な製品作業においてコード品質を向上させバグを減らす効果がありますが、他のワークフローやドメインでは結果が異なる可能性があります。
本文
コーディングエージェントはかなり優秀になってきており、誰もが尋ねる質問は「どれを使えばいいのか?」です。
しかし、エージェントの性能は言語・タスク種別・時間帯によって大きく異なります。単一のエージェントに固執すると、自分が投げるあらゆるタスクで最適だと予測してしまいます。この予測は評価結果、経験、口コミなどから導かれることもありますが、ばらつきが大きいため、しばしば誤ってしまうでしょう。
選択(Selection)はその予測問題を回避します。多くの候補実装を生成し、その中から最良のものを選びます。つまり、予測問題を最適化問題に変換するわけです。そのため、我々が尋ねるべき質問は「何人のエージェントを使うか、そしてどれを選ぶか?」であり、これは一般的に「best‑of‑N」と呼ばれます。N個の並列試行(ここでは異なるモデル)を実施し、その中から最高の出力を選び取ります。
エージェントは競い合い、人間が仲裁する
数か月前からこのワークフローを運用しています。以下にその流れを示します。
- タスク仕様を書き、複数のエージェントへ並列で配信
- 各エージェントは独立した作業ツリー(worktree)で動き、リポジトリ内の評価(evals)を実行
- 人間レビュアーが差分(diff)を確認し、最適な実装を選択 そのパッチをマージ
- マージされた diff を生成したエージェントが「勝者」となる
これは人間審査付きの best‑of‑N です。日常業務を有用な評価信号に変換します:実際のコードベースでリアルタスクを与えたとき、どのエージェントがマージされたコードを生成したか? このデータは実際の日々の作業から得られ、18種類のエージェントで211タスクにわたり収集されています。リーダーボードで継続的に結果を追跡しており、以下のプロットはそのスナップショットです。
ほとんどのタスクはフルスタックTypeScript製品作業で、原子単位の機能追加・バグ修正・リファクタリングなど、数分から約1時間程度のものが多いです。
ランキングはノイズが大きい
各実行に勝者が決まれば、それをマルチウェイ(複数相手)マッチとして扱い、結果からレーティングを推定できます。Bradley–Terry モデルで勝敗ペアをフィッティングし、強さをElo風のレーティングにマッピングします。
- 各点はエージェントのレーティング(高いほど良い)
- ウィスカーは90%ブートストラップ信頼区間、色はモデルファミリーを示す
データ全体で見ると、エージェントは自然に階層化されます。トップティアとそれ以外との明確なギャップがありますが、その中でも上位二者の信頼区間は大きく重なります。スナップショットでは gpt‑5‑2‑high と gpt‑5‑2‑codex‑high が約40ポイント重複しており、1位と2位を確実に分けることはできません。
ランキング自体は存在しますが、ノイズが大きく、トップレーティングモデルでもタスクごとのばらつきが期待できます。リーダーボードから一つだけエージェントを選ぶなら、そのばらつきを考慮に入れる必要があります。
選択のメリットは大きい
単一エージェントではなく、複数(コホート)を走らせることでどれだけ得点が上がるかを測定します。評価は「少なくとも1人以上が参加した実行で勝率」を用います。例えばトップ3のエージェントを走らせた場合、その中の誰かがマージされた diff を生成する頻度です。
- x軸:コホートサイズ(レーティング順)
- y軸:そのコホートに少なくとも1人が参加した実行での勝率
データ全体から:
| コホート | 勝率 |
|---|---|
| トップ1 | 24 % |
| トップ3 | 51 % |
| トップ7 | 91 % |
最初の数人が最大の影響を与え、7人以降は曲線が平坦になり、8〜18番目のエージェントで得られる確率向上はわずかです。すべてのエージェントを走らせる必要はありませんが、1つだけに固執すると多くの場合より良いコードを残してしまうことになります。
結論
コーディングエージェントは性能階層に分かれ、トップティア内では差が薄くノイズが大きいです。リーダーボードは有用であり、主に「デフォルトの単一エージェント」ではなく「複数(コホート)」を選択する際のガイドとして機能します。特定タスクで最適なエージェントを事前に予測することは難しいですが、トップティアから数人を走らせれば、ほとんどの場合その中の1つが正解を導きます。
データでは、1人から3人へ移行すると勝率が約2倍になり、3人から7人に増やすことで残余の利益を大部分捉えられます。これは我々の日常製品作業で得た結果ですので、ワークフローやドメインが異なる場合は結果も変わる可能性があります。
トークンは安価で、人間のエンジニアリング時間は高価です。より良い基盤を得て、後続作業のクリーンアップやバグを減らすために、少し多めにエージェントを走らせる価値があるかもしれません。