Documentation Index
Fetch the complete documentation index at: https://docs.crewai.com/llms.txt
Use this file to discover all available pages before exploring further.
نظرة عامة
الطريقة الموثقة لترطيب تدفق@persist من تنفيذ سابق هي تمرير UUID لذلك التنفيذ كـ inputs.id. الآن، تكشف CrewAI عن حقل مخصص، restore_from_state_id، الذي يقوم بنفس الترطيب دون تحميل حمولة inputs — ودون ربط مفتاح الترطيب بهوية التنفيذ الجديد.
الانتقال
إذا كنت حالياً تبدأ تدفق@persist باستخدام inputs={"id": ...}:
restore_from_state_id:
inputs={"id": <uuid>}(مهجور) — استئناف: تكتب الكتابات تحت المعرف المقدم، مما يمدد نفس تاريخflow_uuid.restore_from_state_id=<uuid>— تفرع: يترطب الحالة من اللقطة، ثم يكتب تحتstate.idجديدة. يتم الحفاظ على تاريخ التدفق المصدر.
لماذا نقوم بإهمال inputs.id لـ @persist
inputs.id هو حالياً الطريقة الموثقة لاستئناف تدفق @persist من تنفيذ سابق. المشكلة هي أن نفس UUID يقوم بوظيفتين في وقت واحد:
- يحدد أي لقطة يترطب منها
@persist— تحميل الحالة المحفوظة تحت ذلك UUID. - يصبح معرف تنفيذ التدفق الجديد (
state.idفي SDK؛ يظهر كـflow_idفي بعض السياقات) — كل كتابة@persistمن هذه البداية أيضاً تقع تحت نفس UUID.
inputs.id ليست تنفيذين متميزين — إنهما تشتركان في معرف، وتشاركان في سجل الاستمرارية، و(على AMP) تشتركان في صف في قائمة التنفيذات. لا توجد طريقة للقول “ترطب من هذه اللقطة، ولكن سجل هذا التشغيل بشكل منفصل” دون تقسيم المسؤوليتين.
restore_from_state_id هو هذا الانقسام. إنه يخبر @persist من أي لقطة يترطب، بينما يترك التنفيذ الجديد حراً لاستلام state.id جديدة. لم يعد مصدر الترطيب والتشغيل المسجل نفس UUID — وهو ما تريده معظم سيناريوهات الإنتاج فعلياً.
جدول إزالة
من المقرر إزالةinputs.id لترطيب @persist في إصدار مستقبلي من CrewAI. لا يوجد قطع صارم فوري — تظل التدفقات الحالية تعمل — ولكن بمجرد أن تقوم بالتحديث إلى v1.14.5 أو ما بعده، يجب أن يستخدم الكود الجديد restore_from_state_id، ويجب أن تهاجر التدفقات الحالية في الفرصة المناسبة التالية.
AMP
إذا كنت تنشر تدفقك إلى CrewAI AMP، فإن الهجرة تمتد إلى الحمولة التي تبدأ بها المرسلة إلى طاقمك المنشور، وتظهر الأعراض المرئية لإعادة استخدامinputs.id على لوحة معلومات النشر. تغطي القسمان الفرعيان أدناه كلاهما.
هجرة حمولة البداية
إذا كنت حالياً تبدأ تدفقاً منشوراً عن طريق تضمينid في inputs:
restoreFromStateId في المستوى الأعلى:
restoreFromStateId بجانب inputs في حمولة البداية، وليس داخلها. الآن، يحمل كائن inputs فقط القيم التي تستهلكها تدفقك فعلياً.
ماذا يحدث عند إعادة استخدام inputs.id
عندما تتلقى AMP بداية لتدفق يتطابق inputs.id الخاص به مع تنفيذ موجود، فإنه يحل إلى السجل الموجود بدلاً من إنشاء سجل جديد. من لوحة معلومات النشر سترى:
- حالة التنفيذ — حالة التشغيل الجديد تحل محل حالة التشغيل السابق. يمكن أن تعود تنفيذات مكتملة إلى
جارية، أو يمكن أن تتحول تشغيلاتمكتملةإلىخطأإذا فشلت البداية الجديدة — في كلتا الحالتين، لم تعد لوحة المعلومات تعكس التشغيل الأصلي. - التتبع — تتراكم تتبعات OTel عبر البدايات لأنها تشترك في نفس معرف التنفيذ؛ تتبعات التشغيل السابق إما تُستبدل بـ، أو تُخلط مع، تشغيل الجديد. لم يعد إعادة التشغيل خطوة بخطوة يتوافق مع تنفيذ واحد.
- قائمة التنفيذات — البدايات التي يجب أن تظهر كصفوف منفصلة تتقلص إلى إدخال واحد، مما يخفي التاريخ.
restoreFromStateId في الحفاظ على كل بداية كتنفيذ خاص بها — مع حالتها الخاصة، وتتبعها، وصفها في القائمة — بينما لا تزال ترطب الحالة من تشغيل سابق.
هل تحتاج مساعدة؟
اتصل بفريق الدعم لدينا إذا لم تكن متأكداً من أي وضع يحتاجه تدفقك أو واجهت مشاكل أثناء الهجرة.
