الشرح
كيف يعمل الـ Checkpointing: الأحداث والتخزين والوراثة.
درس تطبيقي
دليل 5 دقائق: تشغيل، إيقاف، استئناف.
ادلة عملية
وصفات مركزة على المهام لسير العمل الشائع.
المرجع
CheckpointConfig والأحداث والمزودات وسطر الأوامر.الشرح
ما هي نقطة الحفظ
تلتقط نقطة الحفظ كل ما يحتاجه CrewAI لإعادة إنشاء تشغيل أثناء سيره: الحالة الكاملة للطاقم أو التدفق أو الوكيل — التكوين، وذاكرة الوكلاء ومصادر المعرفة، وتقدم المهام، والمخرجات الوسيطة، والحالة الداخلية والسمات — إلى جانب مدخلات الـ kickoff، وسجل الأحداث حتى تلك النقطة، ومعرف نسب يربط نقطة الحفظ بالتشغيل الذي جاءت منه. الاستعادة تعيد بناء تلك الحالة وتستمر. تتخطى المهام المكتملة، وتعاد ترطيب الذاكرة والمعرفة، ويعمل العمل التابع على نفس المخرجات التي أنتجها التشغيل الأصلي. التفرع يجري نفس الاستعادة تحت نسب جديد، بحيث يكتب الفرع الجديد والتشغيل الأصلي نقاط الحفظ جنبا إلى جنب دون أن يطمس أحدهما الآخر.متى تكتب نقاط الحفظ
الـ Checkpointing مدفوع بالأحداث. يشترك وقت التشغيل في الأحداث التي تحددها عبرon_events ويكتب نقطة حفظ عند إطلاق أحدها. الافتراضي task_completed ينتج نقطة حفظ لكل مهمة منتهية — توازن معقول بين الدقة واستخدام القرص. الأحداث عالية التردد مثل llm_call_completed متاحة للاستعادة الدقيقة لكنها تكتب ملفات أكثر بكثير.
التخزين
يتضمن CrewAI مزودين:JsonProviderيكتب ملفا لكل نقطة حفظ. قابل للقراءة وسهل التفقد.SqliteProviderيكتب إلى قاعدة بيانات SQLite واحدة. أفضل لنقاط الحفظ عالية التردد.
max_checkpoints.
كتابة نقاط الحفظ بأفضل جهد. فشل نقطة حفظ يسجل لكنه لا يقاطع التشغيل.
نموذج الوراثة
Crew وFlow وAgent كلها تقبل وسيط checkpoint. يرث الأبناء من الأب ما لم يحددوا قيمتهم الخاصة أو يمرروا False للانسحاب. فعل الـ Checkpointing مرة واحدة على الطاقم وتشارك كل الوكلاء، أو استبعد وكيلا واحدا بشكل انتقائي.
درس تطبيقي: استئناف طاقم فاشل
هذا الدليل يستغرق حوالي 5 دقائق. ستشغل طاقما بمهمتين، توقفه في المنتصف، ثم تستأنف من نقطة الحفظ المحفوظة.1
أنشئ الطاقم مع تفعيل الـ Checkpointing
2
شغله وأوقفه بعد المهمة الأولى
Ctrl+C بعد انتهاء المهمة الأولى. في ./.checkpoints/، الملف بصيغة <timestamp>_<uuid>.json هو نقطة الحفظ.3
استأنف من نقطة الحفظ
ادلة عملية
تفعيل الـ Checkpointing بالإعدادات الافتراضية
تفعيل الـ Checkpointing بالإعدادات الافتراضية
./.checkpoints/ عند كل task_completed.تخصيص التخزين والتردد
تخصيص التخزين والتردد
اختيار مزود التخزين
اختيار مزود التخزين
استبعاد وكيل واحد
استبعاد وكيل واحد
التفرع إلى فرع جديد
التفرع إلى فرع جديد
fork() يستعيد نقطة حفظ تحت نسب جديد بحيث لا يتصادم التشغيل الجديد مع الأصلي.branch اختيارية؛ يتم إنشاء واحدة إذا أغفلت.Checkpointing لـ Crew أو Flow أو Agent
Checkpointing لـ Crew أو Flow أو Agent
- Crew
- Flow
- Agent
task_completed.كتابة نقطة حفظ يدويا
كتابة نقطة حفظ يدويا
سجل معالجا على أي حدث واستدع يتم تمرير وسيط
state.checkpoint().state تلقائيا عندما يقبل المعالج ثلاثة معاملات. راجع Event Listeners لقائمة الأحداث الكاملة.التصفح والاستئناف والتفرع من سطر الأوامر
التصفح والاستئناف والتفرع من سطر الأوامر


-
Inputs — مدخلات الـ kickoff الأصلية، معبأة مسبقا وقابلة للتحرير.

-
مخرجات المهام — مخرجات المهام المكتملة. تحرير مخرج والضغط على Fork يبطل المهام التابعة لتعاد بالسياق المعدل.


تفقد نقاط الحفظ بدون TUI
تفقد نقاط الحفظ بدون TUI
المرجع
CheckpointConfig
وجهة التخزين. مجلد لـ
JsonProvider، مسار ملف قاعدة بيانات لـ SqliteProvider.أنواع الأحداث التي تطلق نقطة حفظ.
CheckpointEventType هو Literal — مدقق الأنواع يكمل تلقائيا ويرفض القيم غير المدعومة. راجع أنواع الأحداث للقائمة الكاملة.واجهة التخزين.
JsonProvider أو SqliteProvider.الحد الاقصى لنقاط الحفظ المحتفظ بها. الأقدم تحذف بعد كل كتابة.
نقطة الحفظ المراد استعادتها عند تمريرها عبر
from_checkpoint.قيم حقل checkpoint
مقبولة في Crew وFlow وAgent.
يرث من الأب.
تفعيل بالإعدادات الافتراضية.
انسحاب صريح. يوقف الوراثة.
إعدادات مخصصة.
أنواع الأحداث
يقبلon_events أي مجموعة من قيم CheckpointEventType. الافتراضي ["task_completed"] يكتب نقطة حفظ لكل مهمة منتهية، و["*"] يطابق جميع الأحداث.
مزودات التخزين
ملف واحد لكل نقطة حفظ بصيغة
<timestamp>_<uuid>.json داخل location.ملف قاعدة بيانات واحد في
location مع journaling WAL.