検索
ニュース

レガシー移行を「AIに丸投げ」してはいけない 標準RAGではダメな理由と「5分割」のアプローチ数億行のレガシーコード移行、SiemensとGoogle Cloudが明かす事例

SiemensとGoogle Cloudは、レガシーコードの理解とモダナイゼーションを自動化するAIシステム「Knowledge Fabric」を構築した。数億行規模の産業用ソフトウェアを複数の専門エージェントで分割処理し、開発工数を削減するという。

Share
Tweet
LINE
Hatena

 Google Cloudは2026年6月17日(米国時間)、Siemensと共同で開発したAIシステム「Knowledge Fabric」を発表した。ソフトウェア開発ライフサイクルの自動化を目的とし、ナレッジグラフを基盤としている。

 Siemensは工場やプロセスの自動化など産業分野で長年の専門知識を持つ一方で、10年以上にわたる開発で積み上がった数億行規模のコードベースという、重い技術負債を抱えていた。既存のコーディング支援ツールは、複雑かつ多層的な産業用コードを読み解くために必要なコンテキストを欠いており、モダナイゼーションの大きな壁となっていたという。

 この壁を突破するために構築されたのが、「Knowledge Fabric」だ。「Spanner Graph」によるナレッジグラフや複数のAIエージェント、Anthropicの「Claude Code」などを組み合わせることで、これまでAIが苦手としてきた「複雑な依存関係の解析」を可能にしたという。

なぜ標準的なAIとRAGでは「数億行のレガシーコード」を読み解けないのか

 レガシーコードのモダナイゼーションに当たって、Siemensが直面した課題は4つあった。

1.規模

 リポジトリは巨大で、標準的な大規模言語モデル(LLM)のコンテキストウィンドウをはるかに超える。

2.断片化

 重要な知識がコード、「Jira」チケット、「Confluence」のページ、2000年代初頭にスキャンされたPDFマニュアルなどに散在している。

3.複雑性

 特定のコード行と10年前の機能要件文書との関連をたどる作業は、手作業や従来のツールでは効率的に対応できない。

4.責任

 システムは15〜20年に及ぶ運用期間を通じ、厳格な品質、コンプライアンス(法令順守)、ライフサイクル要件を満たし続ける必要がある。AIが生成する出力は説明可能、追跡可能、検証可能でなければならず、ハルシネーション(幻覚)や未検証の変更は運用上許容されない。

 Google Cloudのテクニカルリードのアガタ・ゴウェンビオフスカ氏は「標準的なRAG(検索拡張生成)では不十分だと気付いた。コードは単なるテキストではなく、固有の構造を持っている。クラスはファイルに、ファイルはモジュールに属している。これらをベクトルデータベースにフラット化(平たん化)して格納してしまうと、コードベースの要素間の関係性が失われてしまうためだ」と述べている。

ドメインを理解する「Knowledge Fabric」

 この巨大で複雑なソフトウェア環境をAIエージェントが扱えるようにするため、チームは「Knowledge Fabric」を構築した。単なるキーワード一致を超え、資産間の関係性を「理解」できるのが特徴だ。

 Spanner Graphを用いてコードベース固有の構造をモデル化し、各種フォーマットのドキュメントにも同じ手法を適用する。これらの領域間のつながりをマッピングすることで、特定のコードスニペットを仕様書の要件に直接リンクさせることが可能になる。エージェントはグラフをたどり、グラフクエリ言語(GQL)で構造を照会する。

 意味的な理解を可能にするため、全ノードに埋め込み(エンベディング)を生成し、Spanner Graphの近似最近傍探索(ANN)アルゴリズムによってコードベース全体の効率的なベクトル検索を実行する。これに全文検索機能も組み合わせることで、ノードとエッジを正確に特定できるという。

Knowledge Fabricのアーキテクチャ(提供:Google Cloud)
Knowledge Fabricのアーキテクチャ(提供:Google Cloud)

 これら3つの手法(GQL、ベクトル検索、全文検索)により、LLMエージェントは「軸制御パネル(Axis Control Panel)のロジックを変更した場合、どの関数を更新する必要があるか」といった複雑な依存関係を問うクエリにも、キーワードと意味的類似性を加味しながらグラフをたどり、正確な影響分析を回答できるとしている。

複雑な作業を分割する「象を切り分ける」手法

 プロジェクトを通じて、AIエージェントが大規模で曖昧なタスクを苦手とすることが明らかになった。そこでチームは「象を切り分ける(slicing the elephant)」と名付けた設計パターンを採用した。「このモジュールをリファクタリングする」といった大まかな要求を、より小さく扱いやすいタスクに細分化し、ADKで構築した専門のAIエージェントが各タスクを担当するという仕組みだ。

1.検索エージェント

 深い調査の専門家として、コードグラフを探索し、ドキュメントと照合する。

2.ユーザーストーリーエージェント

 プロダクトオーナーにヒアリングして要件を収集し、受け入れ基準を伴う詳細なユーザーストーリーを作成する。

3.アーキテクチャ影響エージェント

 提案された変更をグラフと照合し、コードを書く前に副作用を予測する。

4.タスク分解エージェント

 影響分析を受け取り、作業を各変更に必要な文脈を持たせた小さなタスクに分解する。

5.コーディングエージェント

 特定のタスクに記述された変更を実装する。文脈や事前分析なしにこの段階に至ると、使用できないコードが生成される。

 システムは各ステップで人間が判断に介在する仕組み(ヒューマン・イン・ザ・ループ)を取り入れ、本番運用に耐える信頼性の高い成果を保証している。Siemensのプロジェクトリードのアレクサンダー・ロマキン氏は「複雑なリファクタリング作業をエージェント主導の小さなタスクに分解することで、生産性の大幅な向上が見られた。AIが複雑性をナビゲートするために必要なロードマップを与えてくれた」と述べている。

Knowledge Fabricの成果

 新機能の依存関係分析には、かつてシニアエンジニアがコードベースとレガシードキュメントを数日かけて調べる必要があった。Knowledge Fabricの導入により、同じ作業がはるかに短時間で完了するようになったという。

 レガシーコードの制御パネルを最新のWebベースインタフェースへ移行する本番パイロットでは、システムの整合性と産業品質基準を維持しながら、全体のコーディング工数を削減した。Siemensの製品開発エクセレンス担当シニアバイスプレジデントのフランツ・メンツル氏は「エンジニアを反復作業から解放し、より価値の高い問題解決に集中できるようになる」と述べている。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る