CrewAICrewAI

الفصل الرابع : من سلسلة ” الذكاء الصناعي التعاوني CrewAI – دليل المطور العربي لبناء وكلاء ذكيين يعملون معًا ” .

تعلم كيفية إدارة الطواقم (Crews) في CrewAI لتنسيق عمل الوكلاء (Agents) والمهام (Tasks) معًا، وبناء أنظمة ذكاء صناعي تعاوني تعمل كفريق متكامل في بايثون.


ما هو الـ Crew؟

الـ Crew هو العقل المنسق الذي يجمع بين:

  • وكلاء الذكاء الصناعي (Agents)
  • والمهام التي ينفذونها (Tasks)

يمكن اعتباره مدير المشروع الذكي،
الذي يوزّع المهام، ويتابع التنفيذ، ويراقب التعاون بين الوكلاء حتى الوصول إلى الهدف النهائي.

💬 في البنية الكاملة لـ CrewAI:

  • Agent = شخص يؤدي دورًا محددًا
  • Task = العمل المطلوب
  • Crew = الفريق الذي يدير كل ذلك معًا

إنشاء طاقم (Crew) في Python

الصيغة الأساسية لإنشاء طاقم بسيطة جدًا:

from crewai import Crew

crew = Crew(
    agents=[list_of_agents],
    tasks=[list_of_tasks],
    verbose=True  # لعرض تفاصيل التنفيذ أثناء التشغيل
)

ثم لتشغيل الطاقم:

result = crew.run()
print(result)

مثال عملي مبسط

لننشئ طاقمًا بسيطًا مكوّنًا من وكيلين ومهمتين:

from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini")

# إنشاء الوكلاء
researcher = Agent(
    role="Researcher",
    goal="جمع معلومات حول CrewAI",
    backstory="خبير تقني يحب تحليل أدوات الذكاء الصناعي الحديثة.",
    llm=llm
)

writer = Agent(
    role="Writer",
    goal="صياغة مقال تقني واضح من نتائج البحث",
    backstory="كاتب تقني يشرح المفاهيم بأسلوب مبسط.",
    llm=llm
)

# إنشاء المهام
task1 = Task(description="ابحث عن مفهوم CrewAI وفوائده.", agent=researcher)
task2 = Task(description="اكتب ملخصًا تقنيًا بناءً على نتائج البحث السابقة.", agent=writer)

# إنشاء الطاقم
crew = Crew(agents=[researcher, writer], tasks=[task1, task2])

# تشغيل الطاقم
result = crew.run()
print(result)

ما يحدث هنا:

  1. يقوم الباحث بتنفيذ المهمة الأولى.
  2. ينتج ملخصًا.
  3. تنتقل النتيجة إلى الكاتب.
  4. يكتب الكاتب ملخصًا تقنيًا نهائيًا.

والنتيجة: إخراج منسق ومتناسق بفضل الذكاء الصناعي التعاوني CrewAI.


🧠 كيف يدير CrewAI التعاون بين الوكلاء؟

عندما تستدعي crew.run():

  • المكتبة تنشئ حلقة تفاعل ذكية بين الوكلاء.
  • تنتقل مخرجات كل مهمة إلى المهمة التالية تلقائيًا.
  • تحتفظ الذاكرة (Memory) بسياق العمل لتفادي تكرار المعلومات.

بذلك، يصبح كل وكيل واعيًا بما أنجزه زملاؤه،
كما لو كانوا في اجتماع عمل مستمر!


خيارات التحكم في التنفيذ

يمكنك تخصيص سلوك الطاقم أثناء التنفيذ عبر عدة خيارات داخل Crew():

المعاملالوظيفةالقيمة الافتراضية
agentsقائمة الوكلاء المشاركين في الطاقم[]
tasksقائمة المهام الموكلة إليهم[]
processنمط التشغيل (تتابعي Sequential أو متوازي Parallel)“sequential”
verboseعرض تفاصيل التنفيذ في الطرفيةFalse
memoryتفعيل ذاكرة الطاقم لتخزين النتائج السابقةNone

1. التنفيذ التتابعي Sequential

هو الوضع الافتراضي:
تُنفّذ المهام واحدة تلو الأخرى، ومخرجات كل مهمة تُغذي التالية.

crew = Crew(agents=[researcher, writer], tasks=[task1, task2], process="sequential")

2. التنفيذ المتوازي Parallel

لتنفيذ مهام متعددة في نفس الوقت (مثلاً عدة باحثين يعملون بالتوازي):

crew = Crew(agents=[researcher, writer], tasks=[task1, task2], process="parallel")

مفيد جدًا عند العمل على مشاريع تحليل بيانات ضخمة أو عمليات بحث متعددة المصادر.


الذاكرة في الطاقم (Crew Memory)

الذاكرة تسمح بحفظ نتائج المهمات السابقة ليتمكن الوكلاء من الرجوع إليها.
على سبيل المثال، يمكن لوكيل “المراجع” الاطلاع على ما كتبه “الكاتب”.

سيتم شرحها بعمق في الفصل الخامس،
لكن هنا لمحة سريعة:

crew = Crew(
    agents=[researcher, writer],
    tasks=[task1, task2],
    memory=True
)

هذا يجعل النظام يحتفظ بسياق الجلسة ويستفيد منه أثناء المهام القادمة.


مثال متقدم: ثلاثة وكلاء يعملون كفريق تحرير تقني

from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini")

researcher = Agent(
    role="Tech Researcher",
    goal="جمع أحدث المعلومات عن CrewAI",
    backstory="باحث تقني يحب الغوص في المستندات الرسمية.",
    llm=llm
)

writer = Agent(
    role="Tech Writer",
    goal="كتابة مقال تقني واضح ومبسط.",
    backstory="كاتب تقني ذو خبرة في تبسيط المفاهيم للمطورين.",
    llm=llm
)

editor = Agent(
    role="Editor",
    goal="مراجعة النص النهائي وتحسين الأسلوب.",
    backstory="محرر لغوي يهتم بجودة الأسلوب ودقته.",
    llm=llm
)

# المهام
task1 = Task(description="ابحث عن أهم مميزات مكتبة CrewAI.", agent=researcher)
task2 = Task(description="اكتب مقالًا تقنيًا بناءً على بحث الباحث.", agent=writer)
task3 = Task(description="راجع النص وحسّن اللغة والأسلوب.", agent=editor)

# الطاقم
crew = Crew(agents=[researcher, writer, editor], tasks=[task1, task2, task3], verbose=True)

# التنفيذ
result = crew.run()
print(result)

ما يحدث:

  • الباحث يجمع البيانات.
  • الكاتب ينشئ المسودة.
  • المحرر ينقّح النص ويعيد صياغته.
  • كل وكيل يعمل ضمن دوره، في تسلسل تعاوني ديناميكي.

نصائح لتصميم طاقم فعّال

  1. حدد أدوارًا واضحة لكل وكيل (لا تجعلهم متداخلين في المهام).
  2. احرص على التسلسل المنطقي بين المهام (ابحث → اكتب → راجع).
  3. استخدم الذاكرة للحفاظ على السياق بين المهام.
  4. جرّب تنفيذ Parallel عند وجود مهام مستقلة يمكن تسريعها بالتوازي.
  5. اجعل لكل وكيل شخصيته الخاصة عبر backstory لضمان تنوع الأساليب.

الخلاصة

الـ Crew هو قلب الذكاء الصناعي التعاوني في مكتبة CrewAI.
فهو الذي يحول مجموعة من الوكلاء والمهام إلى فريق ذكي منسجم قادر على الإنجاز الكامل دون إشراف يدوي.

من خلاله يمكنك بناء أنظمة متطورة تحاكي طريقة عمل فرق بشرية حقيقية:
باحث → كاتب → مراجع → منسق،
لكن هذه المرة، كلهم وكلاء ذكاء صناعي يعملون بتفاهم ذاتي داخل طاقم واحد.


🎓 في الفصل الخامس سنتناول:
🔗 الدمج مع نماذج OpenAI وLangChain وOllama
كيف تجعل وكلاء CrewAI يستخدمون نماذج الذكاء الصناعي المختلفة بسلاسة.



By احمد علي

مطور تطبيقات هواتف ذكية باستخدام Flutter، وصانع محتوى تقني يكتب عن الذكاء الاصطناعي والبرمجة وتطورات التكنولوجيا الحديثة. أسعى لتبسيط الأفكار المعقدة ومشاركة خبرتي مع المهتمين بالمجال.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *