車載コードの規約違反を、過去の修正例を参照する生成AIと3つの専門エージェントで修正する。Woven by Toyotaのコード修正支援ツール「MISRA Copilot」は、社内の概念実証で違反の81.5%を自動修正した。修正案はプルリクエストとして提示され、採用は人間の技術者が判断する。
過去の修正例を生成AIの参照情報にする
コーディング規約MISRAは、組み込みシステム向けのCおよびC++コードを対象とする。Woven by ToyotaはMicrosoftと協力し、この規約への適合を支援するMISRA Copilotを開発した。生成AIの基盤にはAzure OpenAIを活用している。
修正案の生成には、Woven by Toyotaとトヨタが蓄積した過去のコード修正例を使う。修正例を構造化データベースにまとめ、外部情報を検索して生成に取り込むRAGを通じて処理へ組み込んだ。これにより、生成AIは車載ソフトウェアの修正例を参照して提案を作る。
生成した修正案を3つの役割で順に評価する
修正例を参照する生成処理は、単一モデルから複数エージェントの構成へ変更された。各エージェントは共通の文脈と持続的なメモリーを持ち、異なる役割を順に担う。最初のCoderが、MISRAのガイドラインに沿った修正案を生成する。
その修正案をReviewerが受け取り、コードの構造、可読性、保守性を評価する。続くEvaluatorは規約への適合を確認し、修正ごとの根拠と信頼度スコアを付ける。修正案を作る処理から、その品質と適合性を評価する処理までを、3つの役割につないでいる。
注釈付きの修正案を人間が採用する
評価を経た修正案は、注釈付きのGitHubプルリクエストとして提示される。MISRA Copilotがコードを自動で変更することはなく、生成した提案をレビューの対象にする。
人間の技術者は提案を確認し、採用するか却下するかを決める。最終判断と責任を技術者が担うため、自動化の範囲は修正案の生成と評価までとなる。
ADAS開発コードで修正率81.5%を評価
Woven by Toyotaの社内の先進運転支援システム(ADAS)開発コードを使った概念実証では、MISRA Copilotが規約違反の81.5%を自動修正した。生成したコードの97.1%は構文上正しかった。規約違反の修正率と構文上の正しさは、それぞれ別の評価結果である。
この自動修正率は、概念実証におけるコード修正の成果を示す値であり、修正案の採用を自動化した割合ではない。ツールは導入の可能性を検討するため、追加評価の段階に進んでいる。