الانتقال إلى المحتوى الرئيسي

نظرة عامة على الوكيل

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

خصائص الوكيل

إنشاء الوكلاء

هناك طريقتان لإنشاء الوكلاء في CrewAI: باستخدام تهيئة YAML (موصى بها) أو تعريفهم مباشرة في الكود.

تهيئة YAML (موصى بها)

توفر تهيئة YAML طريقة أنظف وأكثر قابلية للصيانة لتعريف الوكلاء. نوصي بشدة باستخدام هذا النهج في مشاريع CrewAI. بعد إنشاء مشروع CrewAI كما هو موضح في قسم التثبيت، انتقل إلى ملف src/latest_ai_development/config/agents.yaml وعدّل القالب ليتوافق مع متطلباتك.
ستُستبدل المتغيرات في ملفات YAML (مثل {topic}) بقيم من مدخلاتك عند تشغيل الطاقم:
Code
إليك مثالًا على كيفية تهيئة الوكلاء باستخدام YAML:
agents.yaml
لاستخدام تهيئة 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: تحديد معدل استدعاءات API
  • max_retry_limit: إعادات المحاولة عند الخطأ

تنفيذ الكود

  • allow_code_execution: يجب أن يكون True لتشغيل الكود
  • code_execution_mode:
    • "safe": يستخدم Docker (موصى به للإنتاج)
    • "unsafe": تنفيذ مباشر (استخدم فقط في بيئات موثوقة)
يشغّل هذا صورة Docker افتراضية. إذا أردت تهيئة صورة Docker، راجع أداة Code Interpreter في قسم الأدوات. أضف أداة مفسر الكود كأداة في معامل أداة الوكيل.

الميزات المتقدمة

  • multimodal: تفعيل القدرات متعددة الوسائط لمعالجة النص والمحتوى المرئي
  • reasoning: تمكين الوكيل من التأمل وإنشاء خطط قبل تنفيذ المهام
  • inject_date: حقن التاريخ الحالي تلقائيًا في أوصاف المهام

القوالب

  • system_template: يحدد السلوك الأساسي للوكيل
  • prompt_template: ينظم تنسيق الإدخال
  • response_template: ينسّق استجابات الوكيل
عند استخدام القوالب المخصصة، تأكد من تعريف كل من system_template و prompt_template. response_template اختياري لكن يُوصى به لتنسيق مخرجات متسق.

أدوات الوكيل

يمكن تجهيز الوكلاء بأدوات متنوعة لتعزيز قدراتهم. يدعم CrewAI أدوات من: إليك كيفية إضافة أدوات لوكيل:
Code

التفاعل المباشر مع الوكيل عبر kickoff()

يمكن استخدام الوكلاء مباشرة بدون المرور بمهمة أو سير عمل طاقم باستخدام طريقة kickoff(). يوفر هذا طريقة أبسط للتفاعل مع وكيل عندما لا تحتاج إلى إمكانيات تنسيق الطاقم الكاملة.
Code

اعتبارات مهمة وأفضل الممارسات

الأمان وتنفيذ الكود

  • عند استخدام allow_code_execution، كن حذرًا مع مدخلات المستخدم وتحقق منها دائمًا
  • استخدم code_execution_mode: "safe" (Docker) في بيئات الإنتاج
  • فكّر في تعيين حدود max_execution_time مناسبة لمنع الحلقات اللانهائية

تحسين الأداء

  • استخدم 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 المختار يدعم الميزات التي تحتاجها