نظرة عامة
يركز هذا الدليل على ضوابط CrewAI الأصلية التي يمكنك استخدامها لتقليل مخاطر الأمان في أنظمة الإنتاج. الهدف بسيط: إبقاء سلوك الـ Agent محدودًا، بأقل امتياز، وقابلًا للمراجعة.1) تحديد التنفيذ لمنع السلوك الجامح
استخدم حدود التنفيذ على Agents وCrews حتى تتدهور الأعطال بشكل متوقع بدلًا من التصاعد.الضوابط الموصى بها
max_rpm: تحديد معدل الطلبات إلى المزودينmax_iter: تحديد دورات التفكير/الأدوات التكراريةmax_execution_time: مهلة صارمة للعمل الطويل
2) تطبيق أقل امتياز على الأدوات
تجنب منح كل أداة لكل Agent. امنح كل Agent فقط الأدوات المطلوبة لمهمته.لماذا يهم ذلك
- يقلل نطاق تأثير prompt injection أو أخطاء المنطق
- يمنع الوصول العرضي إلى أنظمة غير ذات صلة
- يحسّن إمكانية تتبع من يمكنه فعل ماذا
3) التعامل مع التفويض كحدود ثقة
عندما يكونallow_delegation=True، يمكن للـ Agent توجيه العمل إلى Agents أخرى. قد يكون ذلك مفيدًا، لكنه أيضًا حد أمني.
أنماط تفويض آمنة
- اجعل التفويض معطّلًا افتراضيًا
- فعّله فقط للأدوار التي تحتاج فعلًا إلى orchestration
- ادمجه مع قيود Task واضحة وتنفيذ محدود
4) تقييد المخرجات بالمخططات والتوقعات
استخدم مخرجات منظمة whenever possible لتقليل الاستجابات الغامضة أو غير الآمنة.الضوابط الموصى بها
output_pydanticلمخرجات Task validated بالمخططexpected_outputلوصف معايير قبول صارمة
5) إضافة إشراف بشري للإجراءات عالية المخاطر
للعمليات الحساسة (مثل الإجراءات المالية، تغييرات الإنتاج، أو التغييرات المؤثرة على العملاء)، أضف مراجعة بشرية في النقطة الصحيحة من مسار التنفيذ.ماذا يفعل human_input=True
human_input=True على Task يوقف التنفيذ بعد أن يشغّل الـ Agent أدواته وينتج نتيجة. يطلب ملاحظات بشرية على الإجابة النهائية قبل قبول هذه المخرجات واعتمادها. لا يمنع تنفيذ الأدوات — يمكن للـ Agent في Task مع human_input=True أن يستدعي أدوات مدمرة أو ذات آثار جانبية قبل أن يرى أي إنسان التشغيل.
استخدم human_input=True عندما تريد أن يراجع إنسان مخرجات Task أو يعدّلها أو يوافق عليها قبل أن تصبح النتيجة الرسمية (مثل سير عمل التدريب أو مراجعة الجودة).
عندما تحتاج موافقة قبل تشغيل الأدوات
لنقاط مثل:- قبل تشغيل أدوات لا رجعة فيها
- قبل الآثار الجانبية الخارجية (بريد، تذاكر، كتابة)
- قبل استثناءات السياسة/الأمان
- Tool hooks مع
@on(InterceptionPoint.PRE_TOOL_CALL)وrequest_human_input()— يمنع استدعاء الأداة حتى الموافقة - Execution hooks في تشغيل Crew وFlow
- @human_feedback على خطوات Flow للموافقة على مستوى سير العمل
verbose=True على Agents في تدفقات حساسة لتسهيل الفحص أثناء التصحيح ومراجعة الحوادث.
قائمة تحقق تشغيلية
استخدم هذه القائمة السريعة قبل النشر في الإنتاج:- كل Agent له تنفيذ محدود (
max_rpm،max_iter،max_execution_time) - الوصول إلى الأدوات محدود حسب الدور (بدون قائمة أدوات مشتركة واسعة)
- التفويض معطّل ما لم يكن مطلوبًا صراحة
- Tasks عالية التأثير تستخدم
output_pydanticوexpected_outputدقيق - بوابات موافقة ما قبل التنفيذ موجودة للأدوات غير القابلة للتراجع أو ذات الآثار الجانبية (tool hooks أو Flow hooks أو
@human_feedback) -
human_input=Trueيُستخدم فقط حيث تكفي مراجعة المخرجات بعد التشغيل - تشغيلات Agent مسجّلة أو متتبعة للمراجعة بعد الحادث
