コードを書くAIが、だんだん賢くなっている。
それなのに、長い仕事を任せると、なぜか途中で迷子になる。
テストに落ちているのに「直りました」と終わったり、同じ場所を何度も直したりする。
問題は、コードを書く力だけではないのかもしれない。
AlibabaのDreamXチームとUNSWの研究者は昨日、arXivで「LoopArena」(2608.28281)を公開した。これは、言語モデルが長時間動くCoding Agentの「司令塔」として、どれだけうまく振る舞えるかを見るベンチマークだ。
いまのClaude CodeやDevinのようなツールは、ひとつのプロンプトを投げて終わり、ではない。
実際には、その外側で「次に何をさせるか」を決めるループが動いている。
タスクを読み、Workerに指示を出す。
コード差分やテストログを受け取り、進み具合を確かめる。
まだ続けるのか、方向を変えるのか、それとも終わるのかを決める。
この「外側のループ」が、仕事全体の交通整理をしている。
ところがSWE-benchのような標準的なベンチマークでは、一連の実行をひとつの黒い箱として扱う。
失敗しても、最後のエラーログだけでは、どこで壊れたのかがわかりにくい。
Workerが文法エラーを書いたのかもしれない。
Controllerが、存在しない「テスト成功」を信じたのかもしれない。
回帰を見落としたのか、あと3手必要なのに早く終わらせたのかもしれない。
LoopArenaがおもしろいのは、ここを分けて見ようとしたところだ。
役割はふたつある。
Workerは固定されたCoding Agentで、ファイルを編集し、ターミナルコマンドを実行し、テストを走らせる。
Controllerが評価対象のモデルだ。
各ステップのあとに構造化された実行サマリーを受け取り、「新しい指示を出す」「特定の確認をする」「ロールバックする」「提出する」といった次の行動を選ぶ。
つまり、手を動かす人と、仕事を見張る人を分けた。
ベンチマークは、実行コストの違う3段階でControllerを試す。
Type Iは、過去の実行履歴を見て「次に何をすべきか」を答える静的な問題。ライブ環境は動かさない。
Type IIは、開発タスクの一部分だけを対話的に操作し、特定の問題から何ステップで立て直せるかを見る。
Type IIIは、リポジトリの初期状態から完了まで走り切る、長い本番型のタスクだ。
そして、数字はかなり厳しい。
Type IIIの完全タスクでは、テストされたControllerの中で最も高いStrict Success Rateでも24.69%だった。
下で動くコード生成モデルが優秀でも、複数ファイルにまたがる変更を最後まで導くのは難しい。
一方で、うまいControllerには大きな利点もあった。
不要な推論を削ることで、総推論コストは平均64.4%減った。
同じテストを何度も回さない。
堂々巡りの修正を止める。
見込みのない経路は、トークンを使い切る前に切る。
「賢く考える」だけでなく、「無駄に続けない」ことも性能の一部になる。
さらにType IIの短い区間評価は、Type IIIの完全実行とSpearman順位相関0.9747を示した。
つまり、毎回何百ドルもかけてリポジトリ全体を走らせなくても、短い実行区間でControllerのプロンプトや制御方針をかなり正確に比較できる。
ここは、Agentを作る側には実務的に大きい。
Agentが失敗すると、つい「もっと強い基盤モデルに替えよう」「ドキュメントをもっとContext Windowに入れよう」と考えたくなる。
でもLoopArenaが示しているのは、Context Windowが足りなくなるより前に、実行中の判断そのものが失敗を生んでいる場合がある、ということだ。
たとえばWorkerが「docstringのバグを直しました」と報告する。
Controllerがその言葉を信じ、テストを走らせずに終了する。
人間の仕事でも、少し見覚えがある。
「たぶん大丈夫です」で会議が終わり、翌朝に大丈夫ではなかったことがわかる、あの感じだ。
もうひとつはloop thrashing。
ふたつの矛盾する修正を行ったり来たりしながら、Controllerだけが「進捗あり」と判断し続ける。
これを防ぐには、WorkerとControllerの間の「約束」を厳しくする必要がある。
完了条件には、実行可能なテスト成功を必須にする。
Workerの自然言語による「直りました」だけでは終わらせない。
同じ5行を3回変えているのにテスト結果が変わらないなら、もう一度自由にやり直させるのではなく、ロールバックさせる。
Controllerには、ターミナルの生ログを丸ごと渡すのではなく、整理された実行サマリーを渡す。
観察と判断を分けるためだ。
Coding Agentの性能は、コードを書くモデルだけで決まらない。
いつ確かめるか。
いつ疑うか。
いつ戻すか。
そして、いつ終わるか。
長い仕事ほど、最後に効いてくるのは、その判断なのだと思う。
LoopArenaのリポジトリと評価コードは、GitHubのAMAP-ML/LoopArenaで公開されている。