AIエージェントによるレガシーFortranコードのモダナイゼーション
長年にわたり、計算科学分野では膨大な量のレガシーFortranコードが蓄積されてきました。これらのコードは現代の標準から見ると古く、メンテナンスや拡張が困難です。しかし、個々の変換作業はルーティンであるものの、その規模の大きさから、多くのプロジェクトでモダナイゼーションが滞っているのが現状です。この課題に対し、AIエージェントを活用した新しいワークフローが提案され、プロダクションスケールでの適用可能性が示されました。
ワークフローの仕組みと安全性
提案されたエージェントワークフローでは、3つの異なる役割を持つプロンプト特化型エージェントが協調して動作します。これらのエージェントは、バージョン管理された仕様書に基づいて作業を進めますが、この仕様書自体もエージェント自身が作成・改訂する仕組みです。人間はプロセス全体の中で、ごく少数の重要なゲート(承認ポイント)を管理する役割を担います。このシステムの安全性は、ドメイン固有の厳密な検証オラクルによって保証されます。このオラクルは、変換されたコードが元のコードと完全に同一の出力を生成するかをビット単位で検証し、わずかな差異も許容しません。安全な委任の範囲は、この検証オラクルが検出できる範囲に限定されます。
量子化学パッケージGAMESSでの実証
このエージェントワークフローの有効性を検証するため、量子化学計算パッケージGAMESS(General Atomic and Molecular Electronic Structure System)のモダナイゼーションがケーススタディとして実施されました。GAMESSは48年もの開発歴史を持つ成熟したソフトウェアであり、その中核をなす2電子積分ルーチンがターゲットとなりました。具体的には、固定形式のFortran 77で書かれたコードを、より現代的な自由形式のFortran 2008へ変換する作業です。この作業範囲は、12のソースファイル、56,448行、225のサブルーチンに及びました。
驚異的な変換精度と結果
変換作業には、Anthropic社のClaude Codeモデルの3つのエージェントロールが使用され、4世代にわたるモデルの進化が適用されました。検証は非常に厳格で、GAMESSの標準テストスイートが生成する出力エネルギーをビット単位で再現することがマージ基準とされました。12桁目のわずかな偏差も失敗と見なされるほどの精度が求められました。結果として、変換された12のソースファイルすべてが、49の標準GAMESSテストと2つの追加計算を含む合計51のテストバッテリーに合格しました。612回のテスト実行全体で、化学的に関連する差異は一切発生せず、すべてのファイルが継続的インテグレーションに使用されるJenkinsテストもクリアしました。この成果は、AIエージェントがレガシーコードのモダナイゼーションにおいて、人間が手作業で行う以上の精度と規模で貢献できる可能性を示しています。
レガシーコードのモダナイゼーションは、AIが最も得意とする領域の一つです。人間がやるには退屈でミスも多い。ビット単位の精度をAIで出すのは、まさにAIの真骨頂です。一次情報として、このワークフローを自社のプロダクト開発にどう組み込むか、すぐに検証します。