Decision Gate هي طبقة تحكم حتمية. لا تدير المحادثات أو الوكلاء. تستقبل المحفزات، تقيم المقدمات المدعومة بالأدلة، وتصدر قرارات قابلة للتدقيق.
سيناريوسبك
السيناريو هو وحدة التنفيذ. يقوم ScenarioSpec بالتقاط:
- scenario_id: معرف ثابت يُستخدم عبر الجلسات
- spec_version: إصدار العقد
- المراحل: مراحل مرتبة مع بوابات وسياسات تقدم
- المحددات: فحوصات الأدلة المسماة المستخدمة من قبل البوابات
- السياسات + المخططات: قيود اختيارية على الحوكمة والحمولة
StageSpec
تتحكم المراحل في التقدم. كل مرحلة تحدد:
- البوابات: واحدة أو أكثر من GateSpecs للتقييم
- advance_to: خطي، ثابت، فرعي، أو نهائي
- entry_packets: إفصاحات اختيارية تصدر عند الدخول
- timeout + on_timeout: سياسة الفشل الحتمية
GateSpec
تحتوي البوابات على شجرة متطلبات. تمر البوابة فقط عندما يتم تقييم المتطلب إلى صحيح.
أشجار تقييم المتطلبات (RET) هي الجبر القائم على الشروط. تدعم AND / OR / NOT / المجموعات وهي حتمية من حيث البناء. انظر منطق RET للعمليات والتقييم ثلاثي الحالة.
PredicateSpec و Evidence
تربط العبارات ورقة متطلبات باستعلام الأدلة والمقارن.
- EvidenceQuery: provider_id, predicate, params
- EvidenceResult: القيمة، التجزئة، الرابط، بيانات التوقيع
RET يحدد كيف تتكون العبارات الشرطية. مقدمو الخدمة يحددون ما تعنيه العبارة الشرطية وما هي المعلمات التي تقبلها.
لماذا هذا مهم
- كل قرار يمكن إعادة إنتاجه من المواصفات + مدخلات الأدلة.
- يمكن تدقيق البوابات والتحقق منها دون اتصال بالإنترنت.
- يمكن توصيل مقدمي الخدمة دون تغيير دلالات السيناريو.