نظرة عامة
تدفقات CrewAI هي ميزة قوية مصممة لتبسيط إنشاء وإدارة سير عمل الذكاء الاصطناعي. تتيح التدفقات للمطورين دمج وتنسيق مهام البرمجة وفرق Crew بكفاءة، مما يوفر إطار عمل متين لبناء أتمتة ذكاء اصطناعي متطورة. تتيح لك التدفقات إنشاء سير عمل منظم يعتمد على الأحداث. فهي توفر طريقة سلسة لربط مهام متعددة وإدارة الحالة والتحكم في تدفق التنفيذ في تطبيقات الذكاء الاصطناعي الخاصة بك. باستخدام التدفقات، يمكنك بسهولة تصميم وتنفيذ عمليات متعددة الخطوات تستفيد من الإمكانيات الكاملة لـ CrewAI.- تبسيط إنشاء سير العمل: ربط فرق Crew والمهام المتعددة بسهولة لإنشاء سير عمل ذكاء اصطناعي معقد.
- إدارة الحالة: تجعل التدفقات إدارة ومشاركة الحالة بين المهام المختلفة في سير العمل أمرًا سهلًا للغاية.
- بنية تعتمد على الأحداث: مبنية على نموذج يعتمد على الأحداث، مما يتيح سير عمل ديناميكي وسريع الاستجابة.
- تحكم مرن في التدفق: تنفيذ المنطق الشرطي والحلقات والتفرع ضمن سير العمل.
البدء
لنقم بإنشاء تدفق بسيط حيث ستستخدم OpenAI لإنشاء مدينة عشوائية في مهمة واحدة ثم استخدام تلك المدينة لإنشاء حقيقة ممتعة في مهمة أخرى.Code

generate_city و generate_fun_fact. مهمة generate_city هي نقطة البداية للتدفق، ومهمة generate_fun_fact تستمع لمخرجات مهمة generate_city.
يتلقى كل مثيل من التدفق تلقائيًا معرّفًا فريدًا (UUID) في حالته، مما يساعد في تتبع وإدارة عمليات تنفيذ التدفق. يمكن للحالة أيضًا تخزين بيانات إضافية (مثل المدينة المولّدة والحقيقة الممتعة) التي تستمر طوال تنفيذ التدفق.
عند تشغيل التدفق، سيقوم بما يلي:
- توليد معرّف فريد لحالة التدفق
- توليد مدينة عشوائية وتخزينها في الحالة
- توليد حقيقة ممتعة عن تلك المدينة وتخزينها في الحالة
- طباعة النتائج في وحدة التحكم
.env لتخزين OPENAI_API_KEY الخاص بك. هذا المفتاح ضروري للمصادقة على طلبات OpenAI API.
@start()
يحدد المزخرف@start() نقاط الدخول للتدفق. يمكنك:
- تعريف عدة نقاط بداية غير مشروطة:
@start() - ربط البداية بدالة سابقة أو تسمية موجّه:
@start("method_or_label") - توفير شرط قابل للاستدعاء للتحكم في وقت تنفيذ البداية
@start() المستوفية للشروط ستُنفَّذ (غالبًا بالتوازي) عند بدء أو استئناف التدفق.
@listen()
يُستخدم المزخرف@listen() لتحديد دالة كمستمع لمخرجات مهمة أخرى في التدفق. ستُنفَّذ الدالة المزخرفة بـ @listen() عندما تُصدر المهمة المحددة مخرجاتها. يمكن للدالة الوصول إلى مخرجات المهمة التي تستمع إليها كمعامل.
الاستخدام
يمكن استخدام المزخرف@listen() بعدة طرق:
-
الاستماع لدالة بالاسم: يمكنك تمرير اسم الدالة التي تريد الاستماع إليها كسلسلة نصية. عند اكتمال تلك الدالة، سيتم تشغيل دالة المستمع.
Code
-
الاستماع لدالة مباشرة: يمكنك تمرير الدالة نفسها. عند اكتمال تلك الدالة، سيتم تشغيل دالة المستمع.
Code
مخرجات التدفق
الوصول إلى مخرجات التدفق والتعامل معها أمر أساسي لدمج سير عمل الذكاء الاصطناعي في التطبيقات أو الأنظمة الأكبر. توفر تدفقات CrewAI آليات مباشرة لاسترداد المخرجات النهائية والوصول إلى النتائج الوسيطة وإدارة الحالة العامة للتدفق.استرداد المخرجات النهائية
عند تشغيل تدفق، يتم تحديد المخرجات النهائية بواسطة آخر دالة تكتمل. تُعيد دالةkickoff() مخرجات هذه الدالة الأخيرة.
إليك كيفية الوصول إلى المخرجات النهائية:

second_method هي آخر دالة تكتمل، لذا ستكون مخرجاتها هي المخرجات النهائية للتدفق.
ستُعيد دالة kickoff() المخرجات النهائية، التي تُطبع بعد ذلك في وحدة التحكم. ستولّد دالة plot() ملف HTML الذي سيساعدك على فهم التدفق.
الوصول إلى الحالة وتحديثها
بالإضافة إلى استرداد المخرجات النهائية، يمكنك أيضًا الوصول إلى الحالة وتحديثها داخل التدفق. يمكن استخدام الحالة لتخزين ومشاركة البيانات بين الدوال المختلفة في التدفق. بعد تشغيل التدفق، يمكنك الوصول إلى الحالة لاسترداد أي معلومات تمت إضافتها أو تحديثها أثناء التنفيذ. إليك مثال على كيفية تحديث الحالة والوصول إليها:
first_method و second_method.
بعد تشغيل التدفق، يمكنك الوصول إلى الحالة النهائية لرؤية التحديثات التي أجرتها هذه الدوال.
من خلال ضمان إعادة مخرجات الدالة الأخيرة وتوفير الوصول إلى الحالة، تجعل تدفقات CrewAI من السهل دمج نتائج سير عمل الذكاء الاصطناعي في التطبيقات أو الأنظمة الأكبر،
مع الحفاظ على الوصول إلى الحالة طوال تنفيذ التدفق.
إدارة حالة التدفق
إدارة الحالة بفعالية أمر بالغ الأهمية لبناء سير عمل ذكاء اصطناعي موثوق وقابل للصيانة. توفر تدفقات CrewAI آليات قوية لإدارة الحالة غير المهيكلة والمهيكلة، مما يتيح للمطورين اختيار النهج الأنسب لاحتياجات تطبيقاتهم.إدارة الحالة غير المهيكلة
في إدارة الحالة غير المهيكلة، يتم تخزين جميع الحالات في خاصيةstate لفئة Flow.
يوفر هذا النهج مرونة، مما يمكّن المطورين من إضافة أو تعديل خصائص الحالة أثناء التشغيل دون تحديد مخطط صارم.
حتى مع الحالات غير المهيكلة، تولّد تدفقات CrewAI تلقائيًا معرّفًا فريدًا (UUID) لكل مثيل حالة وتحافظ عليه.
Code

id تلقائيًا والحفاظ عليه طوال تنفيذ التدفق. لا تحتاج إلى إدارته أو تعيينه يدويًا، وسيتم الحفاظ عليه حتى عند تحديث الحالة ببيانات جديدة.
النقاط الرئيسية:
- المرونة: يمكنك إضافة خصائص ديناميكيًا إلى
self.stateدون قيود محددة مسبقًا. - البساطة: مثالي لسير العمل البسيط حيث يكون هيكل الحالة بسيطًا أو متغيرًا بشكل كبير.
إدارة الحالة المهيكلة
تستفيد إدارة الحالة المهيكلة من مخططات محددة مسبقًا لضمان الاتساق وسلامة الأنواع عبر سير العمل. باستخدام نماذج مثلBaseModel من Pydantic، يمكن للمطورين تحديد الشكل الدقيق للحالة، مما يتيح تحققًا أفضل وإكمالًا تلقائيًا في بيئات التطوير.
تتلقى كل حالة في تدفقات CrewAI تلقائيًا معرّفًا فريدًا (UUID) للمساعدة في تتبع وإدارة مثيلات الحالة. يتم توليد هذا المعرّف وإدارته تلقائيًا بواسطة نظام التدفق.
Code

- مخطط محدد: يحدد
ExampleStateهيكل الحالة بوضوح، مما يعزز قابلية قراءة الكود وصيانته. - سلامة الأنواع: يضمن استخدام Pydantic التزام خصائص الحالة بالأنواع المحددة، مما يقلل من أخطاء وقت التشغيل.
- الإكمال التلقائي: يمكن لبيئات التطوير المتكاملة توفير إكمال تلقائي أفضل وفحص أخطاء بناءً على نموذج الحالة المحدد.
الاختيار بين إدارة الحالة غير المهيكلة والمهيكلة
-
استخدم إدارة الحالة غير المهيكلة عندما:
- يكون حالة سير العمل بسيطة أو ديناميكية للغاية.
- تكون المرونة أولوية على تعريفات الحالة الصارمة.
- يكون النماذج الأولية السريعة مطلوبة دون عبء تحديد المخططات.
-
استخدم إدارة الحالة المهيكلة عندما:
- يتطلب سير العمل هيكل حالة محدد جيدًا ومتسق.
- تكون سلامة الأنواع والتحقق مهمتين لموثوقية تطبيقك.
- تريد الاستفادة من ميزات بيئة التطوير المتكاملة مثل الإكمال التلقائي وفحص الأنواع لتجربة مطور أفضل.
استمرارية التدفق
يتيح مزخرف @persist الاستمرارية التلقائية للحالة في تدفقات CrewAI، مما يسمح لك بالحفاظ على حالة التدفق عبر عمليات إعادة التشغيل أو تنفيذات سير العمل المختلفة. يمكن تطبيق هذا المزخرف على مستوى الفئة أو مستوى الدالة، مما يوفر مرونة في كيفية إدارة استمرارية الحالة.الاستمرارية على مستوى الفئة
عند التطبيق على مستوى الفئة، يقوم مزخرف @persist باستمرارية حالات جميع دوال التدفق تلقائيًا:الاستمرارية على مستوى الدالة
للتحكم الأكثر دقة، يمكنك تطبيق @persist على دوال محددة:كيف تعمل
-
تعريف الحالة الفريد
- تتلقى كل حالة تدفق UUID فريد تلقائيًا
- يتم الحفاظ على المعرّف عبر تحديثات الحالة واستدعاءات الدوال
- يدعم كلًا من الحالات المهيكلة (Pydantic BaseModel) وغير المهيكلة (القاموس)
-
واجهة SQLite الافتراضية
- SQLiteFlowPersistence هي واجهة التخزين الافتراضية
- يتم حفظ الحالات تلقائيًا في قاعدة بيانات SQLite محلية
- معالجة أخطاء متينة تضمن رسائل واضحة في حالة فشل عمليات قاعدة البيانات
-
معالجة الأخطاء
- رسائل خطأ شاملة لعمليات قاعدة البيانات
- تحقق تلقائي من الحالة أثناء الحفظ والتحميل
- ملاحظات واضحة عند مواجهة مشاكل في عمليات الاستمرارية
اعتبارات مهمة
- أنواع الحالة: يتم دعم كل من الحالات المهيكلة (Pydantic BaseModel) وغير المهيكلة (القاموس)
- المعرّف التلقائي: يتم إضافة حقل
idتلقائيًا إذا لم يكن موجودًا - استعادة الحالة: يمكن للتدفقات الفاشلة أو المُعاد تشغيلها إعادة تحميل حالتها السابقة تلقائيًا
- التنفيذ المخصص: يمكنك توفير تنفيذ FlowPersistence الخاص بك لاحتياجات التخزين المتخصصة
المزايا التقنية
-
تحكم دقيق من خلال الوصول المنخفض المستوى
- وصول مباشر لعمليات الاستمرارية لحالات الاستخدام المتقدمة
- تحكم دقيق عبر مزخرفات الاستمرارية على مستوى الدوال
- قدرات مدمجة لفحص الحالة وتصحيح الأخطاء
- رؤية كاملة لتغييرات الحالة وعمليات الاستمرارية
-
موثوقية معززة
- استعادة تلقائية للحالة بعد أعطال النظام أو إعادة التشغيل
- تحديثات حالة قائمة على المعاملات لسلامة البيانات
- معالجة أخطاء شاملة مع رسائل خطأ واضحة
- تحقق متين أثناء عمليات حفظ وتحميل الحالة
-
بنية قابلة للتوسع
- واجهة استمرارية قابلة للتخصيص من خلال واجهة FlowPersistence
- دعم لحلول تخزين متخصصة تتجاوز SQLite
- متوافقة مع كل من الحالات المهيكلة (Pydantic) وغير المهيكلة (dict)
- تكامل سلس مع أنماط تدفق CrewAI الحالية
التحكم في التدفق
المنطق الشرطي: or
تتيح لك دالة or_ في التدفقات الاستماع لعدة دوال وتشغيل دالة المستمع عندما تُصدر أي من الدوال المحددة مخرجاتها.

logger بواسطة مخرجات إما start_method أو second_method.
تُستخدم دالة or_ للاستماع لعدة دوال وتشغيل دالة المستمع عندما تُصدر أي من الدوال المحددة مخرجاتها.
المنطق الشرطي: and
تتيح لك دالة and_ في التدفقات الاستماع لعدة دوال وتشغيل دالة المستمع فقط عندما تُصدر جميع الدوال المحددة مخرجاتها.

logger فقط عندما يُصدر كل من start_method و second_method مخرجاتهما.
تُستخدم دالة and_ للاستماع لعدة دوال وتشغيل دالة المستمع فقط عندما تُصدر جميع الدوال المحددة مخرجاتها.
الموجّه
يتيح لك مزخرف@router() في التدفقات تحديد منطق توجيه شرطي بناءً على مخرجات دالة.
يمكنك تحديد مسارات مختلفة بناءً على مخرجات الدالة، مما يتيح لك التحكم في تدفق التنفيذ ديناميكيًا.

start_method قيمة منطقية عشوائية وتعيّنها في الحالة.
تستخدم second_method مزخرف @router() لتحديد منطق توجيه شرطي بناءً على قيمة المنطقية.
إذا كانت القيمة True، تُعيد الدالة "success"، وإذا كانت False، تُعيد "failed".
تستمع third_method و fourth_method لمخرجات second_method وتُنفَّذ بناءً على القيمة المُعادة.
عند تشغيل هذا التدفق، ستتغير المخرجات بناءً على القيمة المنطقية العشوائية المولّدة بواسطة start_method.
الإنسان في الحلقة (التغذية الراجعة البشرية)
يتطلب مزخرف
@human_feedback CrewAI الإصدار 1.8.0 أو أعلى.@human_feedback سير عمل يتضمن تدخلًا بشريًا من خلال إيقاف تنفيذ التدفق مؤقتًا لجمع تغذية راجعة من إنسان. هذا مفيد لبوابات الموافقة ومراجعة الجودة ونقاط القرار التي تتطلب حكمًا بشريًا.
Code
emit، يتم تفسير التغذية الراجعة الحرة للإنسان بواسطة LLM وتُختصر إلى إحدى النتائج المحددة، والتي تُشغل بعد ذلك مزخرف @listen المقابل.
يمكنك أيضًا استخدام @human_feedback دون توجيه لجمع التغذية الراجعة ببساطة:
Code
self.last_human_feedback (الأحدث) أو self.human_feedback_history (جميع التغذيات الراجعة كقائمة).
للحصول على دليل كامل حول التغذية الراجعة البشرية في التدفقات، بما في ذلك التغذية الراجعة غير المتزامنة/غير الحاجبة مع مزودين مخصصين (Slack، webhooks، إلخ)، انظر التغذية الراجعة البشرية في التدفقات.
إضافة Agents إلى التدفقات
يمكن دمج Agents بسلاسة في تدفقاتك، مما يوفر بديلًا خفيف الوزن لفرق Crew الكاملة عندما تحتاج إلى تنفيذ مهام أبسط وأكثر تركيزًا. إليك مثال على كيفية استخدام Agent ضمن تدفق لإجراء أبحاث السوق:
-
المخرجات المهيكلة: استخدام نماذج Pydantic لتحديد تنسيق المخرجات المتوقع (
MarketAnalysis) يضمن سلامة الأنواع والبيانات المهيكلة في جميع أنحاء التدفق. -
إدارة الحالة: تحافظ حالة التدفق (
MarketResearchState) على السياق بين الخطوات وتخزّن كلًا من المدخلات والمخرجات. -
تكامل الأدوات: يمكن لـ Agents استخدام أدوات (مثل
WebsiteSearchTool) لتعزيز قدراتهم.
إضافة فرق Crew إلى التدفقات
إنشاء تدفق مع فرق Crew متعددة في CrewAI أمر مباشر. يمكنك إنشاء مشروع CrewAI جديد يتضمن جميع الهيكلية اللازمة لإنشاء تدفق مع فرق Crew متعددة عن طريق تشغيل الأمر التالي:poem_crew ويعمل بالفعل. يمكنك استخدام هذا الفريق كقالب بنسخه ولصقه وتعديله لإنشاء فرق أخرى.
هيكل المجلدات
بعد تشغيل أمرcrewai create flow name_of_flow، سترى هيكل مجلدات مشابه للتالي:
| المجلد/الملف | الوصف |
|---|---|
name_of_flow/ | المجلد الجذر للتدفق. |
├── crews/ | يحتوي على مجلدات لفرق Crew المحددة. |
│ └── poem_crew/ | مجلد لـ “poem_crew” مع إعداداته وسكربتاته. |
│ ├── config/ | مجلد ملفات الإعداد لـ “poem_crew”. |
│ │ ├── agents.yaml | ملف YAML يحدد الـ Agents لـ “poem_crew”. |
│ │ └── tasks.yaml | ملف YAML يحدد المهام لـ “poem_crew”. |
│ ├── poem_crew.py | سكربت وظائف “poem_crew”. |
├── tools/ | مجلد للأدوات الإضافية المُستخدمة في التدفق. |
│ └── custom_tool.py | تنفيذ أداة مخصصة. |
├── main.py | السكربت الرئيسي لتشغيل التدفق. |
├── README.md | وصف المشروع والتعليمات. |
├── pyproject.toml | ملف إعداد تبعيات المشروع والإعدادات. |
└── .gitignore | يحدد الملفات والمجلدات المراد تجاهلها في التحكم بالإصدارات. |
بناء فرق Crew الخاصة بك
في مجلدcrews، يمكنك تحديد فرق Crew متعددة. سيكون لكل فريق مجلده الخاص الذي يحتوي على ملفات الإعداد وملف تعريف الفريق. على سبيل المثال، يحتوي مجلد poem_crew على:
config/agents.yaml: يحدد الـ Agents للفريق.config/tasks.yaml: يحدد المهام للفريق.poem_crew.py: يحتوي على تعريف الفريق، بما في ذلك الـ Agents والمهام والفريق نفسه.
poem_crew لإنشاء فرق أخرى.
ربط فرق Crew في main.py
ملف main.py هو حيث تنشئ التدفق وتربط فرق Crew معًا. يمكنك تحديد التدفق باستخدام فئة Flow والمزخرفات @start و @listen لتحديد تدفق التنفيذ.
إليك مثال على كيفية ربط poem_crew في ملف main.py:
Code
PoemFlow تدفقًا يولّد عدد الجمل، ويستخدم PoemCrew لتوليد قصيدة، ثم يحفظ القصيدة في ملف. يتم بدء التدفق باستدعاء دالة kickoff(). سيتم توليد PoemFlowPlot بواسطة دالة plot().

تشغيل التدفق
(اختياري) قبل تشغيل التدفق، يمكنك تثبيت التبعيات بتشغيل:رسم التدفقات
يمكن أن يوفر تصوير سير عمل الذكاء الاصطناعي رؤى قيمة حول هيكل ومسارات تنفيذ تدفقاتك. تقدم CrewAI أداة تصوير قوية تتيح لك إنشاء رسوم بيانية تفاعلية لتدفقاتك، مما يسهّل فهم وتحسين سير عمل الذكاء الاصطناعي.ما هي الرسوم البيانية؟
الرسوم البيانية في CrewAI هي تمثيلات بصرية لسير عمل الذكاء الاصطناعي. تعرض المهام المختلفة واتصالاتها وتدفق البيانات بينها. يساعد هذا التصوير في فهم تسلسل العمليات وتحديد الاختناقات وضمان توافق منطق سير العمل مع توقعاتك.كيفية إنشاء رسم بياني
توفر CrewAI طريقتين مريحتين لإنشاء رسوم بيانية لتدفقاتك:الخيار 1: استخدام دالة plot()
إذا كنت تعمل مباشرة مع مثيل تدفق، يمكنك إنشاء رسم بياني باستدعاء دالة plot() على كائن التدفق. ستُنشئ هذه الدالة ملف HTML يحتوي على الرسم البياني التفاعلي لتدفقك.
Code
my_flow_plot.html في مجلدك الحالي. يمكنك فتح هذا الملف في متصفح ويب لعرض الرسم البياني التفاعلي.
الخيار 2: استخدام سطر الأوامر
إذا كنت تعمل ضمن مشروع CrewAI منظم، يمكنك إنشاء رسم بياني باستخدام سطر الأوامر. هذا مفيد بشكل خاص للمشاريع الأكبر حيث تريد تصوير إعداد التدفق بالكامل.plot(). سيتم حفظ الملف في مجلد مشروعك، ويمكنك فتحه في متصفح ويب لاستكشاف التدفق.
فهم الرسم البياني
سيعرض الرسم البياني المولّد عُقدًا تمثل المهام في تدفقك، مع حواف موجّهة تشير إلى تدفق التنفيذ. الرسم البياني تفاعلي، مما يتيح لك التكبير والتصغير والتمرير فوق العقد لرؤية تفاصيل إضافية. من خلال تصوير تدفقاتك، يمكنك الحصول على فهم أوضح لهيكل سير العمل، مما يسهّل تصحيح الأخطاء وتحسين عمليات الذكاء الاصطناعي والتواصل بشأنها مع الآخرين.الخلاصة
رسم تدفقاتك هو ميزة قوية في CrewAI تعزز قدرتك على تصميم وإدارة سير عمل الذكاء الاصطناعي المعقدة. سواء اخترت استخدام دالةplot() أو سطر الأوامر، فإن إنشاء الرسوم البيانية سيوفر لك تمثيلًا بصريًا لسير عملك، مما يساعد في التطوير والعرض.
الخطوات التالية
إذا كنت مهتمًا باستكشاف أمثلة إضافية للتدفقات، لدينا مجموعة متنوعة من التوصيات في مستودع الأمثلة. إليك أربعة أمثلة تدفق محددة، كل منها يعرض حالات استخدام فريدة لمساعدتك في مطابقة نوع مشكلتك الحالية مع مثال محدد:- تدفق الرد التلقائي على البريد الإلكتروني: يوضح هذا المثال حلقة لا نهائية حيث تعمل مهمة خلفية باستمرار لأتمتة ردود البريد الإلكتروني. إنها حالة استخدام رائعة للمهام التي تحتاج إلى التنفيذ بشكل متكرر دون تدخل يدوي. عرض المثال
- تدفق تقييم العملاء المحتملين: يعرض هذا التدفق إضافة تغذية راجعة بشرية والتعامل مع فروع شرطية مختلفة باستخدام الموجّه. إنه مثال ممتاز لكيفية دمج اتخاذ القرارات الديناميكية والرقابة البشرية في سير عملك. عرض المثال
- تدفق كتابة كتاب: يتفوق هذا المثال في ربط فرق Crew متعددة معًا، حيث تُستخدم مخرجات فريق واحد بواسطة فريق آخر. على وجه التحديد، يقوم فريق واحد بوضع مخطط لكتاب كامل، ويقوم فريق آخر بإنشاء فصول بناءً على المخطط. في النهاية، يتم ربط كل شيء لإنتاج كتاب كامل. هذا التدفق مثالي للعمليات المعقدة متعددة الخطوات التي تتطلب تنسيقًا بين مهام مختلفة. عرض المثال
- تدفق مساعد الاجتماعات: يوضح هذا التدفق كيفية بث حدث واحد لتشغيل إجراءات متابعة متعددة. على سبيل المثال، بعد اكتمال اجتماع، يمكن للتدفق تحديث لوحة Trello وإرسال رسالة Slack وحفظ النتائج. إنه مثال رائع للتعامل مع نتائج متعددة من حدث واحد، مما يجعله مثاليًا لإدارة المهام الشاملة وأنظمة الإشعارات. عرض المثال
تشغيل التدفقات
هناك طريقتان لتشغيل التدفق:استخدام واجهة Flow API
يمكنك تشغيل تدفق برمجيًا عن طريق إنشاء مثيل من فئة التدفق واستدعاء دالةkickoff():
بث تنفيذ التدفق
للحصول على رؤية فورية لتنفيذ التدفق، يمكنك تفعيل البث لتلقي المخرجات فور توليدها:الذاكرة في التدفقات
يتمتع كل تدفق تلقائيًا بإمكانية الوصول إلى نظام الذاكرة الموحد في CrewAI. يمكنك تخزين الذكريات واسترجاعها واستخراجها مباشرة داخل أي دالة تدفق باستخدام ثلاث دوال مساعدة مدمجة.الدوال المدمجة
| الدالة | الوصف |
|---|---|
self.remember(content, **kwargs) | تخزين المحتوى في الذاكرة. تقبل scope و categories و metadata و importance اختياريًا. |
self.recall(query, **kwargs) | استرجاع الذكريات ذات الصلة. تقبل scope و categories و limit و depth اختياريًا. |
self.extract_memories(content) | تفكيك النص الخام إلى عبارات ذاكرة منفصلة ومستقلة. |
Memory() افتراضي تلقائيًا عند تهيئة التدفق. يمكنك أيضًا تمرير مثيل مخصص:
مثال: تدفق البحث والتحليل
analyze ستستدعي النتائج من عمليات التنفيذ السابقة أيضًا — مما يتيح تدفقات تتعلم وتراكم المعرفة بمرور الوقت.
انظر وثائق الذاكرة لمزيد من التفاصيل حول النطاقات والشرائح والتسجيل المركب وإعداد المُضمِّن والمزيد.
استخدام CLI
بدءًا من الإصدار 0.103.0، يمكنك تشغيل التدفقات باستخدام أمرcrewai run:
type = "flow" في pyproject.toml الخاص بك) ويشغّله وفقًا لذلك. هذه هي الطريقة الموصى بها لتشغيل التدفقات من سطر الأوامر.
للتوافق مع الإصدارات السابقة، يمكنك أيضًا استخدام:
crewai run هو الطريقة المفضلة الآن لأنه يعمل لكل من فرق Crew والتدفقات.