التعاون
نظرة عامة
Section titled “نظرة عامة”يُمكّن التعاون في CrewAI الوكلاء من العمل معًا كفريق عن طريق تفويض المهام وطرح الأسئلة للاستفادة من خبرات بعضهم البعض. عندما يكون allow_delegation=True، يحصل الوكلاء تلقائيًا على أدوات تعاون قوية.
البدء السريع: تفعيل التعاون
Section titled “البدء السريع: تفعيل التعاون”from crewai import Agent, Crew, Task
# تفعيل التعاون للوكلاءresearcher = Agent( role="Research Specialist", goal="Conduct thorough research on any topic", backstory="Expert researcher with access to various sources", allow_delegation=True, # الإعداد الرئيسي للتعاون verbose=True)
writer = Agent( role="Content Writer", goal="Create engaging content based on research", backstory="Skilled writer who transforms research into compelling content", allow_delegation=True, # يُمكّن طرح الأسئلة على الوكلاء الآخرين verbose=True)
# يمكن للوكلاء الآن التعاون تلقائيًاcrew = Crew( agents=[researcher, writer], tasks=[...], verbose=True)كيف يعمل تعاون الوكلاء
Section titled “كيف يعمل تعاون الوكلاء”عندما يكون allow_delegation=True، يوفر CrewAI تلقائيًا للوكلاء أداتين قويتين:
1. أداة تفويض العمل
Section titled “1. أداة تفويض العمل”تسمح للوكلاء بتعيين مهام لزملاء الفريق ذوي الخبرة المحددة.
# يحصل الوكيل تلقائيًا على هذه الأداة:# Delegate work to coworker(task: str, context: str, coworker: str)2. أداة طرح الأسئلة
Section titled “2. أداة طرح الأسئلة”تُمكّن الوكلاء من طرح أسئلة محددة لجمع المعلومات من الزملاء.
# يحصل الوكيل تلقائيًا على هذه الأداة:# Ask question to coworker(question: str, context: str, coworker: str)التعاون في الممارسة
Section titled “التعاون في الممارسة”إليك مثالًا كاملًا يوضح تعاون الوكلاء في مهمة إنشاء المحتوى:
from crewai import Agent, Crew, Task, Process
# إنشاء وكلاء تعاونيينresearcher = Agent( role="Research Specialist", goal="Find accurate, up-to-date information on any topic", backstory="""You're a meticulous researcher with expertise in finding reliable sources and fact-checking information across various domains.""", allow_delegation=True, verbose=True)
writer = Agent( role="Content Writer", goal="Create engaging, well-structured content", backstory="""You're a skilled content writer who excels at transforming research into compelling, readable content for different audiences.""", allow_delegation=True, verbose=True)
editor = Agent( role="Content Editor", goal="Ensure content quality and consistency", backstory="""You're an experienced editor with an eye for detail, ensuring content meets high standards for clarity and accuracy.""", allow_delegation=True, verbose=True)
# إنشاء مهمة تشجع التعاونarticle_task = Task( description="""Write a comprehensive 1000-word article about 'The Future of AI in Healthcare'.
The article should include: - Current AI applications in healthcare - Emerging trends and technologies - Potential challenges and ethical considerations - Expert predictions for the next 5 years
Collaborate with your teammates to ensure accuracy and quality.""", expected_output="A well-researched, engaging 1000-word article with proper structure and citations", agent=writer # الكاتب يقود، لكن يمكنه تفويض البحث إلى الباحث)
# إنشاء طاقم تعاونيcrew = Crew( agents=[researcher, writer, editor], tasks=[article_task], process=Process.sequential, verbose=True)
result = crew.kickoff()أنماط التعاون
Section titled “أنماط التعاون”النمط 1: بحث ← كتابة ← تحرير
Section titled “النمط 1: بحث ← كتابة ← تحرير”research_task = Task( description="Research the latest developments in quantum computing", expected_output="Comprehensive research summary with key findings and sources", agent=researcher)
writing_task = Task( description="Write an article based on the research findings", expected_output="Engaging 800-word article about quantum computing", agent=writer, context=[research_task] # يحصل على مخرجات البحث كسياق)
editing_task = Task( description="Edit and polish the article for publication", expected_output="Publication-ready article with improved clarity and flow", agent=editor, context=[writing_task] # يحصل على مسودة المقال كسياق)النمط 2: مهمة واحدة تعاونية
Section titled “النمط 2: مهمة واحدة تعاونية”collaborative_task = Task( description="""Create a marketing strategy for a new AI product.
Writer: Focus on messaging and content strategy Researcher: Provide market analysis and competitor insights
Work together to create a comprehensive strategy.""", expected_output="Complete marketing strategy with research backing", agent=writer # الوكيل القائد، لكن يمكنه التفويض إلى الباحث)التعاون الهرمي
Section titled “التعاون الهرمي”للمشاريع المعقدة، استخدم عملية هرمية مع وكيل مدير:
from crewai import Agent, Crew, Task, Process
# وكيل المدير ينسق الفريقmanager = Agent( role="Project Manager", goal="Coordinate team efforts and ensure project success", backstory="Experienced project manager skilled at delegation and quality control", allow_delegation=True, verbose=True)
# وكلاء متخصصونresearcher = Agent( role="Researcher", goal="Provide accurate research and analysis", backstory="Expert researcher with deep analytical skills", allow_delegation=False, # المتخصصون يركزون على خبرتهم verbose=True)
writer = Agent( role="Writer", goal="Create compelling content", backstory="Skilled writer who creates engaging content", allow_delegation=False, verbose=True)
# مهمة يقودها المديرproject_task = Task( description="Create a comprehensive market analysis report with recommendations", expected_output="Executive summary, detailed analysis, and strategic recommendations", agent=manager # المدير سيفوّض إلى المتخصصين)
# طاقم هرميcrew = Crew( agents=[manager, researcher, writer], tasks=[project_task], process=Process.hierarchical, # المدير ينسق كل شيء manager_llm="gpt-4o", # تحديد LLM للمدير verbose=True)أفضل ممارسات التعاون
Section titled “أفضل ممارسات التعاون”1. تحديد الأدوار بوضوح
Section titled “1. تحديد الأدوار بوضوح”# جيد: أدوار محددة ومتكاملةresearcher = Agent(role="Market Research Analyst", ...)writer = Agent(role="Technical Content Writer", ...)
# تجنب: أدوار متداخلة أو غامضةagent1 = Agent(role="General Assistant", ...)agent2 = Agent(role="Helper", ...)2. تفعيل التفويض الاستراتيجي
Section titled “2. تفعيل التفويض الاستراتيجي”# فعّل التفويض للمنسقين والعامينlead_agent = Agent( role="Content Lead", allow_delegation=True, # يمكنه التفويض إلى المتخصصين ...)
# عطّل للمتخصصين المركّزين (اختياري)specialist_agent = Agent( role="Data Analyst", allow_delegation=False, # يركز على الخبرة الأساسية ...)3. مشاركة السياق
Section titled “3. مشاركة السياق”# استخدم معامل context لاعتماديات المهامwriting_task = Task( description="Write article based on research", agent=writer, context=[research_task], # يشارك نتائج البحث ...)4. أوصاف المهام الواضحة
Section titled “4. أوصاف المهام الواضحة”# أوصاف محددة وقابلة للتنفيذTask( description="""Research competitors in the AI chatbot space. Focus on: pricing models, key features, target markets. Provide data in a structured format.""", ...)
# تجنب: أوصاف غامضة لا توجه التعاونTask(description="Do some research about chatbots", ...)استكشاف أخطاء التعاون وإصلاحها
Section titled “استكشاف أخطاء التعاون وإصلاحها”المشكلة: الوكلاء لا يتعاونون
Section titled “المشكلة: الوكلاء لا يتعاونون”الأعراض: يعمل الوكلاء بمعزل، لا يحدث تفويض
# الحل: تأكد من تفعيل التفويضagent = Agent( role="...", allow_delegation=True, # هذا مطلوب! ...)المشكلة: كثرة الذهاب والإياب
Section titled “المشكلة: كثرة الذهاب والإياب”الأعراض: يطرح الوكلاء أسئلة مفرطة، تقدم بطيء
# الحل: وفّر سياقًا أفضل وأدوارًا محددةTask( description="""Write a technical blog post about machine learning.
Context: Target audience is software developers with basic ML knowledge. Length: 1200 words Include: code examples, practical applications, best practices
If you need specific technical details, delegate research to the researcher.""", ...)المشكلة: حلقات التفويض
Section titled “المشكلة: حلقات التفويض”الأعراض: يفوّض الوكلاء ذهابًا وإيابًا بلا نهاية
# الحل: تسلسل هرمي واضح ومسؤولياتmanager = Agent(role="Manager", allow_delegation=True)specialist1 = Agent(role="Specialist A", allow_delegation=False) # لا إعادة تفويضspecialist2 = Agent(role="Specialist B", allow_delegation=False)ميزات التعاون المتقدمة
Section titled “ميزات التعاون المتقدمة”قواعد التعاون المخصصة
Section titled “قواعد التعاون المخصصة”# تعيين إرشادات تعاون محددة في خلفية الوكيلagent = Agent( role="Senior Developer", backstory="""You lead development projects and coordinate with team members.
Collaboration guidelines: - Delegate research tasks to the Research Analyst - Ask the Designer for UI/UX guidance - Consult the QA Engineer for testing strategies - Only escalate blocking issues to the Project Manager""", allow_delegation=True)مراقبة التعاون
Section titled “مراقبة التعاون”def track_collaboration(output): """تتبع أنماط التعاون""" if "Delegate work to coworker" in output.raw: print("Delegation occurred") if "Ask question to coworker" in output.raw: print("Question asked")
crew = Crew( agents=[...], tasks=[...], step_callback=track_collaboration, # مراقبة التعاون verbose=True)الذاكرة والتعلم
Section titled “الذاكرة والتعلم”تمكين الوكلاء من تذكر التعاونات السابقة:
agent = Agent( role="Content Lead", memory=True, # يتذكر التفاعلات السابقة allow_delegation=True, verbose=True)مع تفعيل الذاكرة، يتعلم الوكلاء من التعاونات السابقة ويحسّنون قرارات التفويض بمرور الوقت.
الخطوات التالية
Section titled “الخطوات التالية”- جرّب الأمثلة: ابدأ بمثال التعاون الأساسي
- جرّب أدوارًا مختلفة: اختبر تركيبات أدوار وكلاء مختلفة
- راقب التفاعلات: استخدم
verbose=Trueلرؤية التعاون في العمل - حسّن أوصاف المهام: المهام الواضحة تؤدي إلى تعاون أفضل
- وسّع النطاق: جرّب العمليات الهرمية للمشاريع المعقدة
يحوّل التعاون وكلاء الذكاء الاصطناعي الفرديين إلى فرق قوية يمكنها معالجة التحديات المعقدة ومتعددة الأوجه معًا.