本論文は、実環境における 開発者とエージェントのミスアライメント の、著者らの言う初の大規模な特徴づけを提示する。コーディングエージェントの失敗に関する先行分析の多くは、統制されたベンチマーク上でのエージェント内部の実行トレースを読み解くものだが、本研究は自然な会話ログを出発点とする。ベンチマークの軌跡は、実際の開発者がループに入らない事前に定められたタスクのもとで生成されるため、乖離がどのような形をとったのか、なぜ起きたのか、開発者がそれをどのように検出して訂正したのかを示せない、というのがその論拠である。
分析は、実際のコーディングエージェントのセッションからなる 2 つのデータセットを組み合わせている。公開エクスポートされた SpecStory の履歴を再クロールしたもの(1,441 リポジトリにわたる 14,789 セッション)と、SWE-chat(198 リポジトリにわたる 5,785 セッション)である。合わせて 1,639 の異なるリポジトリからの 20,574 セッションとなり、IDE と CLI の両方のワークフローにまたがっている。著者らは、2 つのデータセットに共通するリポジトリがないことを確認している。
ミスアライメントは狭く操作的に定義されている。破綻は、ログの中でその後の開発者による訂正や反発を通じて可視化された場合にのみ数えられる。これにより、潜在的なミスアライメント ── 出力を黙って却下することや、コメントせずにコードを直接編集すること ── は意図的に研究の範囲外に置かれている。LLM ベースの抽出器が候補エピソードを特定し、第 2 段階の証拠フィルターが会話によって裏づけられない主張を取り除き、残ったエピソードを、専門家のアノテーションに照らして検証された LLM ジャッジを用いて 4 つの軸でアノテーションした。
主なポイント
- エージェントが開発者の指示や意図から乖離する様子は、7 つの実質的な症状カテゴリーで特徴づけられる。Developer Constraint Violation(エピソードの 38.33%)、Misread Developer Intent(26.95%)、Inaccurate Self-Reporting(22.58%)、Faulty Implementation(17.82%)、Wrong Project Diagnosis(11.56%)、Self-Initiated Overreach(10.20%)、Operational Execution Error(2.87%)である。症状はマルチラベルのため、合計が 100% になるとは限らない。
- これに 7 つの原因カテゴリーが伴い、最も多いのは Instruction-Following Failure(36.49%)── 明確に受け取った指示に従えなかったもので、その背後により具体的なメカニズムがない場合の残余カテゴリー ── であり、Cannot Determine(26.85%)と Underspecified Instruction(15.36%)がそれに続く。
- エピソードの 90.50% は、システムに損害を与えるのではなく、労力と信頼のコストを課すだけである。容易に元に戻せるシステムへの損害は 8.44%、元に戻しにくい損害は 0.07%(11 エピソード)を占め、残りのエピソードは損害なし(0.08%)または観察不能(0.91%)として記録されている。
- 可視の解決はエピソードの 9.33% でしか起きておらず、その解決の 91.49% で開発者による明示的な反発が必要だった。エージェントが自己修正したのは 2.99% である。著者らは、90.67% を占める「不明」の割合は真の解決率ではなく、会話ログで観察可能なものを反映していると注意を促している。会話の中では、成功が確認されるよりも失敗が報告されるほうが多いからである。
- ミスアライメントはモダリティによって体系的に異なる。CLI のセッションは制約違反を起こしやすく(49.49%、IDE では 32.26%)、その損害はプロジェクトや外部の状態にまで及ぶ一方、IDE のセッションでは、コードやタスクの状態に限定された誤った実装がより多く表面化する(22.89% 対 8.49%)。それでも、ターンあたりのミスアライメントは IDE のセッションのほうが高い(0.132 対 0.051)。
- ミスアライメントは同じリポジトリの隣接するセッションにまたがって持続する。現在のセッションにミスアライメントが含まれる場合、次のセッションにも含まれる確率は 0.336 から 0.519 に上昇する。
- ユーザーのターンあたりの全体的なミスアライメント率は観察期間を通じて有意に低下しているが、その構成は変化している ── Developer Constraint Violation と Inaccurate Self-Reporting の日次の割合が上昇する一方、Wrong Project Diagnosis、Self-Initiated Overreach、Faulty Implementation は低下している。著者らはこれを、コーディングエージェントには実装の正確さを超えた改善が必要であることの証拠と解釈している。
- 抽出パイプラインは、検証後に 29,896 件の候補エピソードのうち 16,118 件(53.9%)を残した。30 セッションのサンプルでは、人間が評価した精度(precision)は 0.93、再現率(recall)の評価は 2.00 点満点中平均 1.77 だった。
補足
本論文は、既存の 2 つの研究の流れに対して自らを位置づけている。1 つはベンチマークの軌跡の分析で、それ自体としては厳密だと評価しつつも、開発者が経験するミスアライメントを捉えられないとしている。もう 1 つは下流の成果物の分析で、エージェントが書いたコードが受け入れられたかどうかからエージェントの失敗を推測するものである。著者らは、どちらも開発者のリアルタイムの訂正プロセスを検討しないままにしていると論じている。
著者らは自身の研究のいくつかの限界を記録している。データセットは SpecStory または Entire.io を使い、公開ロギングに同意した開発者を反映しているため、アーリーアダプターに偏り、プライベートなプロジェクトや組織内部での利用からは遠ざかっている。著者らは、これを安定した分布としてではなく、急速に変化する実践のスナップショットとして読むよう求めている。開発者の訂正を通じて可視化されたミスアライメントだけが対象であるため、自然に口頭での反発を招くカテゴリーは、黙って回避されやすいカテゴリーよりも完全に観察される。IDE と CLI のグループは、モダリティだけでなくエージェントの種類やタスクの構成も異なるため、モダリティの対比は因果効果ではなく、デプロイ環境間の違いとして提示されている。最後に、パイプライン自身の判断は、独立に正しいものではなく、専門家がアノテーションしたサンプルに照らして検証されたものである。2 人の人間のアノテーター間の一致度は 0.78 で、裁定されたゴールドスタンダードに対する LLM ジャッジの平均正解率は 0.82 だった。最も弱い軸は原因(0.72)と損害の深刻度(0.64)であり、著者らはこれをパイプラインではなくそれらの判断に内在する難しさに帰している。人間のアノテーターの一致度が最も低かったのも同じ 2 つの軸だったと指摘している。
著者らはまた、この手法を事後的にではなくライブのセッション上で継続的に実行し、開発者へのフィードバックや、モデルチームやハーネスチームへの改善シグナルを浮かび上がらせることもできると示唆しており、Claude Code における Anthropic の /insights コマンドをその方向への初期の一歩として挙げている。一方で、この手法には上限があることも明記している。Cannot Determine カテゴリーは、会話から失敗は明らかになるがその原因は明らかにならないエピソードを対象としており、そのギャップを埋めるには会話ログを超えた計装が必要になる。