اللغة

البرمجة

ترحيل Copilot إلى Rust كلّف 120,000 دولار من الرموز

أتمّت GitHub ترحيل Copilot إلى Rust في سبتمبر 2026، إذ كتب وكلاء الذكاء الاصطناعي معظم أكثر من 800,000 سطر من Rust الإنتاجية خلال 14.5 أسبوعًا. ويفيد موقع The Register بأن النقل كلّف نحو 120,000 دولار من رموز الذكاء الاصطناعي إضافة إلى نحو ثلاثة أسابيع من وقت مطوّر، وتقول GitHub إن زمن البدء في سيناريو مقيس انخفض من 5.25 ثانية إلى 292 ميلي ثانية. وبالنسبة إلى الشركات التي تملك قواعد شيفرة قديمة ضخمة، هذه حالة مقيسة لوكلاء أنجزوا إعادة كتابة كانت تتطلب فريقًا كاملًا.

بقلم Mike Mozgقراءة في 4 دقائق

لماذا اضطرت GitHub إلى نقل بيئة التشغيل من TypeScript

بيئة تشغيل وكيل Copilot هي المحرك خلف GitHub Copilot CLI وتطبيق Copilot وCopilot SDK ووكيل Copilot السحابي. كما تدعم VS Code وVisual Studio وExcel وOutlook وPowerPoint وWord. وكانت مكتوبة بـ TypeScript على Node.js ومحرك V8، وهي حزمة بُنيت لسرعة التطوير لا لسرعة البدء أو كثافة الخوادم.

وصار هذا الاختيار مكلفًا مع انتشار بيئة التشغيل. فكل تطبيق يستخدم SDK كان عليه أن يبدأ عملية منفصلة تستضيف Node.js وV8. وتقول GitHub إن ذلك أضاف نحو 100 ميغابايت من مجموعة العمل لكل عميل، ودفع كل حدث ورسالة عبر حدود عملية، وجعل انهيار Node يسقط الجلسة معه.

ما الذي بنته GitHub بدلًا منها

استبدلت GitHub بيئة التشغيل بمكتبة Rust أصلية يمكن للتطبيقات المضيفة تضمينها مباشرة عبر واجهة C ABI، مع بقاء نمط خارج العملية متاحًا. ويحتفظ Copilot SDK بواجهات خاصة بكل لغة لـ TypeScript وPython وGo و.NET وJava وRust.

"هذا ليس ادعاءً بأن كل برنامج TypeScript كبير ينبغي أن يصبح Rust." — ستيفن توب، مهندس متميز في Microsoft، عن عملية النقل

وكتب توب أن متطلبات الفريق كانت التضمين عبر C ABI، وانخفاض كلفة البدء والحالة المستقرة، وقابلية التنبؤ باستخدام الموارد.

كيف أنجز الوكلاء العمل يومًا بيوم

جرى النقل تدريجيًا لا بتحويل واحد كبير. فاستُبدلت مكونات TypeScript فرادى بمكونات Rust، موصولة بطبقة توافق مؤقتة لتتمكن اختبارات النهاية إلى النهاية القائمة من تمرين الشيفرة الجديدة. وبلغت تلك الطبقة 2,019 تصديرًا داخليًا و3,356 موضع استدعاء في TypeScript قبل إزالتها. ووصل العمل في 128 طلب دمج، وأصدرت GitHub 135 إصدارًا أثناء الترحيل، 35 مستقرًا و100 تجريبيًا.

وأعاد Copilot كتابة Copilot مستخدمًا عدة نماذج، منها GPT-5.6 Sol وClaude Opus 4.8، لأجزاء مختلفة من المهمة. وقضى الوكلاء وقتًا في جمع المعلومات أكثر مما قضوه في كتابة الشيفرة. وضم أصعب ملف، session.ts، أكثر من 30,000 سطر من TypeScript. واستغرقت جلسة نقله 25 ساعة: قضت 56 دقيقة في قراءة التوثيق، وأجرت 122 استدعاء أداة، وأطلقت 15 جلسة فرعية نسّق بعضها مع بعض. وسجلت GitHub 4,478 فحص ترجمة مباشرًا، اكتمل 87.1% منها بنظافة.

ما الذي قاسه الترحيل

تورد GitHub وThe Register هذه النتائج:

  • الحجم: بحلول 21 أغسطس، ضمت بيئة التشغيل 832,378 سطرًا من Rust الإنتاجية و468,689 سطرًا من اختبارات الوحدة بـ Rust. وحوّل الوكلاء نحو 430,000 سطر من TypeScript، مقابل تقدير مبكر في مايو 2026 بنحو 130,000.
  • البدء: انخفض سيناريو بدء العميل وإنشاء الجلسة ودورة واحدة من 5.25 ثانية إلى 292 ميلي ثانية مع تضمين بيئة Rust في العملية.
  • الإنتاجية: عبر 1,000 دورة حياة جلسة بدورة واحدة على 100 مسار متزامن، أنجزت TypeScript 7.55 في الثانية وأنجزت Rust داخل العملية 120 في الثانية، أي تسريع بمقدار 15.9x.
  • الذاكرة: استخدمت دفعة من 10 عملاء 1,383 ميغابايت تحت TypeScript و126 ميغابايت تحت Rust.
  • التكلفة: نحو 120,000 دولار من رموز الذكاء الاصطناعي إضافة إلى نحو ثلاثة أسابيع من وقت مطوّر.

أين أخطأ الوكلاء

لم تكن إعادة الكتابة نظيفة. فيفيد The Register بعشرات من حالات التراجع، أي شيفرة تُترجم لكنها لم تعد تتصرف كما كانت. وردّها توب إلى دلالات غامضة وانحراف الفروع وميزات لم تُنقل واستبدال شيفرة تتصرف بشكل مختلف. وكتب أن "إذا ترجمت فهي صحيحة" لا تصلح إلا نكتة.

والتقطت الترجمة والاختبارات والمراجعة البشرية هذه المشكلات في الطريق. أما إعادة هيكلة بيئة التشغيل نفسها فتُركت خارج النطاق وهي الخطوة التالية.

ماذا يغيّر هذا لدى الشركات ذات الشيفرة القديمة

المهمة التجارية هنا هي إعادة الكتابة التي لا يستطيع أحد توفير الكوادر لها. وتقول GitHub إن المشروع كان سيستغرق فريقًا كاملًا من المطورين سنة أو سنتين قبل الوكلاء، وبدلًا من ذلك أنجزه في الأساس مطوّر واحد في بضعة أشهر، بينما واصل بقية الفريق إضافة الميزات.

والمنهج لا يقل أهمية عن الوكلاء: طلبات دمج صغيرة، وجسر مؤقت بين الشيفرة القديمة والجديدة، واختبارات قائمة، وشخص يراجع كل تغيير. وتستطيع شركة تدرس نقلها الخاص أن تقارن تكاليفها برقم علني واحد، نحو 120,000 دولار من الرموز لهذه المهمة.

أسئلة وأجوبة

كم استغرق نقل بيئة تشغيل Copilot إلى Rust؟

نحو 14.5 أسبوعًا، عبر 128 طلب دمج بينما واصلت GitHub إصدار بيئة التشغيل.

كم كلّفت إعادة الكتابة بمساعدة الذكاء الاصطناعي؟

يفيد The Register بنحو 120,000 دولار من استخدام رموز الذكاء الاصطناعي إضافة إلى نحو ثلاثة أسابيع من وقت مطوّر.

هل التقط مترجم Rust أخطاء الوكلاء؟

بعضها فقط. فالمترجم يؤكد أن الشيفرة Rust صالحة لا أنها تحافظ على السلوك القديم، فوجدت الاختبارات والمراجعة البشرية حالات التراجع التي ترجمت بنظافة.

رؤية MOZGII

كيف كنا سنبنيه

الدرس الذي نأخذه من هذه الحالة أن الوكلاء كانوا الجزء الرخيص. أما ما جعل العمل ينجح فهو مجموعة الاختبارات التي كانت موجودة، والجسر الذي أتاح تشغيل الشيفرة القديمة والجديدة جنبًا إلى جنب، والمهندس الذي راجع التغييرات.

لو كنا ننقل قاعدة شيفرة كبيرة بالوكلاء، لبدأنا بتثبيت السلوك الذي يهمنا في اختبارات عند الحدود: المدخلات والمخرجات وحالات الخطأ والإلغاء وإعادة المحاولة. وننقل وحدة واحدة في كل مرة خلف جسر مؤقت، ونطلق كل قطعة في إصدار عادي، ونُبقي الوحدة القديمة جاهزة للعودة إليها. ويقرأ الوكلاء ويصوغون ويشغّلون الفحوص، ويملك شخص كل عملية دمج.

وسينهار الأمر حيث لم يُكتب السلوك قط. فالمترجم يؤكد أن الشيفرة صالحة لا أنها تفعل ما كانت تفعله القديمة، وحالات التراجع هنا جاءت من هذه الثغرات بالذات. وسنعيد تشغيل طلبات إنتاج مسجلة على النسختين ونقارن الإجابات.

والمقياس الوحيد الذي سنتابعه هو حالات التراجع المكتشفة بعد الإصدار لكل وحدة منقولة، إلى جانب إنفاق الرموز لكل وحدة. بعد ذلك، سنطبق المنهج نفسه على إعادة هيكلة الشيفرة ذاتها، وهي الخطوة التي أجّلتها GitHub.

المصادر

من أين جاءت حقائق هذا الخبر.

  1. 01Github Migrates Copilot Runtime to Rust with AI-Assisted Rewrite - InfoQinfoq.com
  2. 02Microsoft agentically ports Copilot runtime to Rust for $120Ktheregister.com
  3. 03Migrating the GitHub Copilot runtime to Rust, using Copilot - The GitHub BlogLinkedIn iconInstagram iconYouTube iconX iconTikTok iconTwitch iconGitHub icongithub.blog

نستخدم ملفات تعريف الارتباط

نجمع بيانات استخدام مجهولة لتحسين MOZGII. لا تُجمع أي بيانات بدون موافقتك. سياسة الخصوصية · سياسة الكوكيز