میسترال با ایجنتهای هوش مصنوعی، کد قدیمی فورترن رو به ++C مهاجرت داد
خلاصهٔ کاملتر
تیم میسترال (Mistral) برای یه اپراتور انرژی اروپایی دست به کار شد که ۴۰ هزار خط از یه شبیهساز فیزیکی مخزن نفتی رو که با فورترن ۷۷ نوشته شده بود، به ++C مدرن منتقل کنه. این کد نه تست داشت نه مستندات متمرکز، و چالش اصلی فقط ترجمهٔ سینتکس نبود؛ فورترن ۷۷ زبونیه که همهچیز رو تو بلاکهای global به اسم COMMON نگه میداره و حتی نوع متغیرها رو از حرف اولشون حدس میزنه، پس یه اشتباه تایپی میتونه بیسروصدا یه متغیر جدید بسازه به جای اینکه خطا بده.
قبل از اینکه ایجنتها رو آزاد بذارن، تیم یه «هارنس برابری» ساخت: چند تا subroutine به کد فورترن اضافه کردن که وضعیت برنامه رو در لحظه دامپ میکنه، و یه فریمورک تست تو ++C ساختن که همون چکپوینتها رو لود و مقایسه میکنه. به گفتهٔ نویسندهها، این کار سریعترین و قانعکنندهترین راه برای اثبات درست بودن یه ماژول مهاجرتشدهست و باید اولین قدم هر پروژهٔ مشابه باشه.
چون مستندات پروژه بین چند تا PDF قدیمی و کامنتهای داخل کد پخش بود، تیم با ابزار Vibe CLI بیش از صد ایجنت رو برای مستندسازی کدبیس به کار گرفت. اول یه درخت caller-callee از کل برنامه ساختن، بعد از برگهای درخت شروع کردن: هر ایجنت یه بخش رو مستند میکرد و یه PR باز میکرد، و یه ایجنت ریویوئر روی یه کرونجاب PRهای جدید رو چک و اصلاح میکرد.
برای خود مهاجرت، سه روش رو امتحان کردن. تو روش اول، هر ایجنت بدون نظارت یه subroutine رو جدا ترجمه میکرد؛ نتیجه فقط فورترن بازنویسیشده با سینتکس ++C بود، نه کد مدرن. تو روش دوم یه تیم از ایجنتهای planner، coder، tester و reviewer با هم کار کردن که کیفیت رو بالا برد ولی وقتی به یه باگ سخت میخوردن، گیر میکردن و کسی نبود کمکشون کنه.
راهحل نهایی ترکیبی بود: یه انسان روی یه گردشکار از همون ایجنتهای coder/tester/reviewer نظارت میکرد و هر جا لازم بود وارد عمل میشد. با این روش تا الان ۴۰ هزار خط از مجموع ۳۰۰ هزار خط کد منتقل شده.
نکات کلیدی:
- میسترال ۴۰ هزار خط از ۳۰۰ هزار خط کد فورترن ۷۷ رو برای یه اپراتور انرژی اروپایی به ++C منتقل کرده
- قبل از مهاجرت، یه هارنس برابری عددی برای تأیید صحت خروجیها ساختن
- با ابزار Vibe CLI بیش از ۱۰۰ ایجنت برای مستندسازی کدبیس به کار گرفتن
- خودمختاری کامل ایجنتها فقط کد رو بازنویسی میکنه نه مدرنسازی؛ بهترین نتیجه از نظارت انسانی روی گردشکار ساختاریافته اومد




