عيوب التنفيذ والاستعادة
أخطاء تنفيذ وكلاء الذكاء الاصطناعي التي ينبغي تجنبها
افحص عيوب إعادة المحاولة والموافقات والتزامن والإصدارات عبر مثال لمساعد نشر، مع إصلاحات محددة وأدلة اختبار تراجعي مقترحة.
قد يبدو تنفيذ الوكيل صحيحاً بينما تكون حالته الفعلية خاطئة. فالرد يقول إن النشرة نُشرت، لكن النظام المستقبِل رفضها. والمراجع وافق على مسودة سابقة، بينما أطلق النظام نسخة لاحقة. وإعادة المحاولة أنشأت منشوراً إضافياً لأن كل محاولة بدت طلباً جديداً. تحتاج هذه العيوب إلى إصلاحات هندسية محددة وحالات اختبار تمنع عودتها.
هذا الدليل موجّه إلى القادة التقنيين والمطورين ومراجعي التسليم لفحص سلوك الوكيل عند انقطاع التنفيذ أو تكراره أو تغييره. المثال توضيحي: مساعد لنشرات المعرفة الداخلية يُعدّ تحديثاً من مواد معتمدة، ويعرض المقترح المحدد للمراجعة، ولا ينشره إلا عبر أمر مضبوط. العيوب والاختبارات الآتية مواد مقترحة للمراجعة، وليست نتائج تشغيل نفذته Open for AI.
حدّد القواعد التي يجب أن تظل صحيحة
قبل فحص التعليمات، اكتب ثوابت التنفيذ: قواعد تصح في كل مسار مسموح. يجب أن ترتبط النشرة بالمقترح المعتمد، وأن تكون وجهة النشر مأذوناً بها، وأن يستند النجاح المؤكد إلى إثبات من النظام المستقبِل. ويجب ألا يؤدي تكرار العملية نفسها إلى منشور إضافي مقصود. أما النتيجة غير المحسومة فتبقى ظاهرة حتى تسويتها آلياً أو بشرياً.
تجعل هذه القواعد الإخفاق قابلاً للملاحظة. عبارة «يجب أن يكون الوكيل موثوقاً» لا تحدد للمراجع إن كان استئناف تشغيل منقطع آمناً. أما القاعدة المحددة فتسمح بذلك. ينبغي أن توضّح بنية الوكيل المكوّن الذي يفرض كل قاعدة؛ ولا تكفي تعليمات النموذج وحدها لإثبات التنفيذ.
خطأ: إعلان الإتمام استناداً إلى الرد المولّد
قد يكتب النموذج «تم النشر» بعد طلب النشر، رغم انتهاء مهلة الأمر. افصل بين الإجراء المقترح ومحاولة تنفيذه والنتيجة المؤكدة في العمل. لا يثبت وجود المنشور المقصود إلا رد الوجهة أو قراءة موثوقة للتحقق من حالتها. وقد لا يكفي نجاح الاتصال نفسه إذا كانت الوجهة قد قبلت مهمة خلفية فحسب.
الإصلاح هو تعريف حالات صريحة: مُعدّ، بانتظار الموافقة، مأذون، مُرسل، مؤكّد، مرفوض، أو نتيجته غير معروفة. لا تحوّل الحالة الأخيرة إلى نجاح أو إخفاق تلقائياً. يجب أن يعكس الرد للمستخدم ما هو معلوم وأن يوضح من سيتولى حسم الغموض. في اختبار مقترح، تقبل الوجهة الأمر لكنها لا تعيد إثبات الإتمام؛ عندها يبلّغ المساعد عن حالة معلّقة أو غير معروفة ولا يختلق رابطاً لمنشور مكتمل.
خطأ: إنشاء هوية عملية جديدة لكل إعادة محاولة
إعادة المحاولة محاولة أخرى لإتمام القصد نفسه. وإعطاؤها معرّف عملية عمل جديداً قد يحوّل الاستعادة إلى تكرار. وفي المقابل، اعتبار كل محتوى نصي متطابق قصداً واحداً قد يمنع منشوراً لاحقاً مشروعاً. افصل هوية عملية العمل عن هويات محاولاتها وعن المحتوى الذي تحمله.
يوضح شرح AWS لواجهات البرمجة التي تمنع تكرار الأثر استخدام معرّفات طلب يقدمها المستدعي لتمييز الطلبات المتكررة. وتبقى الحماية مرتبطة بالعقد الذي تنفذه الخدمة المستقبِلة.
في هذا المثال، احتفظ بمعرّف عملية ثابت مع المقترح المعتمد والوجهة، وبمعرّف تتبع منفصل لكل محاولة. افحص تعامل الوجهة مع العملية نفسها إذا تغير محتواها، ومدة احتفاظها بسجل العمليات المكتملة، وسلوك الطلبات المتأخرة. لا يكفي مؤشر محلي يقول «أُرسل سابقاً» إذا توقف البرنامج بعد النشر وقبل حفظ المؤشر. وعندما لا تتوفر وسيلة موثوقة لمنع التكرار أو التحقق من النتيجة، امنع الإعادة التلقائية لكتابة مجهولة النتيجة وأحلها إلى تحقيق مضبوط.
خطأ: افتراض أن الاستئناف لا يعيد أي خطوة
حفظ الحالة لا يعني تسجيل كل أثر خارجي ذرياً مع حالة سير العمل. افحص دلالات الاستئناف الفعلية في بيئة التنفيذ. توضح وثائق نقاط التوقف في LangGraph، مثلاً، أن العقدة المستأنفة تبدأ من أولها، ولذلك يُنفذ الكود السابق لنقطة التوقف مرة أخرى.
لنفترض أن المساعد ينشئ سجل مسودة ثم يتوقف لانتظار الموافقة داخل وحدة قابلة لإعادة التنفيذ. قد ينشئ الاستئناف السجل مجدداً ما لم تُحمَ العملية. ضع الآثار المؤثرة بعد حد الموافقة المناسب، واعزلها عند الحاجة، واجعل الوحدات القابلة للتكرار آمنة عند تكرارها. احفظ مرجعاً ثابتاً للعنصر المُعدّ بدلاً من إعادة بناء عنصر مختلف بصمت.
اختبر الانقطاع قبل الأمر، وبعد قبول الوجهة له، وقبل التأكيد المحلي. تكشف هذه المواقع عيوباً مختلفة. ينبغي أن يحدد تصميم تنسيق التنفيذ مسارات الاستعادة؛ أما هذه المراجعة فتتحقق من التزام التنفيذ بها.
خطأ: ربط الموافقة بالمحادثة بدلاً من المقترح
عبارة «تمت الموافقة» ناقصة ما لم تحدد موضوعها. اربط القرار بإصدار المقترح ومحتواه المعني ووجهته والإجراء المسموح. وإذا تغيرت المسودة جوهرياً بعد الموافقة، فلا تجيز الموافقة القديمة النسخة البديلة. ويجب أن يرى المراجع المحتوى نفسه الذي سيُنفذ، بما فيه المرفقات المولدة والحقول المحوّلة.
في مثال النشرة، يوافق المراجع على الإصدار 4، ثم ينشئ تعديل لاحق الإصدار 5 بتاريخ سريان مختلف. يجب أن يرفض أمر النشر استخدام الموافقة السابقة للإصدار 5 وأن يطلب قراراً جديداً. ولن يكشف هذا العيب اختبار يكتفي بوجود حقل للموافقة. تحقّق أيضاً من عدم إمكان إعادة استخدام قرار منتهي الصلاحية أو مسحوب أو صادر عن غير مخوّل لاستئناف التنفيذ.
خطأ: السماح لعامل قديم باستبدال الحالة الحالية
ينشأ خلل آخر في الإصدارات عند تزامن التشغيلات. فقد يعيد عامل إعداد بطيء نتيجته بعد قبول المراجع مقترحاً أحدث. وإذا استبدلت استجابته العنصر الحالي بلا تحقق، فقد يعرض النظام نسخة وينشر أخرى. وقد تظهر سباقات مشابهة عندما يصل الإلغاء والتنفيذ في توقيت متقارب.
ضع قاعدة محددة لملكية التحديثات، وافحص الإصدار الذي استند إليه كل انتقال. ارفض التحديث القديم أو سوّه صراحة بدلاً من قبوله بصمت. وفي الأوامر المؤثرة، حدّد النقطة التي لا يعود الإلغاء بعدها وعداً بمنع التنفيذ، بل يصبح طلب تحقق أو إجراء تصحيحي. لا تعرض رسالة مطلقة تقول «أُلغي» بينما قد يكون الإجراء قد ثُبّت في الوجهة.
يتعمد اختبار تزامن مقترح إعادة نتيجة العامل الأقدم أخيراً. والنتيجة المطلوبة هي بقاء الحالة الحالية مع بيان رفض التحديث القديم، وليست اعتماد آخر استجابة وصلت.
خطأ: اعتبار JSON صحيح البنية إجراء عمل صحيحاً
قد يطابق استدعاء الأداة مخططه لكنه لا يناسب المهمة. فقد يكون معرّف الوجهة صحيح الصيغة وغير مأذون، أو يكون التاريخ قابلاً للتحليل لكنه يناقض المصدر المعتمد، أو تتضمن النشرة ادعاءً بلا سند. فحوص الأنواع ضرورية، لكنها لا تثبت الإذن أو صحة المعلومة أو ملاءمة الإجراء.
افصل قرارات التحقق. ارفض الوسائط المشوّهة عند الواجهة، وافحص قيود العمل بالرجوع إلى السجلات المعتمدة، وطبّق الصلاحيات خارج النص المولّد. استخدم ضوابط الوكيل المناسبة قبل عبور الإجراء حد التنفيذ. اختبر للمساعد طلباً صحيح الصياغة يستهدف جمهوراً خاطئاً، وطلباً إلى الجمهور الصحيح يتضمن تعديلاً غير معتمد. يفشلان لسببين مختلفين ويحتاجان مسارين مختلفين للإصلاح.
خطأ: إعادة كل إخفاق إلى الحلقة نفسها
لا يستدعي عطل قراءة مؤقت وحقل غير صحيح ورفض صلاحية وكتابة مجهولة النتيجة الاستجابة نفسها. تكرار طلب محظور لا يجعله مأذوناً. وتعديل الوسائط لإرضاء رسالة الخطأ قد يغيّر قصد المستخدم. وإعادة كتابة مجهولة النتيجة قد تكرر أثرها.
اربط فئات الأخطاء بانتقالات مسموحة: إعادة محدودة للعطل المؤقت المؤهل، وتصحيح أو استيضاح للمدخل غير الصحيح، وتوقف أو إحالة مخوّلة عند رفض الوصول، وتحقق من النتيجة عند غموض الأثر. حدّد ميزانية إجمالية للتنفيذ إلى جانب حدود الإعادة المحلية؛ فقد تُنتج حلقات عديدة محدودة منفردة تشغيلاً غير مقبول في مجمله. ويجب أن تحتفظ الحالة النهائية بالسياق المفيد للشخص الذي سيتسلمها.
خطأ: تغيير السلوك دون تحديث أدلة الإصدار
سجّل الإعدادات التي أنتجت النتيجة: اختيار النموذج، والتعليمات وعقود الأدوات، وإعدادات الاسترجاع، وإصدارات المصادر حين تتوفر، وقواعد السياسة. قد يغيّر تحديث التعليمات وحده اختيار الإجراء. وقد تحتفظ أداة باسمها بينما يتغير معنى الاستجابة الناجحة. لا ينبغي أن يختفي أي منهما تحت تسمية إصدار لم تتغير.
حدّد هل تستمر التشغيلات القائمة بإعداداتها الأصلية، أم تنتقل بتحويل موثّق، أم تتوقف للمراجعة. وعرّف أثر التراجع على إجراءات العمل المكتملة؛ فإعادة إصدار سابق من التطبيق لا تسحب نشرة منشورة. اربط حالات الاختبار التراجعي الممثلة بالعقود المتغيرة ضمن خطة الاختبار والتقييم.
| الحالة المتعمدة | الملاحظة المطلوبة | الدليل الذي يُفحص |
|---|---|---|
| تنشر الوجهة النشرة لكن الرد يضيع | تعثر الاستعادة على النتيجة الموجودة دون إنشاء منشور إضافي | هوية العملية وسجل الوجهة والمحاولات اللاحقة |
| يُعتمد الإصدار 4 ويُرسل الإصدار 5 | يحتاج المقترح المعدّل إلى موافقة جديدة | العنصر المعتمد والعنصر المرسل وسبب الرفض |
| ينتهي عامل قديم بعد قبول المسودة الحالية | لا يستطيع التحديث القديم استبدال النسخة المقبولة | إصدار الحالة المتوقع وإصدارها الحالي |
| يُستأنف تشغيل بعد تغيير عقد الأداة | تُطبّق قاعدة التوافق أو الترحيل المعلنة | إعداد التشغيل ومسار الاستمرار المختار |
| يُرفض الإذن مراراً | يصل التشغيل إلى حالة الإنهاء أو الإحالة المحددة | فئة الخطأ وسجل المحاولات والمسؤول النهائي |
اجعل أثر الإصلاح قابلاً للملاحظة بعد الإطلاق
لا يثبت الاختبار التراجعي إلا ما تغطيه تهيئته وفحوصه. احتفظ بالإخفاق المُصلح كحالة قابلة لإعادة الاستخدام، وافحص الأثر في الوجهة، وتحقق من الحالة المعروضة للمستخدم. وإذا استُخدمت خدمة بديلة في الاختبار، فحدّد سلوكيات الخدمة الفعلية التي لم تُتحقق بعد. لا تستنتج متانة التشغيل الفعلي من رد نجاح وهمي.
اربط كل قاعدة أُصلحت بمؤشر تشغيلي محدد: كتابات معلقة تنتظر التحقق، أو تحديثات قديمة، أو موافقات رُفض اختلاف إصدارها، أو ميزانيات تشغيل مستنفدة. وجّه التنبيه إلى مسؤول يستطيع التصرف؛ فجمع نصوص أكثر بلا مسار استجابة لا يغلق العيب.
في مشروع محدد النطاق من تطوير وكلاء الذكاء الاصطناعي، راجع عقد الأوامر وانتقالات الحالة وحالات الاستعادة إلى جانب مسار النجاح المفيد. اطلب مناقشة مراجعة التنفيذ وأرفق تتبع إخفاق منقحاً من البيانات الحساسة، وحالة الوجهة المتوقعة، وسلوك الاستعادة المطلوب. تتيح هذه المواد تحديد نطاق إصلاح دقيق.