本論文は、従来のコードレビューのプロセスや静的解析ツールには、構文エラーや既知のバグパターンの検出を超えて実行可能なフィードバックを与えるだけの深さが欠けていることが多く、また、問題を特定し、最適化を提案し、ベストプラクティスについて開発者を教育することでコードレビューを強化するよう特に設計された LLM ベースのモデルは存在しない、と論じている。本論文はこれまでのコードレビューの自動化 ── レビュアーの推薦、変更が承認されるかどうかの予測、検索ベースのコメント推薦、レビューコメントに沿うようにコードを修正する Transformer モデル ── を概観し、詳細なレビューのための包括的な LLM ベースのツールは存在しないと結論づけている。

提案されたシステムは、GPT-4 上にプロンプトベースの指示で構築された 4 つのエージェントからなり、それぞれがレビューの一側面を担当し、中央集権的な調整コンポーネントを通じて自らの発見を次に渡す。コードレビューエージェント(Code Review Agent)は初期評価を行い、バグ、コードスメル、コーディング規約からの逸脱を探す。バグ報告エージェント(Bug Report Agent)は潜在的なバグに的を絞ったより詳細な検査を行う。コードスメルエージェント(Code Smell Agent)は設計指向の評価を行い、技術的負債を減らすためのリファクタリング戦略を提案する。コード最適化エージェント(Code Optimization Agent)はアルゴリズム、冗長性、効率性に関する変更を提案し、機能を保ったまま最適化されたバージョンのコードを生成できる。著者らはこの目標を 2 つの利点、すなわちコード品質の向上と、開発者がベストプラクティスについて学べることとして位置づけ、コード改善に対するこのシステムの能動的なアプローチを、従来の静的解析ツールからの前進として提示している。

主なポイント

  • 著者らは、予備的な評価においてシステムがソースコードを自律的にレビューし、4 つのエージェントの役割すべてにわたって論理的で実行可能なフィードバックを生成し、さまざまなプログラミング言語や AI 応用分野にわたって、軽微なバグから重大なコードスメルや非効率性に至るまでの問題を特定したと報告している。
  • バグ検出エージェントは、論理的な不整合、潜在的な実行時エラー、エラーを起こしやすい構造を発見し、いくつかのケースでは従来の静的解析ツールが見逃した、あるいは簡単にしか説明しなかった問題を捉えたと報告している。
  • コードスメルエージェントのリファクタリング提案は、命名規則の改善、関数の分解、アーキテクチャの明確化など、一般に受け入れられているソフトウェアエンジニアリングの原則とおおむね一致していたと報告している。
  • これらの結果は定性的に記述されている。論文はベンチマーク、データセット、指標、比較のいずれも示しておらず、精度と効率の測定は開発者を対象とした今後の実証研究に委ねている。

注記

本論文は初期結果として位置づけられている。予定されている今後の研究には、システムの出力を手作業による方法と比較すること、開発者に対する教育的効果を調べること、そしてコード、設計、アーキテクチャ、テスト、ドキュメント、ビルド、インフラストラクチャの負債といった幅広い技術的負債を特定するマルチエージェントシステムへと拡張することが含まれる。この研究は Business Finland の資金提供を受けている。LLM ベースのレビュー研究についてのより広い説明は、モダンコードレビューのロードマップ:課題と機会 と コードレビューエージェント を参照のこと。