نظرة عامة على الوكيل
في إطار عمل CrewAI، الـAgent هو وحدة مستقلة يمكنها:
- أداء مهام محددة
- اتخاذ قرارات بناءً على دوره وهدفه
- استخدام الأدوات لتحقيق الأهداف
- التواصل والتعاون مع وكلاء آخرين
- الاحتفاظ بذاكرة التفاعلات
- تفويض المهام عند السماح بذلك
يتضمن CrewAI AMP منشئ وكلاء مرئي يبسّط إنشاء وتهيئة الوكلاء بدون كتابة كود. صمم وكلاءك بصريًا واختبرهم في الوقت الفعلي.
يُمكّن منشئ الوكلاء المرئي من:

- تهيئة وكلاء بديهية بواجهات نماذج
- اختبار والتحقق في الوقت الفعلي
- مكتبة قوالب مع أنواع وكلاء مهيأة مسبقًا
- تخصيص سهل لخصائص وسلوكيات الوكيل
خصائص الوكيل
إنشاء الوكلاء
هناك طريقتان شائعتان لإنشاء الوكلاء في CrewAI: باستخدام تهيئة JSONC (الموصى بها للـ crews الجديدة) أو تعريفهم مباشرة في الكود.تهيئة JSONC (موصى بها)
المشاريع الجديدة التي تُنشأ عبرcrewai create crew <name> تستخدم تهيئة JSON-first. يُعرّف كل Agent في agents/<agent_name>.jsonc، ويحدد crew.jsonc أي Agents تدخل في الـ crew.
agents/researcher.jsonc
{placeholder} داخل role أو goal أو backstory. ضع القيم الافتراضية في inputs داخل crew.jsonc؛ وسيطلب crewai run أي قيم ناقصة. يمكن وضع حقول السلوك مثل verbose و allow_delegation و max_iter و memory و cache و planning_config في المستوى الأعلى أو داخل settings.
يدعم JSONC التعليقات والفواصل النهائية. إذا وُجد
agents/<name>.jsonc و agents/<name>.json معًا، يستخدم CrewAI ملف JSONC.تهيئة YAML الكلاسيكية
المشاريع الكلاسيكية التي تُنشأ عبرcrewai create crew <name> --classic تستخدم config/agents.yaml وفئة @CrewBase في crew.py.
تظل تهيئة YAML مدعومة للمشاريع الحالية المبنية بـ Python/YAML وللفِرق التي تفضل تعريف الوكلاء من خلال فئة @CrewBase.
بعد إنشاء مشروع كلاسيكي، انتقل إلى ملف src/<project_name>/config/agents.yaml وعدّل القالب ليتوافق مع متطلباتك.
ستُستبدل المتغيرات في ملفات YAML (مثل
{topic}) بقيم من مدخلاتك عند تشغيل الطاقم:Code
agents.yaml
CrewBase:
Code
يجب أن تتطابق الأسماء المستخدمة في ملفات YAML (
agents.yaml) مع أسماء
الطرق في كود Python.تعريف مباشر في الكود
يمكنك إنشاء الوكلاء مباشرة في الكود بإنشاء فئةAgent. إليك مثالًا شاملًا يوضح جميع المعاملات المتاحة:
Code
وكيل بحث أساسي
Code
وكيل تطوير الكود
Code
وكيل تحليل طويل المدى
Code
تفاصيل المعاملات
المعاملات الحرجة
roleوgoalوbackstoryمطلوبة وتشكّل سلوك الوكيلllmيحدد نموذج اللغة المستخدم (افتراضي: GPT-4 من OpenAI)
الذاكرة والسياق
memory: تفعيل للحفاظ على سجل المحادثةrespect_context_window: يمنع مشاكل حد الرموزknowledge_sources: إضافة قواعد معرفة خاصة بالمجال
التحكم في التنفيذ
max_iter: الحد الأقصى للمحاولات قبل تقديم أفضل إجابةmax_execution_time: المهلة بالثوانيmax_rpm: تحديد معدل استدعاءات APImax_retry_limit: إعادات المحاولة عند الخطأ
تنفيذ الكود
allow_code_execution(مهجور): كان يُمكّن تنفيذ الكود المدمج عبرCodeInterpreterTool.code_execution_mode(مهجور): كان يتحكم في وضع التنفيذ ("safe"لـ Docker،"unsafe"للتنفيذ المباشر).
الميزات المتقدمة
multimodal: تفعيل القدرات متعددة الوسائط لمعالجة النص والمحتوى المرئيreasoning: تمكين الوكيل من التأمل وإنشاء خطط قبل تنفيذ المهامinject_date: حقن التاريخ الحالي تلقائيًا في أوصاف المهام
القوالب
system_template: يحدد السلوك الأساسي للوكيلprompt_template: ينظم تنسيق الإدخالresponse_template: ينسّق استجابات الوكيل
عند استخدام القوالب المخصصة، تأكد من تعريف كل من
system_template و
prompt_template. response_template اختياري لكن يُوصى به
لتنسيق مخرجات متسق.أدوات الوكيل
يمكن تجهيز الوكلاء بأدوات متنوعة لتعزيز قدراتهم. يدعم CrewAI أدوات من: إليك كيفية إضافة أدوات لوكيل:Code
التفاعل المباشر مع الوكيل عبر kickoff()
يمكن استخدام الوكلاء مباشرة بدون المرور بمهمة أو سير عمل طاقم باستخدام طريقة kickoff(). يوفر هذا طريقة أبسط للتفاعل مع وكيل عندما لا تحتاج إلى إمكانيات تنسيق الطاقم الكاملة.
Code
اعتبارات مهمة وأفضل الممارسات
الأمان وتنفيذ الكود
تحسين الأداء
- استخدم
respect_context_window: trueلمنع مشاكل حد الرموز - عيّن
max_rpmمناسبًا لتجنب تحديد المعدل - فعّل
cache: trueلتحسين الأداء للمهام المتكررة - اضبط
max_iterوmax_retry_limitبناءً على تعقيد المهمة
إدارة الذاكرة والسياق
- استفد من
knowledge_sourcesللمعلومات الخاصة بالمجال - هيّئ
embedderعند استخدام نماذج تضمين مخصصة - استخدم القوالب المخصصة للتحكم الدقيق في سلوك الوكيل
التعاون بين الوكلاء
- فعّل
allow_delegation: trueعندما يحتاج الوكلاء للعمل معًا - استخدم
step_callbackلمراقبة وتسجيل تفاعلات الوكلاء - فكّر في استخدام نماذج LLM مختلفة لأغراض مختلفة
توافق النموذج
- عيّن
use_system_prompt: falseللنماذج القديمة التي لا تدعم رسائل النظام - تأكد من أن
llmالمختار يدعم الميزات التي تحتاجها
