← أحدث الأبحاث
💻 computer science

Rover: Context-aware Conflict Resolution with LLM

يُعد Rover نظاماً مبتكراً لحل النزاعات يعمل على تعزيز النماذج اللغوية الكبيرة من خلال دمج تحليل البرامج مع مخطط خصائص الكود متعدد الطبقات لتوليد مطالبات مدركة للسياق، مما يجعله يتفوق على الأدوات الحالية في حل نزاعات دمج الكود المعقدة بدقة.

المؤلفون الأصليون: Qingyu Zhang, Junzhe Li, Jiayi Lin, Changhua Luo, Chenxiong Qian

نُشر 2026-05-19
📖 4 دقيقة قراءة☕ قراءة في استراحة قهوة

المؤلفون الأصليون: Qingyu Zhang, Junzhe Li, Jiayi Lin, Changhua Luo, Chenxiong Qian

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل أنك وصديق لك تقومان بتحرير كتاب وصفات طعام نفسه في نفس الوقت. قررت أنت إضافة رشة ملح إلى الحساء، بينما قرر صديقك إضافة كوب من السكر. عندما تحاول دمج نسختيكما، يصاب الكتاب بالارتباك: "هل نضيف الملح؟ أم السكر؟ كلاهما؟ أم لا شيء منهما؟" هذا هو تعارض الدمج (Merge Conflict).

في عالم البرمجيات، يفعل ملايين المطورين ذلك يومياً. عادةً، تحاول الحواسيب إصلاح هذه التعارضات تلقائياً، لكنها غالباً ما تخطئ لأنها تنظر فقط إلى أسطر النص المباشرة، وتغفل عن الصورة الأكبر. إذا قمت بتغيير اسم متغير في ملف ما، فقد يؤدي ذلك إلى كسر دالة (Function) في ملف آخر تماماً. الأدوات القياسية لا "ترى" هذا الاتصال.

إليك Rover، وهي أداة جديدة مصممة لتكون "المحرر الخارق" لهذه التعارضات. إليك كيف تعمل، باستخدام تشبيهات بسيية:

1. المشكلة: المحرر "الأعمى"

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

الأدوات الحالية تشبه هذا الروبوت. فهي تنظر إلى الأسطر المتعارضة والأسطر القليلة المجاورة لها فقط. إنها تغفل عن الاتصالات "بعيدة المدى"، مثل دالة معرفة في الملف (أ) تُستخدم في الملف (ب).

2. الحل: "الخريطة الفائقة" لـ Rover (المعروفة بـ MtCP️G)

لا يقرأ Rover النص فحسب؛ بل يبني رسم بياني لخصائص الكود متعدد الطبقات (MtCPG).

فكر في هذا الأمر كأنه خريطة مترو ضخمة وتفاعلية لمشروع برمجيات كامل.

  • الأدوات القياسية تنظر فقط إلى الشارع الذي وقع فيه الحادث.
  • خريطة Rover تظهر كل محطة، وكل مسار، وكل اتصال بين الخطوط المختلفة، حتى لو كانت في مدن مختلفة (ملفات مختلفة).

تتبع هذه الخريطة:

  • من يتحدث مع من: إذا كانت دالة في ملف ما تستدعي متغيراً في ملف آخر، فإن الخريطة ترسم خطاً بينهما.
  • التسلسل الهرمي: هي تعرف أن سطراً معيناً من الكود ينتمي إلى دالة معينة، والتي تنتمي بدورها إلى فئة (Class) معينة.
    ز
  • السبب: هي تفهم أنه إذا قمت بتغيير تعريف ما، فإن كل ما يتصل به سيتأثر، حتى لو كان ذلك على بعد 100 سطر أو في ملف مختلف.

3. العملية: إيجاد السياق المناسب

عند حدوث تعارض، لا يكتفي Rover بجلب النص المجاور للخطأ. بدلاً من ذلك، يستخدم "خريطة المترو" الخاصة به لتتبع الاتصالات.

  1. تحديد موقع التعارض: يجد المكان المحدد الذي تختلف فيه النسختان.
  2. تتبع الخطوط: يتبع "المسارات" على خريطة الخاص به ليجد كل قطعة كود متصلة بهذا التعارض. ربد يكون التعارض يتضمن متغيراً تم تعريفه في ملف مختلف؟ يجد Rover ذلك الملف ويجلب ذلك الكود أيضاً.
  3. تجميع القرائن: يجمع كل هذه القطع المتصلة من الكود في "حزمة سياق". الأمر يشبه جمع كل الشهود والأدلة المتعلقة بمسرح الجريمة، بدلاً من مجرد النظر إلى مسرح الجريمة نفسه.

4. الحل: الذكاء الاصطناعي الذكي

بمجرد أن يمتلك Rover هذه "حزمة السياق" الغنية، فإنه يسلمها إلى نموذج لغوي كبير (LLM) — وهو ذكاء اصطناعي ذكي جداً يعرف كيفية كتابة الكود.

  • بدون Rover: يحصل الذكاء الاصطناعي على مقتطف صغير من الكود وعليه أن يخمن الباقي. وغالباً ما يخمن بشكل خاطئ بسبب نقص السياق.
  • مع Rover: يحصل الذكاء الاصطناعي على التعارض بالإضافة إلى "خريطة المترو" الكاملة للكود المرتبط. يمكنه رؤية الصورة الكاملة. هو يفهم: "آه، هذا المتغير يُستخدم هنا، وهذه الدالة تتوقع هذا النوع من البيانات".

بعد ذلك، يكتب الذكاء الاصطناعي الحل المثالي الذي يلبي متطلبات كلتا النسختين، مع الحفاظ على قصد كلا المطورين.

5. النتائج: لماذا يهم هذا؟

اختبر الباحثون Rover مقابل:

  • الذكاء الاصطناعي القياسي: مجرد ذكاء اصطناعي ينظر إلى النص المجاور.
  • أدوات تعلم الآلة القديمة: أدوات مدربة على أنماط محددة.
  • أدوات "مساعدة" أخرى: أدوات تحاول العثور على الكود المرتبط ولكنها غالباً ما تفقد الاتصالات العميقة.

النتيجة:
كان Rover أفضل بكثير في إصلاح التعارضات.

  • أنتج حلولاً تبدو أكثر تشابهاً مع ما كان سيكتبه المطورون البشر.
  • تعامل مع المواقف المعقدة حيث يعتمد الكود في ملف واحد على كود في ملف آخر، وهي مواقف فشلت الأدوات الأخرى في حلها.
  • عمل عبر لغات برمجة مختلفة (C، Java، Python) دون الحاجة إلى إعادة تدريبه لكل منها.

الملخص

فكر في Rover كمحقق لا يكتفي فقط بالنظر إلى مسرح الجريمة (التعارض)، بل يستجوب كل شاهد ويدقق في كل حجة (تبعيات الكود) قبل حل القضية. من خلال منح الذكاء الاصطناعي خريطة كاملة لعلاقات البرمجيات، يضمن Rover أن الكود النهائي المدمج صحيح، وآمن، ويعمل بالفعل.

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →