現代のWebアプリケーションでは、自動化エージェントが深いコンテキストを欠いているために解決が困難なバグが発生することがよくあります。AIエージェントが、画面録画、ネットワークログ、またはコンソールエラーといった表面的な観察のみに基づいてバグの修正を依頼された場合、多くの場合、根本的な原因を推測しなければなりません。その推測が誤っていれば、エージェントは失敗する修正のサイクルに入り、問題を悪化させる可能性もあります。オブザーバビリティに焦点を当てた企業であるReplayは、信頼性の高い自動バグ修正に欠けている要素は「完璧なオブザーバビリティ」であると主張しています。これは、詳細を損なうことなく、実行されたすべてのステートメント、すべての状態変化、およびすべてのデータ依存関係をエージェントが確認できる方法のことです。

このコンテキストを提供するために、ReplayはChromiumおよびNode.js用のタイムトラベルデバッガーを利用しています。この技術は、低オーバーヘッドで非決定論的な入力をキャプチャし、ランタイムを決定論的にリプレイすることを可能にします。これらのインタラクションを記録することで、システムは実行内容をデータベースに展開し、アプリケーション動作のあらゆるポイントをクエリ可能にします。これにより、AIエージェントは失敗から正確な根本原因へと遡って作業を行うことができます。例えば、標準的なQAツールが「反応しないボタン」を特定して再現スクリプトを提供するのに対し、Replay QAはReactコンポーネント上の特定の欠落した`onClick`ハンドラーを特定し、エージェントがコードを直接検証して修正するために必要な証拠を提供できます。

最近の実験では、主要なアプリ構築ツールによって推進された40のアプリケーションに対してReplay QAを実行し、900以上のバグを特定しました。このシステムは、特定のReactコミット、ネットワークリクエスト、およびレンダリング関数内の変数などの寄与要因を含むレポートを提供することで、レイアウトシフトのような複雑な問題に対処します。しかし、Replay QAがバグの「何が」と「なぜ」を提供する一方で、実際の修正は、検出された問題を耐久性のあるテストケースに変換するエージェントまたは「ソフトウェアファクトリー」によって依然として行われます。さらに、一部の開発者は、既存のログや再現手順で能力の高いエージェントには十分なコンテキストが提供されている可能性があり、完全なタイムトラベルデバッガーの必要性は使用されるエージェントの洗練度に依存することを示唆しています。

バグのあるWebアプリケーションを終わらせることに関するReplay QAのブログ投稿を表すグラフィック。
完璧なオブザーバビリティを使用してWebアプリケーションのバグを特定および解決するReplay QAのアプローチ。replay.io

この画像は、自動バグ修正の方法論について論じるReplay QAのブログ投稿の主要なビジュアルとして機能します。