الوصف
Oscar، بنية وكيل مساهم مفتوح المصدر، هو مشروع يركز على تعزيز تطوير البرمجيات مفتوحة المصدر من خلال إنشاء وكلاء آليين لصيانة المشاريع. الاعتقاد الأساسي هو أنه يمكن تقليل الجهد الكبير المبذول في صيانة المشاريع مفتوحة المصدر، الكبيرة والصغيرة على حد سواء. توفر نماذج اللغة الكبيرة (LLMs) إمكانيات جديدة للوكلاء للتفاعل بسلاسة مع الأشخاص من خلال التحليل الدلالي للغة الطبيعية، مثل تقارير المشكلات وتعليمات المشرفين، ومن خلال تحويل تعليمات اللغة الطبيعية إلى كود برمجي. في حين أن نماذج اللغة الكبيرة هي مكون حاسم، فإن غالبية إجراءات الوكيل ستتضمن تنفيذ كود قياسي وحتمي. على عكس العديد من استخدامات نماذج اللغة الكبيرة التي تركز على التطوير، لا يهدف Oscar إلى تعزيز أو استبدال عملية كتابة الكود. بدلاً من ذلك، يركز على الجوانب الأقل جاذبية للصيانة، مثل معالجة المشكلات الواردة، ومطابقة الأسئلة مع الوثائق الحالية، والمهام المماثلة.
قراءة المزيد
Oscar هو في الأساس تجربة، ولا يزال اتجاهه المستقبلي والدروس المستفادة لم يتم تحديدها بالكامل بعد. أظهر النموذج الأولي الأول، الروبوت @gabyhelp، بالفعل العديد من التفاعلات الناجحة داخل متتبع مشكلات Go. يتم تطويره حاليًا تحت مشروع Go، وقد يتم فصل Oscar في النهاية إلى مشروع منفصل في المستقبل. تشمل الأهداف الملموسة للمشروع تقليل جهد المشرفين في حل المشكلات وقوائم التغيير (CLs/pull requests)، وتقليل الجهد المطلوب لمعالجة أسئلة المنتدى، وتمكين المزيد من الأفراد من أن يصبحوا مشرفين منتجين. أحد الأهداف الرئيسية غير المحددة هو أتمتة الترميز؛ يظل التركيز على أتمتة الجهد المبذول من قبل المشرفين.
تتمحور المنهجية حول بناء بنية قابلة لإعادة الاستخدام وقابلة للتوسيع يمكن لأي مشروع برمجي تكييفها لإنشاء وكلاء مخصصين. يهدف Oscar إلى معالجة الجهد المبذول من قبل المشرفين، وهو ليس فريدًا لمشروع Go. تشمل القدرات المحددة فهرسة وسياق المشروع ذي الصلة أثناء تفاعلات المساهمين، واستخدام اللغة الطبيعية للتحكم في الأدوات الحتمية، وتحليل تقارير المشكلات، وقوائم التغيير/طلبات السحب، ومناقشات المجموعات لتحسينها في الوقت الفعلي، وتصنيفها وتوجيهها بشكل مناسب. نماذج اللغة الكبيرة جزء لا يتجزأ من هذه القدرات نظرًا لقوتها في معالجة اللغة الطبيعية، بينما يتعامل الكود الحتمي مع التنفيذ. يؤكد المشروع على استخدام نماذج اللغة الكبيرة للتحليل الدلالي وترجمة اللغة الطبيعية إلى برنامج، مع الاعتماد على الكود الحتمي للباقي.
إحدى القدرات الحاسمة هي فهرسة وسياق المشروع ذي الصلة. المشاريع البرمجية معقدة، ولا يمكن للمشرفين دائمًا الاحتفاظ بجميع التفاصيل ذات الصلة. يستخدم Oscar تضمينات نماذج اللغة الكبيرة لإنشاء محرك بحث للمشروع، وفهرسة الوثائق والمشكلات والمناقشات. عند ظهور مشكلة جديدة، يمكن للوكيل استخدام هذا الفهرس للعثور على السياق ذي الصلة، مثل المشكلات السابقة المماثلة أو الوثائق ذات الصلة، والرد بروابط. أظهر هذا فوائد مثل الكشف عن المشكلات المكررة، وتوفير السياق للمساهمين، وتوفير وقت المشرفين من خلال توجيههم إلى المناقشات السابقة ذات الصلة أو تقارير الأخطاء. التفاعل الفوري للوكيل بعد تقديم تقرير أمر حيوي لإشراك المبلغين أثناء توفرهم وانخراطهم.
قدرة رئيسية أخرى هي استخدام اللغة الطبيعية للتحكم في الأدوات الحتمية. مع نمو المشاريع، يزداد عدد الأدوات، مما يجعل من الصعب تتبعها واستخدامها. يتصور Oscar مرافق لتعديل تعليقات المشكلات، وإضافة تسميات، أو تعيين أشخاص بناءً على طلبات اللغة الطبيعية. نماذج اللغة الكبيرة بارعة في ترجمة نوايا اللغة الطبيعية إلى أشكال قابلة للتنفيذ مثل استدعاءات الأدوات. تظهر التجارب الأولية مع Gemini وعدًا في اختيار الأدوات واستدعائها. يعتبر هذا النهج، الذي يستخدم نماذج اللغة الكبيرة لتحويل اللغة الطبيعية إلى استخدام أدوات حتمية، أكثر فعالية من نهج "عصا سحرية" لنماذج اللغة الكبيرة البحتة، لأنه يسمح بالتنفيذ الحتمي والتحقق الأسهل.
القدرة الثالثة المهمة تتضمن تحليل تقارير المشكلات وقوائم التغيير/طلبات السحب. بالإضافة إلى ربط المشكلات ذات الصلة، يخطط Oscar لدمج التحليل الدلالي، مثل تحديد الموضوع الرئيسي للمشكلة للتصنيف المناسب (على سبيل المثال، "الأداء"). كما يهدف إلى تحديد ما إذا كانت هناك حاجة إلى مزيد من المعلومات ليكون التقرير مفيدًا، مثل طلب رابط برنامج إعادة إنتاج أو تضمين الكود. يمكن للوكيل تشغيل أدوات تنفيذ معزولة لتحديد الإصدارات التي تحتوي على أخطاء أو استخدام git bisect لتحديد الالتزامات التي تقدم الأخطاء. تكون هذه التحليلات أكثر فعالية عند إجرائها فور تقديم التقرير، والاستفادة من توفر الوكيل على مدار الساعة طوال أيام الأسبوع.
النموذج الأولي الأول، Gaby ("Go AI bot")، يعمل ضمن متتبع مشكلات Go، وينشر باسم @gabyhelp. كود المصدر الخاص به موجود في internal/gaby. يقوم Gaby بفهرسة المحتوى من مشكلات Go، ووثائق Go، ومراجعات كود Gerrit، ومناقشات مشروع Go/golang-nuts، مما يمكّنه من الرد على المشكلات الجديدة بروابط ذات صلة. تم تصميم بنية Gaby للمرونة، مما يسمح له بالعمل على خدمات استضافة مختلفة، واستخدام نماذج لغة كبيرة مختلفة، وطبقات تخزين، وقواعد بيانات متجهة. يستخدم النموذج الأولي الحالي GCP Cloud Run مع نموذج Gemini LLM من Google و Google Cloud Firestore. يعترف المشروع أيضًا بوجود @gopherbot، وهو وكيل حتمي طويل الأمد في مشروع Go، ويهدف إلى دمج @gabyhelp في النهاية في @gopherbot عن طريق إعادة بناء @gopherbot كوكيل Oscar، والبحث عن طريقة تكوين أخف وزنًا باستخدام اللغة الطبيعية.
- الفئةمساعدو البرمجة بالذكاء الاصطناعي
- نموذج التسعيرمفتوح المصدر
- النشرالسحابة / محلي
- المنصاتالويب
الميزات الأساسية لـ Oscar
وكيل آلي لصيانة المصادر المفتوحة
يقلل من الجهد المبذول من قبل المشرفين من خلال معالجة المشكلات والطلبات
يستفيد من نماذج اللغة الكبيرة لفهم اللغة الطبيعية والتحليل الدلالي
يستخدم الكود الحتمي لتنفيذ المهام بشكل موثوق
يفهرس ويسطح سياق المشروع ذي الصلة (الوثائق، المشكلات، المناقشات)
يمكّن التحكم باللغة الطبيعية في الأدوات الحتمية
يحلل تقارير المشكلات وقوائم التغيير لتحسين التوجيه والتصنيف
الوكيل النموذجي @gabyhelp نشط في متتبع مشكلات Go
بنية قابلة للتوسيع لتطوير وكلاء مخصصين
يدعم التكامل مع نماذج لغة كبيرة مختلفة، وطبقات تخزين، وقواعد بيانات متجهة
يهدف إلى أتمتة الجوانب غير المتعلقة بالترميز في صيانة المصادر المفتوحة
يسهل تفاعل المساهمين بشكل أسرع من خلال الاستجابات الفورية
البدء مع Oscar
التكوين: تحديد قدرات الوكيل والاتصال بمصادر بيانات المشروع
النشر: استضافة الوكيل على منصة مناسبة (مثل خدمة سحابية)
التكامل: الاتصال بمستودعات المشروع وقنوات الاتصال (مثل GitHub webhooks)
التدريب/الفهرسة: السماح للوكيل بمعالجة وفهرسة سياق المشروع باستخدام نماذج اللغة الكبيرة
المراقبة: ملاحظة تفاعلات الوكيل وأدائه في متتبعات المشكلات والمنتديات
التوسيع: تطوير سلوكيات وكيل جديدة ودمج أدوات حتمية مخصصة
التحسين: تحسين استجابات الوكيل وتحليلاته بناءً على احتياجات المشروع وردود الفعل
حالات استخدام Oscar
- أتمتة فرز المشكلات
- مساعدة الوثائق
- اكتشاف المشكلات المكررة
- تقليل جهد المشرفين
- دعم المساهمين
- تحليل قوائم التغيير
- سطح السياق
- تكامل الأدوات










