CrewAI : إطار عمل متطور لتنسيق لعب الأدوار، ووكلاء الذكاء الاصطناعي المستقلين. من خلال تعزيز الذكاء التعاوني، تعمل CrewAI على تمكين الوكلاء من العمل معًا بسلاسة ومعالجة المهام المعقدة.
الصفحة الرئيسية | التوثيق | الدردشة مع المستندات | أمثلة | الخطاب
لماذا كرو آي؟
ابدء
الميزات الرئيسية
أمثلة
برنامج تعليمي سريع
كتابة الأوصاف الوظيفية
مخطط الرحلة
تحليل الأسهم
توصيل طاقمك بنموذج
كيف يقارن CrewAI
مساهمة
القياس عن بعد
رخصة
إن قوة التعاون في مجال الذكاء الاصطناعي لديها الكثير لتقدمه. تم تصميم CrewAI لتمكين وكلاء الذكاء الاصطناعي من تولي الأدوار ومشاركة الأهداف والعمل في وحدة متماسكة - يشبه إلى حد كبير طاقمًا مجهزًا جيدًا. سواء كنت تقوم ببناء منصة مساعدة ذكية، أو مجموعة خدمة عملاء آلية، أو فريق بحث متعدد الوكلاء، فإن CrewAI يوفر العمود الفقري للتفاعلات المتطورة متعددة الوكلاء.
لبدء استخدام CrewAI، اتبع هذه الخطوات البسيطة:
تأكد من تثبيت Python >=3.10 <=3.13 على نظامك. يستخدم CrewAI الأشعة فوق البنفسجية لإدارة التبعية ومعالجة الحزم، مما يوفر تجربة إعداد وتنفيذ سلسة.
أولاً، قم بتثبيت CrewAI:
نقطة تثبيت Creaii
إذا كنت تريد تثبيت حزمة 'crewai' مع ميزاتها الاختيارية التي تتضمن أدوات إضافية للوكلاء، فيمكنك القيام بذلك باستخدام الأمر التالي:
تثبيت النقطة "crewai[tools]"
يقوم الأمر أعلاه بتثبيت الحزمة الأساسية ويضيف أيضًا مكونات إضافية تتطلب المزيد من التبعيات لتعمل.
لإنشاء مشروع CrewAI جديد، قم بتشغيل أمر CLI (واجهة سطر الأوامر) التالي:
Creauai قم بإنشاء طاقم <project_name>
يقوم هذا الأمر بإنشاء مجلد مشروع جديد بالبنية التالية:
my_project/ ├── .gitignore ├── pyproject.toml ├── README.md ├── .env └── src/ └── my_project/ ├── __init__.py ├── main.py ├── crew.py ├── tools/ │ ├── custom_tool.py │ └── __init__.py └── config/ ├── agents.yaml └── tasks.yaml
يمكنك الآن البدء في تطوير طاقمك عن طريق تحرير الملفات الموجودة في المجلد src/my_project
. الملف main.py
هو نقطة الدخول للمشروع، وملف crew.py
هو المكان الذي تحدد فيه طاقمك، وملف agents.yaml
هو المكان الذي تحدد فيه وكلائك، وملف tasks.yaml
هو المكان الذي تحدد فيه مهامك.
قم بتعديل src/my_project/config/agents.yaml
لتحديد وكلائك.
قم بتعديل src/my_project/config/tasks.yaml
لتحديد مهامك.
قم بتعديل src/my_project/crew.py
لإضافة المنطق والأدوات والوسائط المحددة الخاصة بك.
قم بتعديل src/my_project/main.py
لإضافة مدخلات مخصصة لوكلاءك ومهامك.
أضف متغيرات البيئة الخاصة بك إلى ملف .env
.
قم بتكوين طاقمك:
Creauai ينشئ طاقمًا بأحدث التطورات في الذكاء الاصطناعي
قم بتعديل الملفات حسب الحاجة لتناسب حالة الاستخدام الخاصة بك:
وكلاء.yaml
# src/my_project/config/agents.yamlresearcher: الدور: > {topic} هدف باحث البيانات الأول: > اكتشاف أحدث التطورات في الخلفية الدرامية لـ {topic}: > أنت باحث متمرس ولديك موهبة للكشف عن أحدث التطورات في {عنوان}. معروف بقدرتك على العثور على المعلومات الأكثر صلة وتقديمها بطريقة واضحة وموجزة. Reporting_analyst: الدور: > {topic} هدف محلل التقارير: > إنشاء تقارير مفصلة بناءً على تحليل بيانات {topic} والخلفية الدرامية لنتائج البحث: > أنت محلل دقيق ولديك اهتمام شديد بالتفاصيل. أنت معروف بقدرتك على تحويل البيانات المعقدة إلى تقارير واضحة وموجزة، مما يسهل على الآخرين فهم المعلومات التي تقدمها والتصرف بناءً عليها.
المهام.yaml
# src/my_project/config/tasks.yamlresearch_task: الوصف: > قم بإجراء بحث شامل حول {topic} تأكد من العثور على أي معلومات مثيرة للاهتمام وذات صلة نظرًا لأن العام الحالي هو 2024. متوقع_الإخراج: > قائمة تحتوي على 10 نقاط من أكثرها المعلومات ذات الصلة بعامل {topic}: reporterreporting_task: الوصف: > قم بمراجعة السياق الذي حصلت عليه وقم بتوسيع كل موضوع إلى قسم كامل للتقرير. تأكد من أن التقرير مفصل ويحتوي على جميع المعلومات ذات الصلة. المتوقع_الإخراج: > تقارير كاملة تحتوي على الموضوعات الرئيسية، كل منها يحتوي على قسم كامل من المعلومات. تم تنسيقه كتخفيض بدون وكيل ''``': Reporting_analyst ملف الإخراج: report.md
Crew.py
# src/my_project/crew.pyfrom Crewai import Agent, Crew, Process, Taskfrom Crewai.project import CrewBase, Agent, Crew, Taskfrom Crewai_tools import SerperDevTool@CrewBaseclass LastAiDevelopmentCrew(): """LatestAiDevelopment طاقم"""@agentdef الباحث(self) ) -> الوكيل: وكيل الإرجاع( config=self.agents_config['researcher'],verbose=True,tools=[SerperDevTool()] ) @agentdef report_analyst(self) -> الوكيل: return Agent( config=self.agents_config['reporting_analyst'],verbose=True ) @taskdef Research_task(self) -> المهمة: إرجاع المهمة( config=self.tasks_config['research_task']، ) @taskdef report_task(self) -> المهمة: إرجاع المهمة( config=self.tasks_config['reporting_task'],output_file='report.md' ) @crewdef Crew(self) -> Crew: """إنشاء طاقم LastAiDevelopment"""return Crew(وكلاء=self.agents, # تم إنشاؤه تلقائيًا بواسطة @agent Decoratortasks=self.tasks, # تم إنشاؤه تلقائيًا بواسطة @task Decoratorprocess=Process.sequential,verbose=صحيح, )
main.py
#!/usr/bin/env python# src/my_project/main.pyimport sysfrom الأحدث_ai_development.crew import LastAiDevelopmentCrewdef run():""" تشغيل الطاقم. """inputs = {'topic': 'AI Agents'}LatestAiDevelopmentCrew ().crew().kickoff(المدخلات=المدخلات)
قبل تشغيل طاقمك، تأكد من تعيين المفاتيح التالية كمتغيرات بيئة في ملف .env
الخاص بك:
مفتاح OpenAI API (أو مفتاح LLM API آخر): OPENAI_API_KEY=sk-...
مفتاح Serper.dev API: SERPER_API_KEY=YOUR_KEY_HERE
قم بقفل التبعيات وتثبيتها باستخدام أمر CLI ولكن أولاً، انتقل إلى دليل المشروع الخاص بك:
القرص المضغوط my_project تثبيت كرواي (اختياري)
لتشغيل طاقمك، قم بتنفيذ الأمر التالي في جذر مشروعك:
تشغيل كرواي
أو
بيثون src/my_project/main.py
إذا حدث خطأ بسبب استخدام الشعر، يرجى تشغيل الأمر التالي لتحديث حزمة Creueai الخاصة بك:
تحديث كرواي
يجب أن تشاهد الإخراج في وحدة التحكم ويجب إنشاء ملف report.md
في جذر مشروعك مع التقرير النهائي الكامل.
بالإضافة إلى العملية التسلسلية، يمكنك استخدام العملية الهرمية، التي تقوم تلقائيًا بتعيين مدير للطاقم المحدد لتنسيق تخطيط المهام وتنفيذها بشكل صحيح من خلال التفويض والتحقق من صحة النتائج. رؤية المزيد عن العمليات هنا.
تصميم الوكيل القائم على الدور : تخصيص الوكلاء بأدوار وأهداف وأدوات محددة.
التفويض المستقل بين الوكلاء : يمكن للوكلاء تفويض المهام بشكل مستقل والاستفسار فيما بينهم، مما يعزز كفاءة حل المشكلات.
إدارة المهام المرنة : تحديد المهام باستخدام أدوات قابلة للتخصيص وتعيينها للوكلاء ديناميكيًا.
العمليات الموجهة : يدعم حاليًا تنفيذ المهام sequential
والعمليات hierarchical
فقط، ولكن يتم العمل على عمليات أكثر تعقيدًا مثل التوافقية والمستقلة.
حفظ الإخراج كملف : احفظ مخرجات المهام الفردية كملف، حتى تتمكن من استخدامه لاحقًا.
تحليل الإخراج كـ Pydantic أو Json : تحليل مخرجات المهام الفردية كنموذج Pydantic أو كـ Json إذا كنت تريد ذلك.
يعمل مع النماذج مفتوحة المصدر : قم بتشغيل طاقمك باستخدام Open AI أو النماذج مفتوحة المصدر، راجع صفحة Connect CrewAI إلى LLMs للحصول على تفاصيل حول تكوين اتصالات وكلائك بالنماذج، حتى تلك التي تعمل محليًا!
يمكنك اختبار أمثلة مختلفة من الحياة الواقعية لطواقم الذكاء الاصطناعي في CrewAI-examples repo:
مولد الصفحة المقصودة
وجود مدخلات بشرية في التنفيذ
مخطط الرحلة
تحليل الأسهم
تحقق من الكود الخاص بهذا المثال أو شاهد الفيديو أدناه:
تحقق من الكود الخاص بهذا المثال أو شاهد الفيديو أدناه:
تحقق من الكود الخاص بهذا المثال أو شاهد الفيديو أدناه:
يدعم CrewAI استخدام LLMs المختلفة من خلال مجموعة متنوعة من خيارات الاتصال. افتراضيًا، سيستخدم وكلاؤك واجهة برمجة تطبيقات OpenAI عند الاستعلام عن النموذج. ومع ذلك، هناك عدة طرق أخرى للسماح لعملائك بالاتصال بالنماذج. على سبيل المثال، يمكنك تكوين وكلائك لاستخدام نموذج محلي عبر أداة Ollama.
يرجى الرجوع إلى صفحة Connect CrewAI to LLMs للحصول على تفاصيل حول تكوين اتصالات وكلائك بالنماذج.
ميزة CrewAI : تم تصميم CrewAI مع وضع الإنتاج في الاعتبار. فهو يوفر مرونة وكلاء المحادثة في Autogen ونهج العملية المنظم لـ ChatDev، ولكن بدون الجمود. تم تصميم عمليات CrewAI لتكون ديناميكية وقابلة للتكيف، وتتلاءم بسلاسة مع سير عمل التطوير والإنتاج.
Autogen : في حين أن Autogen يقوم بعمل جيد في إنشاء وكلاء محادثة قادرين على العمل معًا، إلا أنه يفتقر إلى مفهوم متأصل للعملية. في Autogen، يتطلب تنسيق تفاعلات الوكلاء برمجة إضافية، والتي يمكن أن تصبح معقدة ومرهقة مع نمو حجم المهام.
ChatDev : قدم ChatDev فكرة العمليات إلى عالم وكلاء الذكاء الاصطناعي، لكن تنفيذها صارم تمامًا. التخصيصات في ChatDev محدودة وغير موجهة نحو بيئات الإنتاج، مما قد يعيق قابلية التوسع والمرونة في تطبيقات العالم الحقيقي.
CrewAI مفتوح المصدر ونحن نرحب بالمساهمات. إذا كنت تريد المساهمة، من فضلك:
شوكة المستودع.
أنشئ فرعًا جديدًا لميزتك.
أضف الميزة أو التحسين الخاص بك.
إرسال طلب سحب.
نحن نقدر مدخلاتك!
قفل للأشعة فوق البنفسجية مزامنة الأشعة فوق البنفسجية
الأشعة فوق البنفسجية فينف
التثبيت المسبق
الأشعة فوق البنفسجية تشغيل pytest .
uvx mypy
بناء الأشعة فوق البنفسجية
تثبيت النقطة dist/*.tar.gz
يستخدم CrewAI القياس عن بعد المجهول لجمع بيانات الاستخدام لغرض رئيسي وهو مساعدتنا على تحسين المكتبة من خلال تركيز جهودنا على الميزات وعمليات التكامل والأدوات الأكثر استخدامًا.
من المهم أن نفهم أنه لا يتم جمع أي بيانات فيما يتعلق بالمطالبات، أو أوصاف المهام، أو الخلفيات الدرامية للوكلاء أو أهدافهم، أو استخدام الأدوات، أو استدعاءات واجهة برمجة التطبيقات (API)، أو الاستجابات، أو أي بيانات تتم معالجتها بواسطة الوكلاء، أو الأسرار ومتغيرات البيئة، باستثناء الشروط المذكورة . عند تمكين ميزة share_crew
، يتم جمع البيانات التفصيلية بما في ذلك أوصاف المهام والخلفيات الدرامية للوكلاء أو الأهداف والسمات المحددة الأخرى لتوفير رؤى أعمق مع احترام خصوصية المستخدم. نحن لا نقدم طريقة لتعطيله الآن، ولكننا سنفعل ذلك في المستقبل.
البيانات التي تم جمعها تشمل:
نسخة من CrewAI
حتى نتمكن من فهم عدد المستخدمين الذين يستخدمون أحدث إصدار
نسخة بايثون
حتى نتمكن من تحديد الإصدارات التي يجب دعمها بشكل أفضل
نظام التشغيل العام (على سبيل المثال عدد وحدات المعالجة المركزية، macOS/Windows/Linux)
لذلك نحن نعرف نظام التشغيل الذي يجب أن نركز عليه وما إذا كان بإمكاننا إنشاء ميزات محددة مرتبطة بنظام التشغيل
عدد الوكلاء والمهام في الطاقم
لذلك نتأكد من أننا نختبر داخليًا باستخدام حالات استخدام مماثلة ونقوم بتثقيف الأشخاص حول أفضل الممارسات
يتم استخدام عملية الطاقم
فهم أين يجب أن نركز جهودنا
إذا كان الوكلاء يستخدمون الذاكرة أو يسمحون بالتفويض
افهم ما إذا كنا قد قمنا بتحسين الميزات أو ربما قمنا بإسقاطها
إذا تم تنفيذ المهام بالتوازي أو بالتسلسل
فهم ما إذا كان ينبغي لنا التركيز أكثر على التنفيذ الموازي
نموذج اللغة المستخدم
تحسين الدعم لمعظم اللغات المستخدمة
أدوار الوكلاء في الطاقم
فهم حالات الاستخدام عالية المستوى حتى نتمكن من إنشاء أدوات وعمليات تكامل وأمثلة أفضل حول هذا الموضوع
أسماء الأدوات المتاحة
تعرف على الأدوات المتاحة للعامة، أي منها يتم استخدامها أكثر حتى نتمكن من تحسينها
يمكن للمستخدمين الاشتراك في المزيد من القياس عن بعد، ومشاركة بيانات القياس عن بعد الكاملة عن طريق تعيين سمة share_crew
على True
على أطقمهم. يؤدي تمكين share_crew
إلى جمع بيانات مفصلة عن الطاقم وتنفيذ المهام، بما في ذلك goal
backstory
context
output
المهام. يتيح ذلك الحصول على نظرة أعمق لأنماط الاستخدام مع احترام اختيار المستخدم للمشاركة.
تم إصدار CrewAI بموجب ترخيص MIT.
ج: CrewAI هو إطار عمل متطور لتنسيق لعب الأدوار ووكلاء الذكاء الاصطناعي المستقلين. فهو يمكّن الوكلاء من العمل معًا بسلاسة، ومعالجة المهام المعقدة من خلال الذكاء التعاوني.
ج: يمكنك تثبيت CrewAI باستخدام النقطة:
نقطة تثبيت Creaii
للحصول على أدوات إضافية، استخدم:
تثبيت النقطة "crewai[tools]"
ج: نعم، يدعم CrewAI العديد من برامج LLM، بما في ذلك النماذج المحلية. يمكنك تكوين وكلائك لاستخدام النماذج المحلية عبر أدوات مثل Ollama & LM Studio. تحقق من وثائق LLM Connections لمزيد من التفاصيل.
ج: تتضمن الميزات الرئيسية تصميم الوكيل القائم على الدور، والتفويض المستقل بين الوكلاء، وإدارة المهام المرنة، والتنفيذ القائم على العمليات، وحفظ المخرجات كملفات، والتوافق مع كل من النماذج مفتوحة المصدر والملكية.
ج: تم تصميم CrewAI مع وضع الإنتاج في الاعتبار، مما يوفر مرونة مماثلة لوكلاء المحادثة في Autogen والعمليات المنظمة مثل ChatDev، ولكن مع المزيد من القدرة على التكيف مع تطبيقات العالم الحقيقي.
ج: نعم، CrewAI مفتوح المصدر ويرحب بالمساهمات من المجتمع.
ج: يستخدم CrewAI القياس عن بعد المجهول لجمع بيانات الاستخدام لأغراض التحسين. لا يتم جمع أي بيانات حساسة (مثل المطالبات أو أوصاف المهام أو استدعاءات واجهة برمجة التطبيقات). يمكن للمستخدمين الاشتراك في مشاركة بيانات أكثر تفصيلاً عن طريق تعيين share_crew=True
على أطقمهم.
ج: يمكنك العثور على العديد من الأمثلة الواقعية في مستودع أمثلة CrewAI، بما في ذلك مخططي الرحلات وأدوات تحليل المخزون والمزيد.
ج: المساهمات هي موضع ترحيب! يمكنك تفرع المستودع وإنشاء فرع جديد لميزتك وإضافة التحسين وإرسال طلب سحب. تحقق من قسم المساهمة في الملف التمهيدي لمزيد من التفاصيل.