تحديث الشيفرة القديمة باستخدام وكلاء الذكاء الاصطناعي
إعادة كتابة Mistral لـ40,000 سطر من Fortran تكشف أين تنتهي استقلالية الوكلاء
نقلت Mistral 40,000 سطر من Fortran 77 إلى C++ لعميل في قطاع الطاقة لم يُكشف عن اسمه، ونشرت سير العمل. أنتجت محاولتها الأولى، التي نفّذها وكلاء مستقلون تمامًا، شيفرة Fortran أُعيدت كتابتها بصيغة C++. وأصلح ذلك فحوص التكافؤ العددي ووجود إنسان في الحلقة.
Emmanuel Fabrice Omgbwa Yasse بمساعدة الذكاء الاصطناعي
2026-09-19 · قراءة 5 دقائق

40,000 من أصل 300,000 سطر، لعميل لا يستطيع أحد التحقق منه
يقول فريق الذكاء الاصطناعي التطبيقي في Mistral إنه نقل 40,000 سطر من Fortran 77 إلى C++ لصالح مشغّل طاقة أوروبي، في أول مرحلة سريعة من مهمة تبلغ 300,000 سطر على محاكي مكامن كثيف الفيزياء. ونشرت الشركة المنهجية في تدوينة تعمل أيضًا كإعلان توظيف للفريق نفسه.
لا يكاد يرد أي شيء عن العميل. لا اسم، ولا بلد، ولا شيفرة، ولا تكلفة. وما تقوله التدوينة فعلًا هو أن المحاكي لم يكن لديه مجموعة اختبارات ولا توثيق مركزي، وأن مهندسي المكامن لدى العميل راجعوا البنية المستهدفة.
تم توحيد قياس Fortran 77 في عام 1977، وقيوده تحدد ما يجب تغييره. فلا توجد وحدات (modules) ولا نطاقات أسماء (namespaces) ولا أنواع مهيكلة. وتقيم حالة البرنامج في كتل COMMON، وهي ذاكرة عامة مشتركة على مستوى البرنامج بأكمله. وتُحدد أنواع المتغيرات ضمنيًا حسب حرفها الأول، لذا فإن اسمًا مكتوبًا خطأً ينشئ متغيرًا جديدًا بصمت بدلًا من الفشل في الترجمة. وأسماء المتغيرات محدودة بستة أحرف. كما كان على الجانب المكتوب بـC++ أن يدمج أطر حوسبة علمية حديثة مثل PetSc.
المحاولة الأولى أنتجت Fortran أُعيدت كتابتها بـC++
الجزء الأكثر فائدة في التدوينة هو حيث تفشل المحاولة الأولى. فقد أعطت Mistral لكل وكيل روتينًا فرعيًا بلغة Fortran وتركتهم يعملون بشكل مستقل لأسبوع. عمل الناتج. لكنه لم يكن تحديثًا. تحولت كتل COMMON إلى هياكل عامة (structs) بنسبة واحد إلى واحد، وبقي تدفق التحكم المدفوع بـGOTO سليمًا كما هو بدلًا من إعادة هيكلته إلى حلقات أو عوائد مبكرة. وبحسب وصف Mistral نفسه، بدا الناتج وكأنه Fortran أُعيدت كتابتها بصيغة C++.
أضافت محاولة ثانية هيكلة: مخطط (planner) ومبرمج (coder) ومختبِر (tester) ومراجع لجودة الشيفرة يعملون على كل وحدة معًا. وتحسنت الجودة بشكل ملحوظ. ثم لحقت تعقيدات الشيفرة المصدرية بالوكلاء، فكانوا يصطدمون بخطأ برمجي، ويجربون بعض الإصلاحات، ثم يتوقفون دون وجود من يزيل العقبة أمامهم.
ما جرى تسليمه كان حلًا وسطًا: إنسان يدير سير عمل من وكلاء المبرمج والمختبِر والمراجع، ينقل الوحدات وحدة تلو الأخرى ويتدخل عندما تتعطل الحلقة.
التكافؤ العددي هو المخرج الفعلي
قبل كتابة شيفرة النقل، بنت Mistral ما تسميه إطار التكافؤ. فقد جهّز الوكلاء شيفرة Fortran بأدوات لتصدير لقطات للحالة عند نقاط حدد مهندسو المكامن لدى العميل أنها حرجة، وحمّل إطار اختبار بـC++ تلك النقاط المرجعية وقارنها بالوحدات المنقولة. وأخبرت ملفات Skill.md الوكلاء بكيفية استخدام إطار التكافؤ بشكل صحيح.
مثال واحد من التدوينة: أُضيف سطر إلى شيفرة Fortran لتفريغ قيمة RHOG، وهي 42.71834 في تلك التشغيلة. وأصبح الرقم نفسه النقطة المرجعية لوحدة C++. والتساوي بينهما رخيص الفحص ويصعب الجدال فيه، ولهذا ترى Mistral أن إطار التكافؤ ينتمي إلى بداية مشروع التحديث، لا إلى نهايته.
| الرقم | القيمة |
|---|---|
| أسطر Fortran المنقولة في المرحلة السريعة الأولى | 40,000 |
| إجمالي الأسطر في المحاكي | 300,000 |
| الحد الأقصى لحجم الوحدة المختار لسير العمل | نحو 10,000 سطر من Fortran |
| الوكلاء الذين أُطلقوا للتوثيق | أكثر من 100 |
| الحد الأقصى لطول اسم متغير Fortran | 6 أحرف |
| قيمة النقطة المرجعية (RHOG) | 42.71834 |
التوثيق قبل التفويض
الشرط المسبق الثاني أقل بريقًا، وهو بحسب رواية Mistral أحد أكبر المكاسب الجانبية للمشروع. كان التوثيق متناثرًا في ملفات PDF قديمة ومدفونًا في تعليقات Fortran. ولأن الشيفرة الإجرائية يمكن رسمها كشجرة واحدة للاستدعاء والاستدعاء المضاد (caller-callee)، حلل الفريق قاعدة الشيفرة بمحلل مخصص (custom parser)، ثم استخدم Vibe CLI لإطلاق أكثر من مئة وكيل لتوثيقها، بسحب ملفات PDF ذات الصلة عبر مكتبات المستندات وMistral OCR.
بدأ العمل من أوراق الشجرة (الأطراف) وتحرك صعودًا. أطلق كل عقدة وكيلًا فرعيًا وثّقها وفتح طلب سحب (pull request) على المستودع الأصلي. وكان وكيل مراجع يعمل في حلقة وفق جدول cron، يبحث عن طلبات السحب الجديدة ويراجعها ويجدول مهام الإصلاح.
كيف لن تبدو الأسطر الـ260,000 المتبقية
ترسم Mistral الحدود بنفسها. كانت الأسطر الـ40,000 وظائف أساسية في قاعدة شيفرة مكتفية ذاتيًا وقابلة للتشغيل، مع فيزياء موثقة في مكان ما، مهما كان التوثيق سيئًا. أما عمليات النقل التي تعتمد على أنظمة خارجية، أو تفتقر إلى خط أساس قابل للتشغيل، أو تُرمّز فيزياء لم يكتبها أحد، فستجلب مشكلات لم تكن هذه المرحلة السريعة مضطرة إلى حلها.
سير عمل التسليم أضيق من مقولة \"الوكلاء يقومون بالنقل\". اختيرت الوحدات كأشجار فرعية مستقلة بحجم يمكن التعامل معه، تجريبيًا أقل من نحو 10,000 سطر من Fortran. وخضعت كل وحدة للتسلسل نفسه: توليد بنية بـC++، ومراجعتها من مهندس مكامن، وتقسيم التصميم المعتمد إلى قائمة مهام، ثم التخطيط والتنفيذ والاختبار لكل مهمة، ثم مراجعة الإنسان لطلبات السحب وطلب التعديلات حتى دمجها.
ثلاث قواعد تلخص التدوينة: ابنِ إطار التكافؤ قبل كتابة شيفرة النقل، ورتّب التوثيق قبل الاعتماد على الوكلاء، وأبقِ بوابات المراجعة البشرية في الحلقة، إذ خسر كل من الاستقلالية الكاملة والجلسات الموجهة يدويًا بالكامل أمام النهج الهجين. وتأتي هذه الدعوى الأخيرة من بائع يقدم خدمات الذكاء الاصطناعي التطبيقي، ولا تحمل التدوينة أي مقارنة مع ممارسات نقل أخرى، ولا أرقام دقة تتجاوز متغيرًا واحدًا جرى تفريغه، ولا جدولًا زمنيًا أو تكلفة للأسطر الـ260,000 المتبقية.
- المصدر : Mistral's 40,000-line Fortran rewrite shows where agent autonomy runs out — 2026-09-09
أهم أخبار التقنية في 3 دقائق كل صباح
بريد إلكتروني واحد، كل يوم عمل، بما يهم فعلاً في الذكاء الاصطناعي والتقنية.