AIが書いたコードは人間のコードよりもバグが多いのか?
28の公開リポジトリ、112,382件のコミットを分析した結果、AIエージェントが書いたコードは人間が書いたコードよりもバグを導入する可能性が低く、コードベースでの生存期間も長いことがわかりました。ただし、この結果は人間によるレビューに依存しており、主に人間主導のエージェントに当てはまります。
AIが書いたコードは人間が書いたコードよりもバグが多いのか?この問いに対して、エンジニアたちはそれぞれ確信を持って答えるが、データに基づく回答はほとんどなかった。そこでRepowiseチームは、実際のプロジェクトのGit履歴を遡り、バグ修正を導入したコミットを特定する標準的な手法(SZZ)を用いて調査を行った。対象は28の公開リポジトリ、112,382件のコミットで、AIコーディングエージェントが実際のプルリクエストをマージし始めてから1年間をカバーしている。
まず、コミット単位の出自検出器を構築し、8つの異なるシグナル(ボットアカウントの識別情報、サービスメールアドレス、コミットメッセージのフッター、共著者のトレーラーなど)を読み取ってコードの出所を識別した。ブラインドテストで精度96.2%を達成している。出自に基づき、エージェントのコミットを3つの層に分類した:T1(自律型ボットエージェント、例:Devin、Copilotコーディングエージェント)、T2(人間駆動型エージェント、例:Claude Code、Codex、これが大多数)、T3(AIアシスト、共著者トレーラーのみ)。
主要な発見は、AIエージェントのコミットは人間のコミットよりもバグを導入する可能性が低いことだ。変更規模を制御した後、人間駆動型エージェント(T2)のバグ導入オッズ比は0.57(95%信頼区間0.42〜0.76)、ボットエージェント(T1)は0.75(0.43〜0.95)、AIアシスト(T3)は0.96(0.69〜1.08)で、人間と区別がつかなかった。より厳格なB-SZZ変種でも、T2の効果は0.79(0.68〜1.01)に減衰したが、依然として人間より悪いという証拠はない。
さらに、AIが書いたコード行はコードベースで長く生存した。同じリポジトリ内で比較すると、人間駆動型エージェントのコードは人間のコードよりも17.9パーセントポイント高い生存率を示した。研究では3つの原因が考えられている:エージェントのPRはより厳しくレビューされる傾向がある、エージェントは修正タスクに偏っている(修正型コミットはリスクが低い)、人間のベースラインには急いだコミットなどが含まれている。
ただし、結果はレビュー済みのマージされたコミットに限定されており、未レビューのAI出力には適用できない。また、検出されなかったエージェントコード(開発者が手動でコピーしたもの)は人間としてカウントされているため、実際の影響は過小評価されている可能性がある。データセットもランダムサンプルではない。結論として、有能な人間がAIエージェントと協力し、人間がコードをレビューするというワークフローは、人間単独で作業するのと少なくとも同等の品質を生み出すことが示唆された。