AI時短ラボ
活用· 約7

4万行のFortran 77をAIエージェントでC++に移した記録──Mistralが公開した3つの教訓:①移行コードを書く前に「数値の一致」を証明するパリティハーネスを作る、②100超のエージェントでまず文書化、③完全自律は「Fortranを C++の文法で書き直しただけ」になり、人がゲートに立つ構造化ワークフローに落ち着いた

Mistralの応用AIチームは2026年9月9日、欧州のエネルギー事業者の貯留層シミュレータ(Fortran 77・テストスイート無し・文書散逸・全30万行)のうち中核の4万行をC++へ移した事例を公開した。COMMONブロックの共有グローバル状態、頭文字で決まる暗黙の型、6文字の変数名、GOTO主体の制御を現代的な設計に変えると行対行の対応が無くなり、検証が難しい。答えは3つ。①移行前に「パリティハーネス」(状態を書き出すサブルーチン・C++側のテスト枠・Skill.md)を作り数値一致を合格条件に。②Vibe CLIで100超のエージェントを立て、呼び出し木の葉から文書化しPRを開き、cronのレビュアーエージェントが確認。③完全自律の1週間は「Fortranの再入力」に終わり、役割分担も止まると助けがなく、最終的に人がcoder→tester→reviewerを運転し、モジュール(1万行未満)ごとにエンジニアが設計を承認しPRを人がレビューする形に落ち着いた。

4万行のFortran 77をAIエージェントでC++に移した記録──Mistralが公開した3つの教訓:①移行コードを書く前に「数値の一致」を証明するパリティハーネスを作る、②100超のエージェントでまず文書化、③完全自律は「Fortranを C++の文法で書き直しただけ」になり、人がゲートに立つ構造化ワークフローに落ち着いた
執筆・編集:
目次

2026年9月18日・日本時間時点の情報です。 Mistralの応用AIチームの9月9日の記事(約7分)を読んだ。「AIでレガシーコードを移す」話は多いが、この記事は何がうまくいかなかったか(完全自律で1週間放置した結果)と、どこに落ち着いたか(人がゲートに立つワークフロー)を具体的に書いている。OpenAIがPythonのストレージ基盤をエンジニア2人+CodexでRustに書き換えた話と並べて読むと、「移行そのもの」より「検証と文書化」に工数が寄っていることが共通している。

3行まとめ

  1. 対象と難しさ。 欧州のエネルギー事業者の貯留層シミュレータ(物理計算が重い)。Fortran 77、テストスイート無し、集中した文書無し、全30万行のうち最初のスプリントで中核の4万行をC++へ。Fortran 77はモジュールも名前空間も構造型も無く、状態はCOMMONブロック(プログラム全体で共有するグローバルメモリ)に置かれ、変数は頭文字で暗黙に型が決まり(I〜Nで始まれば整数。綴りを間違えると新しい変数が黙って生まれる)、名前は6文字まで。C++で明示的な型・オブジェクト指向・戻り値に直すと行対行の対応が無くなり、それが検証を難しくする。PetSc等の現代的な数値計算基盤への統合も要件。
  2. 3つの教訓。移行コードを書く前にパリティハーネスを作る:Fortran側の状態を書き出すサブルーチン、C++側でチェックポイントを読み込むテスト枠、エージェントに正しく使わせるSkill.mdを用意し、「最終結果と、顧客の貯留層エンジニアが選んだ重要な中間点の数値一致」を合格条件にした(例:FortranでRHOGの値42.71834を書き出し、移行したC++モジュールのテストで同じ値を参照)。「モジュールが完了した」ことの最も安く、最も説得力のある証明。②エージェントに頼る前に文書を整える:文書は古いPDFとFortran内のコメントに散らばっていた。手続き型のFortranは全体が1本の呼び出し木に描けるので、自作パーサで木を作り、Vibe CLIで100超のエージェントを立て、葉から上へ各ノードのサブエージェントが(文書ライブラリとMistral OCRでPDFを引きながら)文書化して元リポジトリにPRを開き、cronで回るレビュアーエージェントが新しいPRを確認して修正タスクを積む。③この規模では、人のレビューゲートを持つ構造化ワークフローが、完全自律にも手作業にも勝る
  3. 落ち着いた形。 顧客のエンジニアと呼び出し木から独立したモジュール(経験的に1万行未満)を切り出し、モジュールごとに「C++の目標アーキテクチャを生成→貯留層エンジニアがレビュー→承認後にタスクキューへ分解→タスクごとに計画→実装→テスト→繰り返しの実装サブワークフロー→人がPRをレビューし、マージまで変更を求める」。記事は限界も書く:Fortran側が自己完結して実行可能だったのは好条件で、外部システムに依存する・実行できるベースラインが無い・どこにも文書化されていない物理を含む移行は、この記事の範囲外。

3回の試行(記事の記載)

試行 やり方 結果
1回目:完全自律 Fortranのサブルーチン1つに1エージェント、それぞれ独立に1週間かけてC++へ 動くが「近代化」ではない。COMMONブロックがグローバル構造体に1対1で写り、GOTOの制御がループや早期returnに直されず、「Fortranを C++の文法で打ち直した」コード
2回目:役割分担 planner・coder・tester・code quality reviewerが各モジュールで協働 品質は大きく改善。だがソースの複雑さに追いつかれ、バグに当たると数回直して止まる。介入できる人がいない
3回目:人が運転 人が coder→tester→reviewer のワークフローを操作し、モジュール単位で移行 2回目の品質を保ちつつ、止まったエージェントを人が解除。ここに落ち着いた

読み方

  • 「数値の一致」を合格条件にしたのは、科学計算だからできた面もあるが、考え方は業務システムにも移せる。移行後の出力が移行前と同じであることを、人が読まなくても機械が示せる形にしてから、エージェントに任せる
  • エージェントは「止まる」。当サイトがAIエージェントの作り方で整理した「止まる条件」とは逆に、ここでは「止まったときに誰が解除するか」が設計の中心になった。CodexのAuto-reviewやGoal Modeが「承認を別エージェントに回す」方向なのに対し、Mistralの結論は「人がゲートに立つ」。規模と失敗の代償で答えが変わる
  • Skill.mdでハーネスの使い方を渡すのは、Skillsは「手順の道しるべ」として役立つという実験結果と同じ使い方。エージェントに「検証の手順」を教えることが、移行の質を決めている

筆者が確かめた点

この記事の下調べで、筆者は9月18日にMistralの記事を取得し、対象の規模・Fortran 77の制約の説明・3回の試行と結果・ワークフローの手順・3つの教訓・限界の記述がその原文にあることを確認した。顧客名と使われたMistralのモデル名は記事に無く、筆者はFortranのコードベースを扱った経験を持たない。

書かれていないこと

  • 顧客名、使ったモデル、費用と期間(「最初のスプリント」とのみ)
  • 残る26万行の移行計画
  • パリティハーネスで許容した数値誤差の大きさ

出典はMistralの記事

  • Mistral AI「Modernizing complex legacy code with AI agents. Lessons from 40,000 lines of Fortran.」(2026年9月9日)
  • 本記事は続報(残りの移行やモデル名)が出たら追記する
シェア: ポスト はてブ

出典・参照資料

AIニュースの解説を動画でも

YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。

コメント

まだコメントはありません。最初のコメントを書いてみませんか?

AIについて聞きたいことはありますか?

質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。

質問箱を見る →

新しい記事をメールで受け取る

AIの新しい発表を、出典付きで整理して届けます。

関連記事

AIエージェントの作り方【2026年9月版】──ノーコード(Dify・Lindy)、SDK(Claude Agent SDK・OpenAI Agents SDK・Google ADK・LangGraph)、任せる型(OpenAI Agents API・Claude Managed Agents)の3段階と、最初の1本を動かすまでのコード、暴走と課金を止める4つの安全装置の記事画像
活用09.23読了18

AIエージェントの作り方【2026年9月版】──ノーコード(Dify・Lindy)、SDK(Claude Agent SDK・OpenAI Agents SDK・Google ADK・LangGraph)、任せる型(OpenAI Agents API・Claude Managed Agents)の3段階と、最初の1本を動かすまでのコード、暴走と課金を止める4つの安全装置

出典 ─ OpenAI公式ドキュメント(Agents API/Agents SDK/Responses APIの比較・2026年9月18日取得)
Codexの使い方【2026年9月版】──CLI・IDE拡張・デスクトップ・クラウドの4つの入口、インストールとログイン、プランごとの5時間あたりの目安(Astra/Sol/Terra/Luna)、AGENTS.md・権限・Goal Mode・Auto-review、知っておくべき不具合までの記事画像
活用09.22読了18

Codexの使い方【2026年9月版】──CLI・IDE拡張・デスクトップ・クラウドの4つの入口、インストールとログイン、プランごとの5時間あたりの目安(Astra/Sol/Terra/Luna)、AGENTS.md・権限・Goal Mode・Auto-review、知っておくべき不具合まで

出典 ─ OpenAI公式ドキュメント(2026年9月18日取得)
OpenAIが「週に10億人超」の裏側のストレージ基盤Habitatを解説──毎秒7,000万リクエスト・500PB・3年連続で年10倍超の成長。Pythonで粘ってから、エンジニア2人+Codex+GPT-5.5でRustに書き直し、CPU効率6倍・メモリ15倍の記事画像
研究09.20読了10

OpenAIが「週に10億人超」の裏側のストレージ基盤Habitatを解説──毎秒7,000万リクエスト・500PB・3年連続で年10倍超の成長。Pythonで粘ってから、エンジニア2人+Codex+GPT-5.5でRustに書き直し、CPU効率6倍・メモリ15倍

出典 ─ OpenAI Engineering(2026年9月11日・Jon Lee, Chaomin Yu, Ben Ries・9月18日取得)
Mistral AIの資金調達発表(Mistral AI公式の画像)
業界09.21読了8

Mistral AIが30億ユーロを調達、評価額210億ユーロ超──欧州テック史上最大の株式調達をサムスン電子が主導、「主権を保てるオープンウェイトAI」を旗印に20か国・125社超へ

出典 ─ Mistral AI公式(2026-09-08)
Skillsが効くのは「知識を足すから」ではなく「手順の道しるべになるから」──8,135件のトライアルが示した実態の記事画像
研究09.06読了24

Skillsが効くのは「知識を足すから」ではなく「手順の道しるべになるから」──8,135件のトライアルが示した実態

出典 ─ Demystifying Agent Ski
XiaomiがMiMo-V2.6を公開──1.02兆パラメータのオープンウェイト、公式掲載のArtificial Analysis指数46、価格はV2.5据え置きの記事画像
モデル09.21読了22

XiaomiがMiMo-V2.6を公開──1.02兆パラメータのオープンウェイト、公式掲載のArtificial Analysis指数46、価格はV2.5据え置き

出典 ─ Xiaomi MiMo 公式ブログ: Int
止まらないAIエージェント「Headlong」──LaudeとMITが1万行未満のBashで作ったの記事画像
検証09.07読了16

止まらないAIエージェント「Headlong」──LaudeとMITが1万行未満のBashで作った

出典 ─ Headlong: a microharness for persistent agents
ARC-AGI-3のBest@1を30%から95.5%に押し上げたPrime Agent──「コンテキストを変数として扱う」RLMという考え方の記事画像
研究09.07読了14

ARC-AGI-3のBest@1を30%から95.5%に押し上げたPrime Agent──「コンテキストを変数として扱う」RLMという考え方

出典 ─ PrimeIntellect-ai/prim