الانتقال إلى المحتوى الرئيسي
الـ Checkpointing في اصدار مبكر. قد تتغير واجهات البرمجة في الاصدارات المستقبلية.

نظرة عامة

يقوم الـ Checkpointing بحفظ حالة التنفيذ تلقائيا اثناء التشغيل. اذا فشل طاقم او تدفق او وكيل اثناء التنفيذ، يمكنك الاستعادة من اخر نقطة حفظ والاستئناف دون اعادة تنفيذ العمل المكتمل.

البداية السريعة

تتم كتابة ملفات نقاط الحفظ في ./.checkpoints/ بعد اكتمال كل مهمة.

التكوين

استخدم CheckpointConfig للتحكم الكامل:

حقول CheckpointConfig

الوراثة والانسحاب

يقبل حقل checkpoint في Crew و Flow و Agent قيم CheckpointConfig او True او False او None:

الاستئناف من نقطة حفظ

يتخطى الطاقم المستعاد المهام المكتملة ويستأنف من اول مهمة غير مكتملة.

يعمل على Crew و Flow و Agent

Crew

المشغل الافتراضي: task_completed (نقطة حفظ واحدة لكل مهمة مكتملة).

Flow

Agent

مزودات التخزين

يتضمن CrewAI مزودي تخزين لنقاط الحفظ.

JsonProvider (افتراضي)

يكتب كل نقطة حفظ كملف JSON منفصل.

SqliteProvider

يخزن جميع نقاط الحفظ في ملف قاعدة بيانات SQLite واحد.

انواع الاحداث

يقبل حقل on_events اي مجموعة من سلاسل انواع الاحداث. الخيارات الشائعة:
استخدام ["*"] او احداث عالية التردد مثل llm_call_completed سيكتب العديد من ملفات نقاط الحفظ وقد يؤثر على الاداء. استخدم max_checkpoints للحد من استخدام المساحة.

نقاط الحفظ اليدوية

للتحكم الكامل، سجل معالج الاحداث الخاص بك واستدع state.checkpoint() مباشرة:
وسيط state هو RuntimeState الذي يتم تمريره تلقائيا بواسطة ناقل الاحداث عندما يقبل المعالج 3 معاملات. يمكنك تسجيل معالجات على اي نوع حدث مدرج في وثائق Event Listeners. الـ Checkpointing يعمل بافضل جهد: اذا فشلت كتابة نقطة حفظ، يتم تسجيل الخطأ ولكن التنفيذ يستمر دون انقطاع.