Phase 15: Autonomous Systems

وكلاء خلفية طويلة الأمد: إعدام دائم

لا يوجد عوامل إنتاجية طويلة الأفقwhile Trueكل مكالمة LLM تصبح نشاطًا مع نقطة التفتيش، والإعادة المحاولة، والإعادة التعبير. تم دمج OpenAI Agents SDK من Temporal في GA مارس 2026. تقوم روتينات كلود كود (أنثروبيك) بتشغيل طلبات كود كود المجدولة دون عملية محلية مستمرة. تقوم الجلسات بإيقاف المدخلات البشرية، وتتبع النشرات، وتستمر من أحدث نقطة التفتيش المفتاحية التي يضعهاthread_idوراء التجربة الجديدة يقع نمط قديم تشكيل تدفق العمل مع مدخل جديد: LLM يدعو أنشطة غير تحديدية يجب أن تكرر بشكل تحديدي عند التعافي.

Type: Learn

Languages: Python (stdlib, minimal durable-execution state machine)

Prerequisites: Phase 15 · 10 (Permission modes), Phase 15 · 01 (Long-horizon agents)

Time: ~60 minutes

المشكلة

فكر في وكيل يعمل لمدة أربع ساعات، يدعو ثلاثة أدوات، يطلب من المستخدم مرتين، ويقوم بأربعين مكالمة في ماجستير في العلوم. في منتصف الطريق، يستضيفه يعمل على إعادة تشغيل. ماذا يحدث؟

  • في سذاجةwhile Trueحلقة: كل شيء قد فقد. يبدأ التشغيل من جديد. تقوم الدعوات الثلاثة للأدوات (مع آثار جانبية حقيقية) بإجراءها مرة أخرى. يتم طلب المستخدم مرة أخرى للأشياء التي وافقت عليها بالفعل. يتم إعادة فواتير أربعين مكالمة LLM.
  • مع تنفيذ دائم: يستأنف التشغيل من أحدث نقطة تفتيش. لا يتم إعادة تنفيذ الأنشطة التي تم إكمالها بالفعل؛ يتم إعادة تشغيل نتائجها من السجل الدائم. لا يقر المستخدم مرة أخرى الأشياء التي وافق عليها بالفعل. لا يتم إعادة فواتير المكالمات LLM التي تم إجراؤها بالفعل.

هذه نفس النمط الذي كانت محركات تدفق العمل تشغيله منذ عقد (تيمبورال، كادنس، تشيرامي أوبر) ، والجديد هو أن دعوات الـ LLM أصبحت الآن نوعا من النشاط غير القياسي، مكلفة، مع آثار جانبية، وتتناسب مع هذا النمط بشكل نظيف.

موضوع الدروس: تدهور موثوقية الأفق الطويل (ميتر يلاحظ "تدهور 35 دقيقة" تنخفض معدل النجاح بشكل رباعي تقريبًا مع الأفق). تمكّن التنفيذ المستدام من القيام بأداء أطول من مدعومة ملف موثوقية، وهو وسيلة جديدة لفشل آمن إذا كان التصميم صحيحًا وغير آمن إذا كان التصميم خاطئًا.

المفهوم

الأنشطة، وتدفقات العمل، والإعادة التشغيل

  • Workflow: رمز التنسيق التحديدي. يحدد تسلسل الأنشطة، والفروع، والانتظار. يجب أن يكون تحديديا حتى يتم إعادة تشغيله من سجل الأحداث دون اختلاف مفاجئ.
  • Activity: وحدة عمل غير تحديدية، والتي قد تفشل. دعوة LLM، دعوة أداة، كتابة الملفات، طلب HTTP. يتم تسجيل كل نشاط مع مدخلاته (بمجرد اكتمالها) نتائجها.
  • Event log: مخزن الدعم الدائم. يتم تسجيل كل نشاط يبدأ، يكتمل، يفشل، يحاول مرة أخرى، وكل قرار سير العمل.
  • Replay: عند الاسترداد، يتم إعادة تشغيل رمز سير العمل من البداية؛ كل نشاط قد تم إكماله بالفعل يعيد نتيجه المسجل دون إعادة تنفيذ. يتم إعادة تشغيل الأنشطة التي لم تتم.

هذا هو نفس الشكل الذي يعيد تقديم React ضد DOM افتراضي، أو Git إعادة بناء شجرة عمل من المشاركات.

لماذا تتناسب مكالمات الماجستير

دعوات ماجستير في العلوم:

  • غير محددة (الدرجة الحرارة > 0، حتى درجة الحرارة 0 تتحرك عبر إصدارات النموذج).
  • مكلفة (المال والخمول).
  • فشل محتمل (حدود الفائدة، توقعات).
  • الآثار الجانبية (إذا استدعوا الأدوات).

هذا هو بالضبط ملف النشاط. إغلاق كل مكالمة LLM كنشاط يمنحك تجربة جديدة مع تعديل تعديلي، التحقق عبر إعادة التشغيل، ومتابعة قابل للعب لتحذير.

نقاط التفتيش المحددة بواسطةthread_id

لانغغغراف، Microsoft Agent Framework، Cloudflare Durable Objects، وكلود كود روتينات جميعها تجمع على نفس شكل API: thread_id(أو ما يعادله) يحدد الجلسة؛ كل انتقال حالة يستمر إلى الخلفية (PostgreSQL افتراضي، SQLite ل dev، Redis ل التخزين الآلي) ؛ استئناف يقرأ أحدث نقطة التفتيش.

اختيار الطرف الخلفي مهم:

  • PostgreSQL: مستمرة، قابلة للتسجيل، تتجاوز عمليات التنفيذ.
  • SQLite: محلي-dev فقط؛ يفقد البيانات عبر مضيفين.
  • Redis: سريع ولكن مؤقت ما لم يتم تشكيل AOF/مقطع الفورية.
  • Cloudflare Durable Objects: تم توزيعها بصورة شفافة؛ يتم توزيعها بواسطة مفتاح فريد؛ يحتفظ بها لساعات إلى أسابيع.

المدخل البشري كدولة من الدرجة الأولى

يطلب التزام بعد ذلك (الدرس 15) حالة "انتظار البشر" دائمة. يتوقف سير العمل، ويضع الصف الخارجي الطلب المتعلّق، ويستأنف الموافقة من ذلك النقطة بالضبط. بدون استمرار هذا هو أفضل جهد؛ مع ذلك، يصل موافقة بين عشية وضحاها وتبدأ سير العمل في الصباح.

التدهور الذي استمر 35 دقيقة

لاحظ METR أن كل فئة من العاملات التي تم قياسها تظهر تدهور موثوقية أكثر من ~ 35 دقيقة من العملية المستمرة. مضاعفة مدة المهمة تقريباً أربعة أضعاف معدل الفشل. لا يمكن أن يصلح التنفيذ المستدام هذا الأمر؛ فإنه يسمح لك بالعمل لفترة أطول من مدعومة ملف موثوقية. النمط الآمن هو الجمع بين الاستدامة مع نقاط التفتيش التي تتطلب HITL جديدة عند إعادة الدخول، ومع مفاتيح قتل الميزانية (دروس 13) التي تصل إلى الحد الإجمالي الحساب بغض النظر عن الوقت في الساعة الجدارية.

عندما يكون الإجراء الدائم هو الإجابة الخطأ

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

استخدمها

code/main.pyيطبق محرك تنفيذ طويل الأمد في stdlib Python. يدعم:

  • @activityالمعدل الذي يسجل المدخلات والمخرجات إلى سجل الأحداث JSON.
  • وظيفة سير العمل التي تسلسل الأنشطة.
  • أrun_or_replay(workflow, event_log)وظيفة تعيد إعادة تشغيل الأنشطة المكتملة دون إعادة تنفيذها.

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

أرسله

outputs/skill-durable-execution-review.mdيراجع نشر عميل طويل الأمد المقترح من أجل شكل تنفيذ دائم صحيح: الأنشطة، والتحديد، والخلفية في نقاط التفتيش، وحالة المدخلات البشرية، وسياسة HITL على المودة.

التمارين

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

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

TermWhat people sayWhat it actually means
Workflow"Agent's script"Deterministic orchestration code; replayable from event log
Activity"A step"Non-deterministic unit (LLM call, tool call); logged before and after
Event log"The backing store"Durable record of every state transition
Replay"Resume"Re-run workflow; completed activities return logged results without re-execution
Checkpoint"Save point"Persisted state keyed by thread_id; latest-wins on resume
thread_id"Session key"Identifier that scopes durable state
35-minute degradation"Reliability decay"METR: success rate drops ~quadratically with horizon
Non-determinism"Drift on replay"Wall clock, random, LLM output; must be registered as side effect

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

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.