Mistral erläutert KI-gestützte Migration von 40.000 Zeilen Fortran-Code
Mistral says it helped a European energy operator migrate 40,000 lines of Fortran 77 to C++ using parity testing, documentation agents and structured human-reviewed workflows.
Kurze Antwort
Was hat Mistral zum Einsatz von KI-Agenten zur Modernisierung von Legacy-Code angekündigt?
Mistral described a project with a European energy operator that migrated 40,000 lines of Fortran 77 from a physics-intensive reservoir simulator to C++. The company said it built a numerical parity harness, used agents to document the codebase, and settled on workflows combining coder, tester and reviewer agents with human checkpoints.
Das Wichtigste
- Mistral says it helped a European energy operator migrate 40,000 lines of Fortran 77 to C++ in a reservoir simulator with no test suite or centralized documentation.
- Das Unternehmen entwickelte ein Parity-Testverfahren, das die Endergebnisse sowie kritische Zwischenschritte zwischen der Fortran- und der C++-Codebasis miteinander verglich.
- Mistral used Vibe CLI to deploy more than 100 agents to document the Fortran program and create pull requests for review.
- Nach dem Test vollständig autonomer sowie stärker strukturierter Ansätze entschied sich Mistral für einen Workflow, der Coder-, Tester- und Reviewer-Agenten mit menschlichem Eingreifen und Kontrollpunkten kombiniert.
Mistral zufolge half das Unternehmen einem europäischen Energieversorger dabei, 40.000 Zeilen Fortran-77-Code in einem physikintensiven Lagerstättensimulator nach C++ zu migrieren. In einem am Mittwoch veröffentlichten Beitrag beschrieb das Unternehmen das Projekt und erklärte, der Legacy-Code habe weder über eine Testsuite noch über eine zentrale Dokumentation verfügt.
Aufbau einer numerischen Prüfung
Mistral erklärte, vor Beginn der Migration ein Parity-Testsystem entwickelt zu haben. Es sollte die numerische Übereinstimmung zwischen den beiden Codebasen sicherstellen und dabei sowohl die Endergebnisse als auch kritische Zwischenwerte prüfen, die von den Reservoir-Ingenieuren des Kunden festgelegt worden waren.
Das Unternehmen fügte Fortran-Subroutinen hinzu, um den Programmzustand zu exportieren, erstellte ein C++-Testframework zum Laden dieser Checkpoints und stellte Skill.md-Dateien zur Steuerung der Agenten bereit. Laut Mistral nutzten die Agenten dieses Setup, um das Fortran-Programm zu instrumentieren, Zustands-Snapshots zu erzeugen und migrierte C++-Module zu verifizieren. In einem Beispiel exportierte ein Fortran-Lauf einen Wert für die Variable RHOG, der anschließend als Referenz-Checkpoint in einem C++-Test diente.
Dokumentation der Codebasis
Die Dokumentation, so Mistral, sei über alte PDFs und Kommentare im Fortran-Quellcode verstreut gewesen. Das Unternehmen analysierte die Codebasis mit einem eigens entwickelten Parser, um einen Caller-Callee-Baum zu erzeugen, der das Programm als Netz verknüpfter Subroutinen abbildet.
Mithilfe von Vibe CLI setzte das Unternehmen mehr als 100 Agenten ein, um diesen Baum zu dokumentieren. Die Agenten konnten über Dokumentbibliotheken und Mistral OCR auf relevante PDFs zugreifen. Ausgehend von den Blättern des Baums erzeugte jeder Knoten einen Subagenten, der ihn dokumentierte und einen Pull Request im ursprünglichen Repository eröffnete. Ein nach Zeitplan laufender Reviewer-Agent prüfte neu eröffnete Pull Requests und veranlasste bei Bedarf Korrekturen.
Test verschiedener Agenten-Konfigurationen
Im ersten Ansatz, so Mistral, sei jeder Fortran-Subroutine für eine Woche ein autonomer Agent zugewiesen worden. Der resultierende Code funktionierte zwar, behielt laut Unternehmen jedoch globale Strukturen auf Basis von COMMON-Blöcken sowie eine GOTO-gesteuerte Kontrollflusslogik bei – er glich damit eher in C++-Syntax umgeschriebenem Fortran.
In einem zweiten Ansatz arbeiteten ein Planer, ein Coder, ein Tester und ein Code-Qualitätsprüfer gemeinsam an jedem Modul. Die Codequalität verbesserte sich dadurch, so Mistral, doch die Agenten gerieten beim Auftreten von Fehlern letztlich ins Stocken.
Das Unternehmen führte daraufhin einen von Menschen gesteuerten Workflow mit Coder-, Tester- und Reviewer-Agenten ein. Gemeinsam mit Reservoir-Ingenieuren identifizierte es unabhängige Module von weniger als etwa 10.000 Zeilen Fortran-Code, entwarf eine Ziel-C++-Architektur, ließ diese von einem Ingenieur überprüfen und zerlegte die freigegebenen Entwürfe in Aufgabenwarteschlangen. Jede Aufgabe durchlief einen Zyklus aus Planen, Implementieren, Testen und Wiederholen, wobei Pull Requests vor dem Merge von Menschen überprüft wurden.
Der erste Sprint umfasste laut Mistral 40.000 der insgesamt 300.000 Zeilen. Das Unternehmen wies darauf hin, dass die Codebasis in sich geschlossen und lauffähig gewesen sei, während Migrationen mit Anbindung an externe Systeme, ohne lauffähige Ausgangsbasis oder mit undokumentierter Physik zusätzliche Herausforderungen mit sich brächten.
Quelle: Mistral, „Modernizing complex legacy code with AI agents“, veröffentlicht am 9. September 2026.
Häufige Fragen
- How much code was migrated?
- Laut Mistral wurden im ersten Sprint 40.000 der insgesamt 300.000 Codezeilen von Fortran 77 auf C++ migriert.
- What was the parity harness used for?
- Es exportierte den Zustand aus der Fortran-Codebasis, lud Checkpoints in C++-Tests und überprüfte die numerische Gleichheit der Endergebnisse sowie ausgewählter Zwischenwerte.
- How did agents document the legacy code?
- Mistral erstellte mit einem eigens entwickelten Parser einen Caller-Callee-Baum und setzte Vibe CLI ein, um mehr als 100 Agenten zu starten. Die Agenten griffen über Dokumentbibliotheken und Mistral OCR auf relevante PDFs zu und öffneten anschließend Pull Requests.
- What workflow did Mistral ultimately use?
- Ein Mensch steuerte einen Workflow aus Coder-, Tester- und Reviewer-Agenten und migrierte die Module nacheinander. Menschen prüften die Pull Requests und griffen ein, wenn die Agenten nicht mehr weiterkamen.