كثير من أخطاء الوكلاء ليست اختيار Tool خاطئة، بل تنفيذ الأداة المناسبة قبل أن تصبح الشروط جاهزة. إرسال الرد قبل مراجعة المستلم، نشر قبل approval، أو الضغط على زر بعد تغير الصفحة أمثلة. العلاج هو تحويل التوقيت والشروط إلى عقود قابلة للتحقق خارج reasoning النصي.
عرّف Preconditions صريحة
لكل Tool حساسة، اكتب شروطًا مثل currentProfile=id، workflowStatus=approved، selectedCount=1. server يتحقق منها لحظة التنفيذ؛ لا يكفي أن يذكر Agent أنه تحقق سابقًا.
استخدم state version أو nonce
عندما يقرأ Agent حالة ثم يقرر write، أرسل version معها. إذا تغيرت الحالة، ارفض write واطلب قراءة جديدة. هذا optimistic concurrency بسيط يمنع قرارات مبنية على snapshot قديم.
خطوات عملية
- read state + version.
- plan.
- write expectedVersion.
- reject on mismatch.
ضع نافذة صلاحية للقرارات
موافقة بشرية حصلت منذ ساعة قد لا تكون صالحة إذا تغير المستند. اربط approval بال hash أو version ومدة. لا تجعل confirmation عامة صالحة لأي input لاحق.
قائمة مراجعة
- approval scope.
- object version.
- expiry.
- actor.
تحقق بعد التنفيذ
Postcondition يثبت أن الأداة فعلت المطلوب. إذا فشل، لا ينتقل Agent للخطوة التالية كأن النجاح حدث. استخدم result structured لا نصًا مبهمًا.
اختبر race conditions
شغل Agent ين على نفس المورد أو غيّر الحالة بين read و write. يجب أن ينجح واحد أو تظهر conflict واضحة. هذه الاختبارات تكشف مشاكل توقيت لا تظهر في demo واحد.
استخدم Preconditions قابلة للتفسير لل ـAgent والإنسان
عندما يرفض server تنفيذ Tool، لا تُرجع forbidden فقط. أعد code مثل STATE_CHANGED أو APPROVAL_EXPIRED مع currentVersion أو الشرط الناقص بدون كشف بيانات حساسة. هذا يسمح لل Agent بإعادة القراءة أو طلب approval بدل التخمين. كذلك يساعد الإنسان في logs على فهم أن الأداة نفسها كانت صحيحة لكن توقيتها لم يعد صالحًا. تجنب رسائل نصية حرة فقط؛ structured failure يجعل orchestration أكثر ثباتًا ويسهل اختبار سيناريوهات race بشكل آلي.
استخدم Two-Phase Action للعمليات شديدة الحساسية
في Tool عالية الأثر مثل bulk delete يمكن أن تفصل prepare عن commit. prepare تتحقق من preconditions وتعيد actionToken قصير العمر مع summary ثابت. المستخدم أو policy توافق على ال ـsummary، ثم commit يقبل token فقط إذا لم تتغير state. هذه البنية تمنع أن يوافق الإنسان على عشرة عناصر ثم ينفذ Agent على اثني عشر بعد refresh. لا تستخدمها لكل click؛ خصصها للإجراءات التي تستحق التعقيد، وأبطل token بعد أول استعمال أو expiry.
قائمة مراجعة
- prepare بلا أثر دائم.
- summary مرتبط ب ـhash.
- token one-time.
- commit يعيد فحص version.
اختبار التحكم قبل منح الصلاحية
في «كيف تمنع AI Agent من تنفيذ Tool صحيح في التوقيت الخطأ» اختبر النظام بأداة قراءة أولًا ثم أداة تغيير منخفضة المخاطر، مع تسجيل المدخل والقرار والنتيجة دون أسرار. افصل بين ما يستطيع النموذج اقتراحه وما يستطيع تنفيذه، وضع approval أو policy على الأفعال الحساسة. جرّب مدخلًا غامضًا ومدخلًا يحتوي تعليمات متعارضة، وتأكد أن حدود الصلاحيات لا تتغير بسبب صياغة المستخدم. القيمة هنا ليست في عدد الأدوات التي يستطيع ال ـAgent استدعاءها، بل في أن كل استدعاء يمكن تفسيره ومراجعته وإيقافه عند فشل شرط الأمان أو عدم اكتمال السياق.
قائمة مراجعة
- صلاحية دنيا لكل أداة.
- Approval للأفعال الحساسة.
- تسجيل القرار والنتيجة.
- اختبار تعليمات متعارضة.
توثيق النتيجة للفريق
بعد الانتهاء من اختبار «كيف تمنع AI Agent من تنفيذ Tool صحيح في التوقيت الخطأ»، احفظ ملخصًا قصيرًا يوضح البيئة والخطوات والنتيجة وما الذي تغير عن ال ـbaseline. أرفق أكواد الأخطاء أو المقاييس الضرورية فقط، واربطها برقم الإصدار. هذا السجل يجعل المراجعة اللاحقة أسرع ويمنع إعادة نفس النقاش من الصفر، كما يسمح لفريق آخر بتكرار التجربة دون الاعتماد على ذاكرة الشخص الذي نفذها. إذا كانت النتيجة غير حاسمة، اكتب ذلك صراحة وحدد الاختبار التالي بدل تحويل الاحتمال إلى استنتاج نهائي.
شارك في تقييم ونقاش المقال
رأيك يضيف قيمة للمقال ويساعدنا على تحسين المحتوى والنقاش حوله.
النقاش
جارٍ تحميل التعليقات…