بروتوكول الكاتب الواحد: كيف ندير أسطولاً هندسياً ذاتي التشغيل
عشرة مستودعات، عائلتان من النماذج، وقاعدة واحدة: كاتب واحد على الأكثر داخل أي مستودع، دائماً. نظرة على المحرّك الذي نبني به كل مشروع.
بروتوكول الكاتب الواحد: كيف ندير أسطولاً هندسياً ذاتي التشغيل
كل استوديو مشاريع يقول إنه «مدعوم بالذكاء الاصطناعي»، حتى فقدت العبارة معناها. لذلك بدلاً من تكرارها، نعرض هنا الآلية نفسها: المحرّك الحقيقي الذي ندير به محفظتنا، بما في ذلك ما كان معطلاً فيه وما فعلناه حياله.
نسمّي هذا المحرّك سيناوي. تعمل عليه اليوم عشرة مستودعات منتجات، لكلٍّ منها جدولها اليومي الخاص، وبالتوازي. يدخل العمل على هيئة بطاقة على لوح المهام، فتلتقطها دورة مجدولة، وتخطط لها، وتنفّذها، ثم تتحقق منها في متصفح حقيقي مقابل معايير القبول كما كُتبت، ثم تنشرها، وتتأكد من أن النسخة الحيّة تحمل ذلك الإصدار، وعند ذلك فقط تكتب النتيجة على اللوح. خلال 41 يوم تشغيل أغلق المحرّك 243 دورة، وكل واحدة منها انتهت بحالة مصنّفة مسجّلة في سجل دائم.
لم تكن الصعوبة يوماً في جعل وكيل ذكاء اصطناعي يكتب كوداً. الصعوبة في تشغيل عدد كبير منهم، عبر مستودعات كثيرة، دون أن يتصادم عملهم — ومعرفة ما جرى بالضبط بعد ذلك.
الحادثة
في أحد الأيام كانت جلستان من الوكلاء تعدّلان المستودع نفسه في الوقت نفسه.
لم تُخطئ أيٌّ منهما. كلتاهما اجتازت كل الفحوص المتاحة لدينا. كانت الفحوص تسأل: «هل توجد مهمة مجدولة تعمل هنا؟» وكان الجواب الصحيح: لا — لأن جلسة يقودها إنسان لم تكن مهمة مجدولة، وبالتالي لم تكن موجودة أصلاً بالنسبة لآليات الأمان لدينا. كاتبان، شجرة عمل واحدة، ومجموعة من الأضواء الخضراء.
الاستجابة الغريزية هي إضافة تحذير. لكننا فعلنا شيئاً أضيق وأكثر نفعاً: جعلنا كل كاتب من النوع نفسه.
القاعدة
الدورة المجدولة، والمهمة المفوَّضة إلى نموذج آخر، والمسح الليلي، والإنسان الجالس في الطرفية يقود وكيلاً بيده — كل واحد من هؤلاء يأخذ العقد نفسه على المستودع قبل أول تعديل، ويحتفظ به حتى آخر تعديل.
وهذا هو بروتوكول الكاتب الواحد بأكمله:
وكلاء كثيرون، ومستودعات كثيرة، وكاتب واحد على الأكثر داخل أي مستودع، دائماً.
الخاصية اللافتة هنا هي عدم التماثل. لا يتزاحم مستودعان أبداً، فتتحرك المحفظة بالتوازي وبكامل سرعتها — بطاقة في مشروع وبطاقة في مشروع آخر تُنفَّذان في اللحظة ذاتها فعلاً. أما داخل المستودع الواحد فالكتّاب متسلسلون بصرامة، فلا يُكتب شيء نصف كتابة بيدين. معظم الفرق تلجأ إلى قفل شامل فتخسر توازي المحفظة، أو تتخلى عن الأقفال فتخسر سلامة المستودع. هذا النهج لا يتنازل عن أيٍّ منهما، وثمنه ملف صغير على القرص.
تفصيلان يجعلان القاعدة تصمد عملياً. الأول أن العقد يُثبَت بـالعمل لا بمؤقّت ولا بمجرد الوجود: الكاتب الذي ما زال يعمل يبقى محتفظاً بمستودعه حتى لو تأخر أكثر من المتوقع، والكاتب الذي انتهى يتحرر تلقائياً بدل أن يعطّل الأسطول حتى الصباح، والجلسة البشرية التي سكنت يسقط ادعاؤها من تلقائه — فالطرفية المتروكة مفتوحة طوال الليل لا تحتجز مستودعاً، ومتى عاد صاحبها إلى العمل استعاده فوراً. والثاني أن الوكيل الذي لم يسجّل نفسه لسبب ما يُكتشف رغم ذلك — من جدول العمليات في نظام التشغيل — بدلاً من الوثوق بحسن تصرّفه. فقاعدة أمان لا تغطي إلا المشاركين المنضبطين ليست قاعدة أمان.
بوابات مصنّفة، لا انطباعات
البروتوكول يمنع تصادم الكتّاب، لكنه لا يقول شيئاً عن جودة العمل. تلك مهمة القاعدة الثانية، وهي القاعدة التي تجعل ترك الحلقة تعمل دون إشراف أمراً آمناً فعلاً:
المرحلة التي لا تستطيع إنتاج نتيجة مصنّفة صالحة لم تنتهِ، مهما قالت في وصفها.
كل مرحلة من كل دورة تعيد نتيجة مهيكلة من مفردات مغلقة. تتقدم البطاقة لأن عقداً قابلاً للفحص آلياً قد تحقق — لا لأن ملخصاً بدا واثقاً. «يبدو أنه اكتمل» ليست حالة يمكن أن تكون البطاقة فيها. هذا غير مبهر، وهو بالضبط الفارق بين حلقة ذاتية التشغيل وعرض تجريبي.
ينسحب الانضباط نفسه على السجل. كل دورة تكتب صفاً واحداً: ما الذي عمل، وكم كلّف، وكيف انتهى. يُسجَّل التأجيل تأجيلاً، والتصعيد تصعيداً. الحلقة قابلة للمراجعة لاحقاً بحكم بنيتها، وهذا هو السبب النزيه الوحيد للوثوق بها بينما لا يراقبها أحد. أما الهيكل الذي يفرض كل ذلك فتحرسه 281 اختباراً آلياً.
ما التقطه يوم إطلاقه
أُطلق البروتوكول، واجتاز اختباره الحيّ، ثم التقط فوراً شيئاً لم نكن نبحث عنه.
كانت جلسة طرفية متروكة في أحد المستودعات منذ ثلاثة عشر يوماً — خاملة، غير ضارة، لا تفعل شيئاً على الإطلاق. رأى حارسنا الجديد عملية وكيل حيّة داخل ذلك المستودع، ففعل تماماً ما أمرناه به: أجّل الدورة المجدولة تفادياً لمشاركة كاتب نشط. سلوك صحيح ومحافظ وكارثي بهدوء — إذ كانت دورة ذلك المشروع ستُتخطّى كل يوم، إلى الأبد، مسجّلةً صف «تأجيل» سليم الشكل لن يقرأه أحد أبداً.
كان الإصلاح أن يكون التأجيل مبنياً على دليل على عمل جارٍ — تغييرات غير محفوظة في الشجرة قد تدهسها الدورة — لا على مجرد وجود عملية. لكن الدرس أكبر من الإصلاح، وهو سبب تدويننا لهذا:
آلية الأمان التي يكون فشلها صامتاً ليست آمنة بعد.
كل ما يستطيع أن «لا يفعل شيئاً» بهدوء وإلى الأبد بينما يبلّغ بالنجاح، أخطر مما يفشل بصوت عالٍ. صرنا نحاكم كل حارس نبنيه بهذا المعيار.
لماذا ننشر هذا
المؤسسون والمستثمرون الذين يقيّمون استوديو مشاريع يسمعون «مدعوم بالذكاء الاصطناعي» من الجميع. الادعاء مجاني، ولذلك لا يحمل أي معلومة. أما الآلية فليست مجانية، وهي تحمل معلومة.
كل ما ورد أعلاه قابل للتحقق: المستودعات العاملة على الحلقة، والدورات المغلقة، والحالات المصنّفة، والاختبارات. ونفضّل عرض نظام بحدود معلنة — الجلسات الأقدم من الآلية مغطاة بالاكتشاف فقط، والمزوّد الذي لم نغلّفه مغطى بالاكتشاف فقط، والعقد يُسترد بفحوص الحياة لا بالسحر — على ادعاء نظام «خالٍ من التعارض» لا يصدّقه مهندس نزيه.
هذا هو المحرّك الذي نبني به كل مشروع. إن كنت تبني شيئاً وتريده مبنياً بهذه الطريقة، تحدّث إلينا.