Skip to content
エージェント・自動化

ミストラル、AIエージェントによるFortranコード4万行の移行事例を公開

ミストラルは、欧州のエネルギー事業者がFortran 77のコード4万行をC++に移行する際、パリティテストやドキュメント作成エージェント、人間によるレビューを組み込んだワークフローを活用したと明らかにした。

DigitalNeuron Desk約1分

ひとことで言うと

ミストラルはレガシーコードの近代化にAIエージェントを活用した取り組みについて何を発表したのか。

ミストラルは、欧州のエネルギー事業者との共同プロジェクトについて説明し、物理演算主体の貯留層シミュレーターのFortran 77コード4万行をC++に移行したと明らかにした。同社は数値パリティ検証の仕組みを構築し、コードベースの文書化にエージェントを活用したほか、最終的にはコーディング担当、テスト担当、レビュー担当のエージェントを組み合わせ、人間によるチェックポイントを設けたワークフローを採用したという。

要点

  • ミストラルは、テストスイートも一元化されたドキュメントも存在しない貯留層シミュレーターにおいて、欧州のエネルギー事業者がFortran 77のコード4万行をC++に移行する作業を支援したと明らかにした。
  • 同社は、FortranとC++両方のコードベース間で最終出力と重要な中間チェックポイントを比較するパリティ検証の仕組みを構築した。
  • ミストラルはVibe CLIを用いて100体を超えるエージェントを展開し、Fortranプログラムの文書化とレビュー用プルリクエストの作成にあたらせた。
  • 完全自律型のアプローチとより構造化されたアプローチの両方を試したうえで、ミストラルはコーディング担当、テスト担当、レビュー担当のエージェントを組み合わせ、人間の介入とレビューのチェックポイントを設けたワークフローを採用した。

ミストラルは、欧州のエネルギー事業者が物理演算主体の貯留層シミュレーターにおいて、Fortran 77のコード4万行をC++に移行する作業を支援したと明らかにした。同社は水曜日に公開した投稿でこのプロジェクトについて説明し、対象のレガシーコードにはテストスイートも一元化されたドキュメントも存在していなかったと述べた。

数値検証の仕組みを構築

ミストラルは、移行作業に着手する前にパリティ検証の仕組みを構築したと述べた。この仕組みは、両コードベース間で数値的な等価性を確認するために設計されており、最終的な結果だけでなく、顧客側の貯留層エンジニアが特定した重要な中間地点についても照合する。

同社はプログラムの状態を出力するためのFortranサブルーチンを追加し、それらのチェックポイントを読み込むC++テストフレームワークを作成、さらにエージェントを導くためのSkill.mdファイルを用意した。ミストラルによると、エージェントはこの仕組みを使ってFortranプログラムを計測し、状態のスナップショットを出力して、移行後のC++モジュールを検証したという。一例として、あるFortranの実行がRHOG変数の値を出力し、それがC++テストの参照チェックポイントとして使われた。

コードベースの文書化

ミストラルによると、ドキュメントは古いPDFやFortranソースコード内のコメントに散在していたという。同社は独自のパーサーでコードベースを解析し、プログラムを連結されたサブルーチン群として表す「呼び出し元・呼び出し先ツリー」を生成した。

Vibe CLIを用いて、同社は100体を超えるエージェントを起動し、このツリーの文書化にあたらせた。エージェントはドキュメントライブラリとミストラルのOCR機能を通じて関連PDFを参照できた。ツリーの末端から着手し、各ノードはサブエージェントを生成してそのノードを文書化させ、元のリポジトリに対してプルリクエストを開かせた。定期実行されるレビュー担当エージェントが新規のプルリクエストを確認し、必要に応じて修正をスケジュールした。

複数のエージェント構成を検証

ミストラルによると、最初のアプローチでは、Fortranの各サブルーチンに1体の自律型エージェントを割り当て、1週間作業させたという。生成されたコードは機能面では動作したものの、同社によれば、COMMONブロックに基づくグローバル構造やGOTO文による制御フローがそのまま残り、単にFortranをC++の構文で書き直したような状態になったという。

次のアプローチでは、プランナー、コーディング担当、テスト担当、コード品質レビュー担当のエージェントが各モジュールで連携して作業した。ミストラルによると、コードの品質は向上したものの、エージェントはバグに遭遇すると最終的に作業が止まってしまったという。

その後、同社はコーディング担当、テスト担当、レビュー担当のエージェントを用いた、人間が運用するワークフローを採用した。貯留層エンジニアと協力し、Fortranコードで1万行未満程度の独立したモジュールを特定したうえで、目標とするC++アーキテクチャを生成し、エンジニアとともにレビューし、承認された設計をタスクキューへと分割した。各タスクは、計画・実装・テスト・繰り返しというサイクルに従い、マージ前には人間がプルリクエストをレビューした。

ミストラルによると、最初のスプリントでは全30万行のうち4万行を対象としたという。同社は、このコードベースが自己完結型で実行可能な状態にあった点を指摘する一方、外部システムとの連携がある場合や、実行可能な基準となるコードが存在しない場合、あるいは物理的な仕様が文書化されていない場合には、さらなる課題が生じるだろうと述べた。

出典:ミストラル「Modernizing complex legacy code with AI agents」、2026年9月9日公開。

よくある質問

どれだけの量のコードが移行されたのか。
ミストラルによると、最初のスプリントではコードベース全30万行のうち4万行がFortran 77からC++へと移行されたという。
パリティ検証の仕組みは何に使われたのか。
Fortranのコードベースから状態を出力し、そのチェックポイントをC++のテストに読み込ませたうえで、最終結果および選定された中間地点の数値的な等価性を確認するために使われた。
エージェントはレガシーコードをどのように文書化したのか。
ミストラルは独自のパーサーで呼び出し元・呼び出し先ツリーを生成し、Vibe CLIを用いて100体を超えるエージェントを起動した。エージェントはドキュメントライブラリとミストラルのOCR機能を通じて関連PDFを参照したうえで、プルリクエストを作成した。
ミストラルが最終的に採用したワークフローはどのようなものか。
コーディング担当、テスト担当、レビュー担当のエージェントによるワークフローを人間が運用し、モジュールを一つずつ移行していった。人間がプルリクエストをレビューし、エージェントが行き詰まった際には介入した。

出典

  1. Modernizing complex legacy code with AI agents | Mistral — Mistral AI
タグmistral-aiai-agentslegacy-codefortranc++software-modernization

あわせて読みたい

Databricks、宣言型パイプラインでエージェントの計算コストを34分の1に削減とベンチマークで報告

Databricksは、AIエージェントが構築した528件のSparkパイプラインをベンチマークし、Spark宣言型パイプライン(SDP)は手続き型PySparkに比べてクラスターの計算量が約34分の1、コード量も約半分で済んだ一方、LLMトークンのコストは約2.3倍かかったと報告している。Databricksによれば、気づかれにくいロジックエラーの発生率は両手法でほぼ同程度だったという。

約4分

AWS Details Evaluation Framework for AI Agents Built on Bedrock AgentCore

AWS says it built a continuous evaluation framework, using a capability called AgentCore Evaluations within Amazon Bedrock AgentCore, for a multi-agent system serving AWS Field Sales. The company says pre-launch testing caught errors, including a revenue figure mislabeled as $410.08 million, and that a release mismatch dropped a test pass rate from 78 percent to 38 percent.

約2分

AWSが説明する、AgentCore Evaluationsと DevOpsエージェントによる本番稼働中AIエージェントの監視手法

AWSは、AgentCore EvaluationsとAWS DevOps Agentが連携して本番環境のAIエージェントを監視する仕組みを解説するブログ記事を公開した。AWSによると、AgentCore Evaluationsは稼働中のエージェントのやり取りを品質面で評価し、DevOps Agentはサービス境界をまたいだインフラ障害を追跡するという。AWSはこのアプローチを、4つのエージェントで構成される航空会社予約システムを用いて実演した。

約3分