スタンフォード大学によるこのプレプリントは、AI コーディングエージェントが大規模に導入されつつある一方で、人々が実際にそれをどう使っているかについての証拠はほとんど逸話的なものにとどまっている、という観察から出発する。ソフトウェアエンジニアリングのベンチマークの多くは、明確に定義され検証可能な解と、最初から完全な指示を伴う厳選された問題であり、開発者がどのようにプロンプトを与え、舵取りし、上書きし、最終的にエージェントの生成物をコミットするか破棄するかを捉えたものは一つもない。この空白を埋めるため、著者らは SWE-chat を構築した。これは、開発者が Entire CLI によるセッションのログ記録に同意した公開 GitHub リポジトリから収集した実際のセッションのデータセットであり、Entire CLI は各セッションをコミットに結びつけ、人間とエージェントのどちらが書いたかを行単位で帰属させる。執筆時点で 200 以上のリポジトリにわたる約 6,000 セッションを収録し、63,000 件を超えるユーザープロンプトと 355,000 件のエージェントのツール呼び出しを含んでいた。データの約 85% は Claude Code によるものである。
分析は 2 つの問いを扱う。ユーザーは実際のタスクでコーディングエージェントとどのようにやり取りするのか、そしてエージェントは実際にどのように失敗し、ユーザーはそれにどう対応するのか、である。セッションとプロンプトには LLM ジャッジによってアノテーションが付けられた。LLM ジャッジは、タスクごと(ユーザーの意図、異議(pushback)、ペルソナ、セッションの成功)に 100 件の人手による正解ラベルと照らした検証を経て選定されている。効率はセッションログとコミットの帰属情報から直接計測した。セキュリティは、各コミットの前後のスナップショットに静的解析ツール Semgrep を実行して評価した。
主なポイント
- コードの作者は強い二峰性を示す。著者らは、コミットされたコードのうちエージェントが書いた割合によって 3 つのコーディングモードを定義している。人間のみ(セッションの 22.7%)、協働(36.5%)、そして バイブコーディング である。バイブコーディングは、コミットされたコードの 99% 超をエージェントが書いたセッションとして操作的に定義されている(40.8%)。3 か月の観察期間のうちに、バイブコーディングの割合は約 20% から 40% 超へと倍増した。
- エージェントはパッチを書く以外の用途にも多く使われている。既存のコードや振る舞いを理解することが最も多い具体的な意図であり(プロンプトの 19.0%)、エージェントのツール呼び出しの 3 分の 1 は bash コマンドで、その大半は git 操作だった。著者らは、パッチ生成に狭く焦点を当てたベンチマークは、実際のエージェントの作業の運用上の多様性を過小評価していると結論づけている。
- 大半のセッションはおおむね成功と評価された(90% が 50 以上のスコア)が、エージェントが生成したコードのうちユーザーのコミットまで残ったのは半分未満(44.3%)であり、その主な理由はユーザーがコミットしないことを選んだためだった。バイブコーディングのセッションでは 59% が残ったが、著者らはこれがより的を絞った出力を反映している可能性も、ユーザーによる精査が甘かったことを反映している可能性もあると述べている。
- コミットされた行あたりで見ると、バイブコーディングは最も非経済的なモードだった。コミットされた 100 行あたりのトークン数の中央値は 204K で、協働セッションの約 3 倍、人間のみのセッションの約 2 倍であり、100 行あたりの所要時間は 12.6 分と、協働セッションの 4.8 分を上回った。協働コーディングが最もコスト効率の高いモードであり、著者らはこれを、完全な自律性に向かう現在の流れが逆効果となりうることを示唆するものと読んでいる。
- バイブコーディングによるコミットは、Semgrep が検出した脆弱性をコミット 1,000 行あたり 0.76 件持ち込んでおり、これは人間のみの場合(0.08)の約 9 倍、協働の場合(0.14)の約 5 倍にあたる。より多くの脆弱性を修正してもいたが、どのモードでも持ち込まれた数が修正された数を上回った。検出された問題には、パストラバーサル、コマンドインジェクション、安全でない書式文字列、SQL インジェクションが含まれていた。
- Claude Code のセッションでは、エージェントが立ち止まって確認を求めることはまれだった(ターンの 1.1%〜2.6%)。一方でユーザーは 3.3%〜6.0% のターンでエージェントを中断し、モードにかかわらず 39% のターンの後に修正、却下、失敗報告といった形で異を唱えた。中断は、エージェントがプランモードを抜けたとき、git 操作を行ったとき、ファイルを編集したときに最も多く起きた。著者らはこの非対称性を、自律性が監督を追い越しており、不確実性をめったに示さないエージェントをユーザーが補っている状態とまとめている。
- 大半のユーザーは、バイブコーディングのセッションであっても、目標を安定させたまま的確な修正を出す「熟練のあら探し屋(expert nitpickers)」として振る舞った。セッション途中で目標を変えることはバイブコーディング中のほうが少なかった(他のモードの 10% に対して 5%)。著者らは、これが最初から完全な指示を与えるベンチマークとは対照的だと指摘している。
補足
著者らは SWE-chat を、収集パイプラインが新しいセッションを継続的に発見し続ける、生きたデータセットとして位置づけており、本論文以外の用途も提案している。実際のワークフローに基づくベンチマーク、より適応的な人間とエージェントのインタラクション設計、そして実際の軌跡で訓練したユーザーシミュレーターによるオフライン評価である。アブストラクトにある異議の数値(ターンの 44%)は、中断とターン後の異議を合算したものである。
著者らが述べている限界は次のとおりである。データは公開リポジトリで Entire CLI を使い、ログ記録に同意した開発者のみを対象としているため、アーリーアダプターに偏り、企業の非公開コードベースは含まれない。初期データの大部分は Entire 自身のリポジトリから来ている。ユーザーが出力を放棄したセッションはコミットされないため捕捉されず、成功率や効率を過大評価している可能性が高い。行単位の帰属は、書き直された形で残ったエージェントのコードを見逃す。LLM が生成したラベルは不完全であり、著者らはそれを額面どおりに受け取らないよう注意を促している。ここで抽出したバージョンは arXiv:2604.20779v1 である。