التجارب
خطة إعادة هيكلة بث وقت التشغيل الموحد
الهدف
تقديم خط أنابيب بث موحد واحد لـ main، وsubagent، وacp بحيث تحصل جميع أوقات التشغيل على سلوك متطابق في التجميع والتقسيم وترتيب التسليم والتعافي من الأعطال.
سبب وجود هذه الخطة
- السلوك الحالي مقسم عبر مسارات تشكيل متعددة خاصة بكل وقت تشغيل.
- يمكن إصلاح أخطاء التنسيق/التجميع في مسار واحد ولكنها تبقى في المسارات الأخرى.
- يصبح من الصعب فهم اتساق التسليم، وقمع التكرار، ودلالات التعافي.
البنية المستهدفة
خط أنابيب واحد، مع محولات خاصة بكل وقت تشغيل:
- تقوم محولات وقت التشغيل بإصدار أحداث أساسية فقط.
- يقوم مجمع البث المشترك بتجميع أحداث النص/الأداة/الحالة وإنهائها.
- يطبق مصمم القناة المشترك تقسيم/تنسيق القناة مرة واحدة.
- يفرض سجل التسليم المشترك دلالات إرسال/إعادة تشغيل لا تتكرر.
- ينفذ محول القناة الصادر عمليات الإرسال ويسجل نقاط فحص التسليم.
عقد الحدث الأساسي:
turn_startedtext_deltablock_finaltool_startedtool_finishedstatusturn_completedturn_failedturn_cancelled
مجالات العمل
1) عقد البث الأساسي
- تحديد مخطط حدث صارم + التحقق من الصحة في النواة.
- إضافة اختبارات عقد المحول لضمان إصدار كل وقت تشغيل لأحداث متوافقة.
- رفض أحداث وقت التشغيل غير الصحيحة مبكرًا وعرض تشخيصات منظمة.
2) معالج البث المشترك
- استبدال منطق المجمع/المصمم الخاص بكل وقت تشغيل بمعالج واحد.
- يمتلك المعالج تخزين دلتا النص، والتفريغ عند الخمول، وتقسيم الحد الأقصى للقطعة، والتفريغ عند الاكتمال.
- نقل قرار تكوين ACP/main/subagent إلى أداة مساعدة واحدة لمنع الانحراف.
3) تصميم القناة المشترك
- الحفاظ على محولات القناة بسيطة: تقبل الكتل المنتهية وترسل.
- نقل خصوصيات تقسيم Discord إلى مصمم القناة فقط.
- الحفاظ على خط الأنابيب محايدًا تجاه القناة قبل التصميم.
4) سجل التسليم + إعادة التشغيل
- إضافة معرفات تسليم لكل دورة/لكل قطعة.
- تسجيل نقاط الفحص قبل وبعد الإرسال الفعلي.
- عند إعادة التشغيل، إعادة تشغيل القطع المعلقة بطريقة لا تتكرر وتجنب التكرار.
5) الهجرة والانتقال
- المرحلة 1: وضع الظل (يحسب خط الأنابيب الجديد المخرجات ولكن المسار القديم هو الذي يرسل؛ للمقارنة).
- المرحلة 2: الانتقال وقت تشغيل تلو الآخر (
acp، ثمsubagent، ثمmainأو العكس حسب المخاطر). - المرحلة 3: حذف كود البث القديم الخاص بكل وقت تشغيل.
أهداف غير مشمولة
- لا تغييرات على نموذج سياسة/أذونات ACP في عملية إعادة الهيكلة هذه.
- لا توسيع ميزات خاصة بالقناة خارج إصلاحات التوافق في التصميم.
- لا إعادة تصميم للنقل/الخلفية (يبقى عقد ملحق acpx كما هو ما لم يكن ضروريًا لتحقيق تكافؤ الأحداث).
المخاطر والتخفيف منها
- المخاطرة: تراجعات سلوكية في مسارات main/subagent الحالية. التخفيف: مقارنة فروق وضع الظل + اختبارات عقد المحول + اختبارات القناة الشاملة.
- المخاطرة: إرسالات مكررة أثناء التعافي من العطل. التخفيف: معرفات تسليم دائمة + إعادة تشغيل لا تتكرر في محول التسليم.
- المخاطرة: انحراف محولات وقت التشغيل مرة أخرى. التخفيف: مجموعة اختبارات العقد المشتركة الإلزامية لجميع المحولات.
معايير القبول
- تمر جميع أوقات التشغيل اختبارات عقد البث المشتركة.
- تنتج ACP/main/subagent على Discord سلوكًا مكافئًا في التباعد والتقسيم لدلتا النص الصغيرة.
- لا يرسل إعادة التشغيل بعد عطل/إعادة تشغيل أي قطعة مكررة لنفس معرف التسليم.
- يتم إزالة مسار مصمم/مجمع ACP القديم.
- يكون قرار تكوين البث مشتركًا ومستقلًا عن وقت التشغيل.