دورة حياة سيناريو بوابة القرار + هندسة تخزين الحالة
Audience: Engineers implementing scenario execution, run lifecycle, and الجمهور: المهندسون الذين ينفذون تنفيذ السيناريو، دورة حياة التشغيل، واستمرارية حالة التشغيل.
جدول المحتويات
- نظرة عامة تنفيذية
- مواصفات السيناريو
- دورة حياة سيناريو التشغيل (MCP)
- نموذج حالة التشغيل
- تدفق تنفيذ طبقة التحكم
- تشغيل مخازن الحالة
- مرجع متقاطع ملف بملف
نظرة عامة تنفيذية
تحدد السيناريوهات سير عمل الكشف المرحلي في مواصفات حتمية. يقوم طبقة MCP بالتحقق من صحة السيناريوهات وتسجيلها، ثم تقوم بإنشاء وقت تشغيل لطبقة التحكم لكل سيناريو. يتم الاحتفاظ بحالات التشغيل عبر تنفيذ RunStateStore (في الذاكرة أو SQLite). حالة التشغيل هي فقط للإضافة، حيث تسجل المحفزات، ونتائج البوابات، والقرارات، والحزم، والتقديمات، واستدعاءات الأدوات. F:crates/decision-gate-core/src/core/spec.rs L51-L114 F:crates/decision-gate-mcp/src/tools.rs L721-L895 F:crates/decision-gate-core/src/core/state.rs L357-L394
مواصفات السيناريو
ScenarioSpec هو التعريف القياسي للسيناريو:
- المعرفات (سيناريو، مساحة الاسم، إصدار المواصفات)
- تعريفات المرحلة ومنطق البوابة
- تعريفات الحالة واستعلامات الأدلة
- مراجع المخطط الاختيارية ومعرف المستأجر الافتراضي
تتم مراجعة المواصفات عند التحميل لضمان التفرد والتناسق الداخلي. F:crates/decision-gate-core/src/core/spec.rs L51-L114
سلوك مستوى المرحلة يتم تعريفه بواسطة StageSpec (حزم الدخول، البوابات، التفرع، مهلة اختيارية). F:crates/decision-gate-core/src/core/spec.rs L121-L140
دورة حياة سيناريو التشغيل (MCP)
تعريف السيناريو
scenario_define يسجل سيناريو ويخزن وقت التشغيل في جهاز التوجيه للأداة:
- تنفيذ مساحة الأسماء
- التحقق من سجل القدرات
- التحقق من صحة المقارنات الصارمة
- إنشاء ControlPlane مع سياسة الثقة الحالية + سياسة الربط
F:crates/decision-gate-mcp/src/tools.rs L721-L749 F:crates/decision-gate-mcp/src/tools.rs L2045-L2066
بدء التشغيل
scenario_start ينشئ حالة تشغيل جديدة باستخدام مستوى التحكم ويقوم بحفظها عبر المتجر المكون. F:crates/decision-gate-mcp/src/tools.rs L760-L814
الحالة / التالي / إرسال / تفعيل
تعمل الأدوات اللاحقة على وقت التشغيل المخزن وحالة التشغيل المستمرة:
scenario_statusيقرأ الحالة الحاليةscenario_nextيتقدم بناءً على الأدلة المتاحةscenario_submitيقوم بتحميل العناصر الخارجيةscenario_triggerيقوم بحقن حدث تحفيزي خارجي
F:crates/decision-gate-mcp/src/tools.rs L816-L977
scenario_submit.payload و scenario_trigger.payload يتم الاحتفاظ بهما في سجلات حالة التشغيل ويتم تصديرهما إلى حزم التشغيل كجزء من التصميم. يجب على التكاملات التعامل مع هذه قنوات الحمولة كمرئية للتدقيق وتجنب إرسال الأسرار الخام.
يمكن أن يتضمن scenario_next ملاحظات اختيارية (ملخص/تتبع/أدلة) في استجابة الأداة عندما يسمح بذلك سياسة ملاحظات الخادم. تعيد ملاحظات التتبع استخدام تقييمات البوابات المخزنة؛ يمكن أن تكشف ملاحظات الأدلة سجلات تقييم البوابات مع تطبيق سياسة الإفصاح. F:crates/decision-gate-mcp/src/tools.rs L2144-L2257 F:crates/decision-gate-core/src/core/state.rs L357-L394
نموذج حالة التشغيل
حالة التشغيل هي سجل منظم، يُضاف إليه فقط، يحتوي على:
- مستأجر، مساحة اسم، تشغيل، معرفات السيناريو
- المرحلة الحالية وحالة دورة الحياة
- أهداف الإرسال
- سجل الزناد، سجل تقييم البوابة، سجل القرار
- حزم، تقديمات، ونصوص استدعاء الأدوات
F:crates/decision-gate-core/src/core/state.rs L357-L394
حالة دورة التشغيل هي تعداد مغلق: active, completed, failed. F:crates/decision-gate-core/src/core/state.rs L72-L85
تدفق تنفيذ طبقة التحكم
محرك مستوى التحكم ينفذ انتقالات السيناريو، يقيم الأدلة، ويسجل القرارات. يحتفظ بحالة التشغيل بعد الانتقالات الرئيسية ويستخدم سياسات الثقة/المرجعية المكونة في وقت التشغيل. F:crates/decision-gate-core/src/runtime/engine.rs L153-L178 F:crates/decision-gate-mcp/src/tools.rs L2029-L2066
تشغيل متاجر الحالة
تخزين في الذاكرة
تخزين الذاكرة مصمم للاختبارات والعروض التوضيحية. إنه ينفذ RunStateStore مع خريطة محمية بواسطة قفل. F:crates/decision-gate-core/src/runtime/store.rs L53-L127
متجر SQLite
تقدم وحدة تخزين SQLite لقطات دائمة:
- كل حفظ يخزن JSON قياسي بالإضافة إلى هاش.
- يتحقق من سلامة تجزئة التحميل وتوافق المفتاح.
- يتم تتبع الإصدارات لكل تشغيل، مع إمكانية تقليم الاحتفاظ الاختياري.
F:crates/decision-gate-store-sqlite/src/store.rs L540-L640
يدعم تكوين المتجر وضع WAL، وضع المزامنة، مهلة الانشغال، وحدود الاحتفاظ. F:crates/decision-gate-store-sqlite/src/store.rs L135-L156
تكوين MCP
تقوم طبقة MCP باختيار نوع المتجر من خلال تكوين run_state_store. F:crates/decision-gate-config/src/config.rs L1523-L1582
مرجع متقاطع لكل ملف
| المنطقة | الملف | الملاحظات |
|---|---|---|
| مواصفات السيناريو + التحقق | crates/decision-gate-core/src/core/spec.rs | هيكل السيناريو القياسي + الثوابت. |
| نموذج حالة التشغيل | crates/decision-gate-core/src/core/state.rs | حالة التشغيل + سجلات الإضافة فقط. |
| محرك مستوى التحكم | crates/decision-gate-core/src/runtime/engine.rs | تنفيذ وتدفق القرار. |
| دورة حياة أداة MCP | crates/decision-gate-mcp/src/tools.rs | تعريف السيناريو / بدء / التالي / تقديم / تفعيل / حالة. |
| التخزين في الذاكرة | crates/decision-gate-core/src/runtime/store.rs | تنفيذ تخزين اختباري / حتمي. |
| تخزين SQLite | crates/decision-gate-store-sqlite/src/store.rs | تخزين دائم مع تحقق من التجزئة + الاحتفاظ. |
| تكوين التخزين | crates/decision-gate-config/src/config.rs | اختيار تخزين حالة التشغيل + التحقق. |