エージェントが30万行のCコードを満点に押し上げた。難所を担ったのはハーネスだ

CodeSceneが3週間で投じたトークン費用は約4,000ドル — 作業を安全にしたフレーム単位のリプレイ検証こそ、大半のレガシーコードが再現できない部分である

|6分で読める0
C source code on screen — CodeScene's agents modified 252,055 lines across 726 files in three weeks of part-time work.
C source code on screen — CodeScene's agents modified 252,055 lines across 726 files in three weeks of part-time work.

CodeSceneが3週間かけて行った実験は、エージェントによるレガシー近代化に無視しがたい数字を与えた。トークン費用およそ4,000ドルで、30万行のCコードのCode Healthスコアを5.6から欠点のない10.0まで引き上げたという。数字は広まりやすい。一方でそれに付随する条件は広まりにくいが、同じ作業を計画する側にとってはその条件のほうがはるかに有益な発見である。

その条件とはオラクルだ。エージェントが加えたすべての変更は、ゲームのロールバック状態ハッシュを1フレームずつ突き合わせるリプレイトレース用ハーネスで検証された。メスを入れた対象はストリートファイターIII サードストライクのオープンソース逆コンパイル版である。CodeSceneの報告によれば、この題材を選んだ理由の一つは、2人のエンジニアが実際にこのゲームをプレイしており、壊れればすぐ気づけたことにある。決定論的に動く対戦格闘ゲームは、この種の検証がそもそも成立する数少ないソフトウェアだ。

主なポイント

  • スコア改善に要したトークン費用は約4,000ドル。CodeSceneはこれを開発者の月給の半分と位置づけ、エージェント登場前の見積もりである専門家12〜18か月分の作業と対比している。
  • 安全網はテストではなく挙動に基づくものだった。ロールバック状態ハッシュをフレーム単位で比較するリプレイハーネスに加え、エージェントが最適化目標にできるCodeHealthスコアがそれを支えた。
  • 成果として出回っている数値——AI起因の欠陥70%減、トークンの無駄45%減——はCodeSceneの過去研究から引き継いだ推計であり、今回測定された値ではない。

4,000ドルが実際にカバーした範囲

作業量そのものは相当なものだ。コミット2,903件、触れたファイル726件、変更行数252,055行にのぼる。この総量を読むうえでは範囲の把握が欠かせない。専任チームではなくエンジニア2人がパートタイムで取り組んだもので、費用に含まれるのは人件費やレビュー時間ではなくトークンのみである。

フィードバックはMCPサーバー経由で届けられた。CodeSceneのCodeHealth指標をエージェントが参照できるようにしたことで、変換をただ試すのではなく採点できるようになった。決定論的な品質指標と決定論的な正しさの検証を組み合わせたことこそ、このループをほぼ無人で回せた理由である。どちらか一方でも欠ければ、処理量の数字は意味を失う。

発見はスコアではなくプレイブックだ

満点という指標値は、この実験で最も他所に持ち出しにくい部分である。長く残る成果物は別にある。エージェントが作業しながら積み上げた、レシピ22件と補足ノート82件から成るプレイブックだ。繰り返し遭遇した変換の型に名前を付け、それぞれの前提条件を書き留めたものである。

一部の項目は標準的な定石そのままだ。関数の抽出、ガード節、パラメータオブジェクトといったものが並ぶ。一方で3件はどのリファクタリングカタログにも載りそうにない。このコードベース固有の事情を記述しているからだ。Shared Index Rangeは開始位置と終了位置だけが異なるループをまとめ上げる。Action Parameterは呼び出す関数だけが違う重複した制御構造を吸収する。Uniform Step Tableは散在する異種の呼び出しをテーブル駆動のディスパッチに置き換える。

うまくいかなかった結果も残された。指標を動かせなかった試みは少なくなく、むしろ下げてしまったものもあった。それらを成功例の隣に書き込んでいる点は、コード整理というよりラボノートの作法に近い。

モデルの階層差も今回の実行ではっきり表れた。初期の試行錯誤を経て、大半の作業を担ったのはAnthropicのClaude Opusである。新たに立ち現れるパターンを捉えて文書化するという特定の作業では、Opusを用いたClaude CodeがSolを用いたCodexを上回ったとチームは報告した。より小型のSonnetやTerraで走らせた場合は停滞しがちで、コードスメルが残ったまま局所最適に見える地点でファイルが頭打ちになった。

反論が向かう先

InfoQがまとめたところでは、その後LinkedInで起きた議論の争点は、この実行が本当に行われたかどうかではなかった。そこから他者が何を結論づけてよいのか、という点である。擁護する側は、トレースのリプレイがテストスイートの通過よりはるかに高い水準であることを指摘した。テストの通過は、テストが依然として通ることしか保証しない。

範囲をめぐる指摘は鋭かった。あるテックリードは、成果物が実際にマージされたのか、そしてオープンソースのゲームコードが売上を支える本番ソフトウェアの代わりになるのかを問うた。NeoSeeのCTOで、今回の2人のエンジニアの一人であるダニエル・ウェッブ氏は、54件のプルリクエストを経てフォークのmainに入ったと答えた。実際のマージではあるが、外部のメンテナーがいる上流プロジェクトに入ったわけではない。

別の批判は用語に向けられた。コードベースを完璧と表現したこと自体が反発を招いた。新しいレシピについても同様だ。DRYが文字列の重複ではなく知識の重複に関する原則であるなら、ループの境界を手がかりにしたレシピは保つべき区別を潰している恐れがある。さらにClaude CodeとCodexはそれぞれ自社モデルに合わせて調整されているため、成果をモデルの能力とハーネスの設計にどう割り振るべきかは実際のところ判然としない。アーキテクチャは最後まで採点対象外だった。健全性の指標はきれいに見えるのに、構造的な負債が1年後に表面化する筋書きが残る。

まだ測られていないもの

CodeSceneを創業したアダム・トーンヒル氏は、大規模システムに携わった30年の経験に照らして今回の実行を評し、大規模な場面で超人的なAIの性能に出会ったのは初めてだと語った。同時に、自動テストと等価性チェックが絶対に不可欠な安全装置であることも強調している。この但し書きは参加費用を静かに定めてしまう。健全でないコードベースが健全でない一因は、まさにそうした仕組みの欠如にあるからだ。

最も引用されやすい二つの数字は、実のところ予測値である。AI起因の欠陥およそ70%減とトークンの無駄およそ45%減は、CodeSceneの以前のCode Red研究を外挿したものだ。同研究では、健全なコードは平均して10倍速く進化し、欠陥は15分の1にとどまるという結果が出ていた。今回のプロジェクトで実際に観測されたのは、4,000ドルと3週間だけである。

残りを検証することが、予定されているルンド大学の研究の狙いだ。学生に5.6版と10.0版の両方のコードベースを渡し、フロンティアモデルで機能を開発させてコストと品質を直接比較するという。実施する価値のある検証である。LLMによるバグ修正は、壊れたコードを直すより動いているコードを壊すほうが多いという証拠を踏まえればなおさらだ。

FAQ よくある質問

改修したコードは実際にマージされたのか

mainにマージされたが、上流プロジェクトではなくフォーク上である。ダニエル・ウェッブ氏は合計54件のプルリクエストだったとしている。議論に加わったレビュアーたちは、独立したメンテナーが活動する上流プロジェクトで同等の作業を受け入れてもらうほうが、はるかに厳しい試験になると指摘した。

4,000ドルにエンジニアの工数は含まれるのか

含まれない。この金額はエンジニア2人が3週間パートタイムで作業した際のトークン費用のみを指す。CodeSceneはこれを開発者の月給の半分に並べ、同じ近代化をエージェント登場前に行えば専門開発者12〜18か月分を要したと見積もっている。

一般的なレガシーコードベースでも通用するか

採点する側はどこでも通用するが、検証する側はたいてい通用しない。フレーム単位のリプレイは決定論的なゲームループがあって初めて成り立つもので、通常の業務システムに同等の仕組みはまずない。相当する正しさのオラクルがなければ、エージェントは挙動が保たれている確証のないまま品質指標だけを押し上げてしまう。

この記事への反応を残してください!

SJ

ディスカッション

ログインして投稿
読み込み中...

関連記事

DoorDashのエージェント、古い機能フラグを14分・4.79ドルで削除
Developer Tools

DoorDashのエージェント、古い機能フラグを14分・4.79ドルで削除

DoorDashのエージェントが古い機能フラグ50件のうち45件をエンジニア承認済みのプルリクエストに変えた。手作業なら1件あたり1〜2時間かかる作業である。

Seung Jung11 日前
Vercel、1年前に修正済みの不具合でプラットフォーム全体の AVIF を停止
Developer Tools

Vercel、1年前に修正済みの不具合でプラットフォーム全体の AVIF を停止

Vercel は報告された Next.js の RCE を libheif まで追跡し、8月13日にプラットフォーム全体で AVIF を無効化、8月25日までに sharp・libvips・libheif の修正を調整した。

Seung Jung11 日前
Claude Opus 5.5で400を返すようになったOpus 5のリクエスト4パターン
Developer Tools

Claude Opus 5.5で400を返すようになったOpus 5のリクエスト4パターン

Claude Opus 5.5はOpus 5より20%安い一方、Opus 5が通していた4つのリクエストにHTTP 400を返す。5つ目の変更はエージェントの進捗表示を黙らせる。

Seung Jung一昨日
Docker、AIエージェント用サンドボックスをクラウドへ 秒単位課金で1時間0.07ドルから
Developer Tools

Docker、AIエージェント用サンドボックスをクラウドへ 秒単位課金で1時間0.07ドルから

Dockerがマイクロ VM によるエージェント分離をホスト型コンピュートに広げるCloud Sandboxesを発表した。1時間0.07ドルから秒単位で課金し、Kits仕様はCNCFに提出する。

Seung Jung5 日前
OpenRouterが米国のAIトラフィックを国内に囲い込み、中国製モデルが流通量を主導
Developer Tools

OpenRouterが米国のAIトラフィックを国内に囲い込み、中国製モデルが流通量を主導

OpenRouterが米国リージョン内ルーティングを正式提供に移行した。米国エンドポイントへのリクエストは復号から処理、応答まですべてが国内で完結する。

Seung Jung15 日前
7 カ月でエージェントスキル 100 万件 — その半数近くはインストール 1 回きり
Developer Tools

7 カ月でエージェントスキル 100 万件 — その半数近くはインストール 1 回きり

Vercel の skills.sh が 7 カ月でエージェントスキル 100 万件を突破した。半数近くはインストール 1 回きりで、375 件が全インストールの 62% を占める。

Seung Jung4 日前