Phase 15: Autonomous Systems

نقاط التفتيش والعودة

كل انتقال من حالة الرسم البياني يستمر عندما يقع عامل في حادث، ينتهي عقده الإيجار ويأخذ عامل آخر في آخر نقطة تفتيش. Cloudflare Durable Objects تحافظ على حالة على مدار ساعات أو أسابيع. يحدد خطة إعادة التنفيذ لكل عمل (المدرسة 15) التحقق بعد العمل يُغلق الخلق قانون الاتحاد الأوروبي للاستخبارات الذكية المادة 14 تجعل الإشراف البشري الفعال إلزامياً للأنظمة ذات المخاطر العالية هذا يعني في الواقع أن نقاط التفتيش يجب أن تكون قابلة للتحقيق، ويجب أن يتم التدريب على عمليات الإعادة إلى العمل، ويجب أن تتجاوز مسار التحقيق عملية الانتشار. وضع الفشل الحاد: بدون أزرار الاختفاء والتحقق من الشروط المسبقة، يمكن لإعادة المحاولة بعد الفشل المؤقت إضافة إثنين إلى إجراء تمت الموافقة عليه بالفعل. التحقق بعد العمل هو ما يلتقطه.

Type: Learn

Languages: Python (stdlib, checkpoint and rollback state machine)

Prerequisites: Phase 15 · 12 (Durable execution), Phase 15 · 15 (Propose-then-commit)

Time: ~60 minutes

المشكلة

إن التنفيذ الدائم (درس 12) يجعل العميل المتعثر قابلاً لإعادة التنفيذ. تقديم العرض ثم التزام (درس 15) يجعل الإجراء المعتمد قابلاً للتدقيق. يضم هذا الدروس لهم: ماذا يحدث عندما يتم تنفيذ الإجراء المعتمد جزئياً ، يتعثر ، ويتم إعادة التنفيذ؟ متى يتم إعادة التنفيذ ، ومع أي حالة؟

الأنظمة الحقيقية تُحكم هذا بشكل مختلف:

  • LangGraphنقاط التفتيش كل انتقال إلى PostgreSQL. عند حادث العاملين، يتم إطلاق العقد الإيجاري ويعود عامل آخر إلى آخر نقطة التفتيش. تتوقف عمليات العمل على interrupt()، والتي نفسها تستمر
  • Cloudflare Durable Objectsتحافظ على حالة المفتاح على مدار ساعات أو أسابيع. تحفّز الحساب مع التخزين للعمل المعتمد.
  • Microsoft Agent FrameworkيُعرضCheckpointالأسباب البدائية في API سير العمل؛ إعادة التشغيل بالإضافة إلى عدم القدرة على التشغيل تغطي محاولات إعادة التشغيل.

في كل حالة، الجمع الذي يعمل فعلا هو: مفتاح الاختلاف (منع إنجاز مزدوج) + التحقق من الشروط المسبقة (الوضع ما زال ما أقرنا ضد) + التحقق من بعد العمل (تحدثت الآثار الجانبية بالفعل) + إعادة التحقق من الفشل.

المفهوم

كل انتقال يستمر

التحول إلى حالة الرسم البياني هو أي خطوة تحرك تدفق العمل من حالة واحدة إلى أخرى. لا تزال تنفيذات البغاءات قائمة إلا في نقاط تعيين محددة. لا تزال تنفيذات الإنتاج قائمة في كل انتقال. التكلفة (بعض الكتابة الإضافية) صغيرة نسبياً إلى مكاسب الاعتماد (تراجع الأرض في أي مكان ، وتحقيق استرداد الإيجار).

إعادة تأجير

عندما يقع عامل، لا يفقد سير العمل؛ ينفذ العقد (الادعاء القصير على أن هذا العامل يقوم بتنفيذ هذا الجري) ببساطة. يقوم عامل آخر بتحديد آخر نقطة تفتيش وتستأنف. آلية الإيجار هي ما يسمح لنظم الإنتاج بالبقاء على قيد الحياة في الانتشارات المتحركة دون فقدان العمل أثناء الطيران.

الجهد المفروض بالإضافة إلى الشروط المسبقة

لا يكفي التحرر وحده. فكر في: يتم الموافقة على سير العمل ل "تحويل$100 from A to B when balance > $1000. " يتم الالتزام بتدفق العمل ، يتعطل في منتصف التنفيذ ، ويتم استئناف. إذا تم التحقق من مفتاح الاختفاء ، ويتم استئناف التنفيذ ، فإن التحويل ينفذ مرة واحدة (صحيحة). ولكن ضع في اعتبارك أن بين التعطل والاستئناف ، ينخفض توازن A إلى 500 دولار عبر تدفق عمل مختلف. لا يزال التحقق من الاختفاء يمر ؛ الشروط المسبقة لا. دون التحقق من الشروط المسبقة ، نُرسل مسدًا.

كل عمل يتطلب كلتا:

  • Idempotency key: يمنع إنجاز المزدوج.
  • Precondition check: يؤكد أن الدولة لا تزال متوافقة مع ما تمت الموافقة عليه.

التحقق بعد الإجراء

"الأداة التي عادت 200" ليست التحقق. التحقق الحقيقي يقرأ مرة أخرى الحالة المستهدفة ويؤكد تأثير الجانب حدث فعلا.

  • تحديث قاعدة البيانات: UPDATE ... RETURNING *ثم تأكد من حالة تطابق الصف المرجع المقصودة.
  • إرسال البريد الإلكتروني: تحقق من المجلد المرسل لتحديد الهوية للرسالة بعد الإرسال.
  • كتابة الملف: قراءة الملف مرة أخرى وتشويقها.
  • دعوة إطار العمل: متابعةGETعلى الموارد المستهدفة.

إذا فشلت التحقق، فإن تدفق العمل في حالة سيئة معروفة.

خطط الرد

كل إجراء متواصل في تقديم المقترحات ثم التزام (الدرس 15) يحمل خطة إعادة التنفيذ.

  • In-band rollback: عكس الآثار الجانبية مباشرة (DELETEبعدINSERT،Send-correction-emailبعد إرسالها).
  • Compensating transaction: عمل جديد يُحبط الأصلي (أنماط SAGA القياسية).
  • Out-of-band rollback: تحذير الإنسان، توقف سير العمل، ترك الحالة السيئة للتحقيق.

يجب أن يذكر في الاقتراح عدم إعادة التنفيذ ("لا يمكننا إلغاء ذلك") ، حيث تتطلب الإجراءات التي لا تتضمن إعادة التنفيذ أقوى HITL في وقت التزاماتها (المرحلة 15 من التحدي والرد).

قانون الاتحاد الأوروبي للاستخبارات الذكية المادة 14 القراءة التشغيلية

تتطلب المادة 14 "إشراف بشري فعال" على الأنظمة ذات المخاطر العالية.

  • نقاط التفتيش قابلة للتحقيق من قبل المراجعة.
  • يتم تدريب الردود (تم اختبارها من نهاية إلى آخر مرة واحدة على الأقل).
  • تتبقى مسار المراجعة على الانتشار (الخلفية لم تكن مؤقتة).
  • يتم إشعار التحققات الفاشلة، وليس تسجيلها بصمت.

سير العمل الذي يتوقف في منتصف الالتزام، ويستأنف، ويؤدي إلى إكمال التأثير الجانبي دون مسار التحقق + الردع لا ينجو من اختبار المادة 14.

وضع الفشل الحاد: التنفيذ المزدوج

أكثر حوادث الإنتاج شيوعاً في هذا المجال:

  1. تمت الموافقة على العمل، مفتاح الإستثمار
  2. الالتزام يبدأ، ينفذ، يعيد 200.
  3. تدفق العمل يتعطل قبل أن تستمر حالة "التزام".
  4. سير العمل يستمر؛ يرى "موافق ولكن ليس ملتزم"؛ يعيد تنفيذها.
  5. تأثير الجانب يطلق مرتين

التخفيف: استمر في إعداد "في الطيران" قبل تنفيذها، تنفيذها بمفتاح إعفاء، ثم علامة "ملتزم" فقط بعد نجاح التحقق من بعد الإجراء. إذا فشلت إطلاق النار الإجراءية وتكشف الحالة، تعرف على التحقق وإعادة إطلاق النار (إذا لزم الأمر). إذا نجحت إطلاق الحالة وتفشل الإجراء، يمكنك التحقق من وإطلاق النار مرة واحدة بالضبط عبر مسار الاسترداد.

استخدمها

code/main.pyيقوم السائق بتنظيم عملية التدريب المحددة مع إمكانية الإصلاح، والشروط المسبقة، والتحقق، والإعادة التدريب. يحاكي السائق أربعة سيناريوهات: الجري النظيف، والحاولات المجددة بعد الحادث (التقاط إمكانية الإصلاح) ، وفشل الإصلاح (إجراءات إزالة التدريب دون إطلاق النار) ، والتحقق من الفشل (إطلاق إعادة التدريب).

أرسله

outputs/skill-rollback-rehearsal.mdيقوم بتصميم اختبار التجربة التدريبية للجريان العمل المقترح والتحقق من الخلفية في نقطة التفتيش لتحقيق استمرارية مسار التدقيق.

التمارين

  1. أركضcode/main.pyتأكد من أنّه في حالة الحادث أثناء الالتزام، يتمّ إطلاق النار مرة واحدة بالضبط في كلّ محاولة إعادة.
  1. تعديل نمط "علامة كما تم أولاً، ثم القيام به" بحيث يكتب الحالة حرائق بعد الإجراء. إعادة عرض سيناريو الحطام. قياس عدد الإجراءات المكررة النار.
  1. صياغة خطة إعادة التأثير لفعلية إنتاجية محددة (مثل "رسل إلى قناة Slack"). تصنيف كمنطقة داخل المجموعة، أو تعويض، أو خارج المجموعة. توجيه الاختيار.
  1. خذ تدفق عمل واحد تعرفه. حدد كل انتقال حالة. حدد كل واحد مع متطلبات استدامة (استمر / لا تستمر). عد تلك التي لا تستمر حاليا.
  1. اختبار التردد المتكرر: تصميم اختبار من نهاية إلى نهاية يقوم بتشغيل تدفق عمل حقيقي، ويصطدم به، و يؤكد إطلاق مسار التردد. ما الذي يؤكد عليه الاختبار؟

الشروط الرئيسية

TermWhat people sayWhat it actually means
Checkpoint"Save point"Every graph-state transition persists to a durable store
Lease"Worker claim"Short-lived claim that a worker is executing a run; expires on crash
Precondition"State gate"Assertion that the state is still consistent with the approved action
Post-action verify"Re-read check"Confirm the side effect actually happened in the target system
In-band rollback"Direct undo"Reverse the side effect with the inverse operation
Compensating transaction"SAGA undo"A new action that neutralizes the original
Mark-as-done-first"Status write order"Persist the committed status before returning from commit
Article 14"EU AI Act human oversight"Operational: queryable checkpoints, rehearsed rollbacks, auditable trail

المزيد من القراءة

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.