طبقة الالتزام
طبقة الالتزام — الحل قبل التنفيذ
Section titled “طبقة الالتزام — الحل قبل التنفيذ”بوابة سياسات بين نموذج اللغة والتعديلات الدائمة. قبل أن يُسمح للوكيل بالجدولة أو الإرسال أو التنفيذ أو تغيير الإعدادات، تحلّ كاظمة القصد مقابل الذاكرة والسياسات. الأفعال الغامضة تُفكَّك عبر بطاقة توضيح/تأكيد دلالية تفاعلية على كل المنصات. جميع المراحل (0–8) منشورة؛ كل طبقة إنفاذ فاشلة-منفتحة (fail-open) مع مفتاح إيقاف افتراضي مغلق.
ذو صلة: الأمان والسلامة (بوابات HITL الثلاث)، الذاكرة وRAG (مخزن المعتقدات الذي تقرأه البوابة).
1. لماذا وُجدت — فئة الحادث التي تحجبها
Section titled “1. لماذا وُجدت — فئة الحادث التي تحجبها”تخيّل وكيل جدولة. يقول المستخدم “ذكّرني بالاجتماع.” بدون طبقة التزام، يستطيع نموذج اللغة اختلاع تاريخ معقول، وجدولته، وأسوأ ذلك الكتابة فوق المعتقد الحقيقي للمستخدم عن موعد الاجتماع. هذه فئة فشل حقيقية (حادث “CoPilot”): يتصرف النموذج بثقة على وهم ويُتيح له النظام الاستمرار.
تحلّ كاظمة القصد مقابل الذاكرة قبل التنفيذ، وتحجب المسار الخاطئ على طبقتين:
- طبقة الجدولة — تُربط العبارة النسبية (“الثلاثاء القادم”، “خلال يومين”)
بحدث حقيقي في الذاكرة، وتُعاد كتابة
fire_atللأداة إلى القيمة الصحيحة من الذاكرة (قيمة البوابة تتغلب على قيمة النموذج). - طبقة الذاكرة — لا يجوز أن يحلّ معتقد
user_explicitمحلّه مصدر ثقة أدنى (llm_inferred/system_tool) (بوابة ثقة المصدر).
إزالة أيٍّ من الثابتين تُعيد فئة الحادث.
2. نقاط الخنق الثلاث
Section titled “2. نقاط الخنق الثلاث”كل مسار تعديل يمرّ عبر authorize_effect (في kazma_core/safety/commitment/authorize.py). هناك ثلاث مواقع استدعاء:
| نقطة الخنق | المسار | الدور |
|---|---|---|
tool_worker_node (agent/graph_builder.py) | محادثة الوكيل الواحد | قرارات كاملة؛ يعمل قبل انقسام HITL الأمني ليُعيد كتابة الوسطاء أولاً |
LocalToolRegistry.execute (agent/tool_registry.py) | IDE / السرب | تدقيق فقط (لا سياق دور)؛ القرارات الكاملة في جانب الرسم |
_mutate_functional (memory/belief_mutation.py) | كتابات الذاكرة | نصف الفساد — بوابة ثقة المصدر (مستقلة عن بوابة السياسات) |
3. خريطة القرار
Section titled “3. خريطة القرار”يُعيد authorize_effect صيغة EffectDecision بإحدى أربع نتائج:
| القرار | المعنى | ما يحدث |
|---|---|---|
allow | نفّذ | اختيارياً مع rewritten_args (مثلاً حسبت البوابة fire_at الصحيح لتذكير) |
clarify | أوقف بسؤال موجَّه | تُطلق بطاقة مقاطعة حقيقية بخيارات محددة (انظر §4) |
confirm | أوقف للحصول على موافقة صريحة | نفس تجربة البطاقة، تُستخدم للأفعال الحرجة |
deny | محجوب | يُعاد خطأ واضح للنموذج؛ لا بطاقة ولا تنفيذ |
بالإضافة إلى مسار التدقيق فقط لأدوات القراءة، وmutate_fs (الاحتواء في
IdeService.resolve)، وdelegate (ثقة HMAC تُفحص عند تحميل المهارة).
سلوك الأفعال
Section titled “سلوك الأفعال”| الفعل | سلوك المحلِّل |
|---|---|
| remind (جدولة) | وقت نسبي مربوط بحدث في الذاكرة → allow + rewrite لـfire_at. عبارة نسبية غامضة مع حدث قريب → clarify. غير قابل للتحقيق → deny. |
| cancel_job | يحلّ مقابل مهام cron المعلّقة. |
| exec (shell) | قائمة حظر تحجب الأوامر الكارثية (rm -rf /، قنابل fork، `curl |
| send_outbound | عند ضبط agent.commitment.outbound_allowed_targets، الأهداف غير المعروفة → clarify مع قائمة السماح. |
| config_change | المفاتيح المحمية (safety.*، agent.commitment.*، notifications.lifecycle.*) لا يمكن للوكيل تغييرها — حماية ذاتية. |
إعادة الكتابة عند السماح: قيمة
fire_atالتي تحسبها البوابة (للتذكير) تتغلب دائماً على وسطاء النموذج الأصلية. التوقيت الأصلي ربما الخاطئ لا يصل أبداً إلى المجدول.
4. بطاقات التوضيح/التأكيد الدلالية
Section titled “4. بطاقات التوضيح/التأكيد الدلالية”عندما يكون القرار clarify أو confirm، يُوقف الرسم عبر interrupt() في
LangGraph بحمولة تحمل سؤالاً وقائمة خيارات — كل خيار يحزم slots_patch
(تحديث جزئي للوسطاء).
- تُعرض في كل مكان — الويب (المحادثة + الشريط الجانبي)، تيليجرام، ديسكورد، وسلاك. كل منصة تعرض زراً لكل خيار.
- الاستئناف يطبّق
slots_patchللخيار المختار على وسطاء الأداة ويُكمل. زرّا الموافقة/الرفض الحاليان يُعيّنان إلى أفضل خيار / إلغاء. - قائمة خيارات فارغة → توضيح بنص حر (لا خيارات محددة).
- الإلغاء نهائي — يُقال للنموذج أن يوقف المحاولة ويسأل المستخدم، دون إعادة محاولة صامتة.
هذا هو ناقل HITL الموحّد (نفس الذي يعالج موافقات الأدوات الخطيرة) — لا توجد قناة مقاطعة ثانية. انظر الأمان والسلامة.
5. رموز النطاق (السرب)
Section titled “5. رموز النطاق (السرب)”يمكن كبح عمّال السرب المُرسَلين إلى نطاق امتياز. عندما يكون
agent.commitment.swarm_scope_enforce مفعّلاً، يُفترض العمّال عند
semantic_tier HIGH (exec/outbound/config/identity حرجة → مرفوضة) و
denied_acts = {soul_delta, identity, config_change}. الافتراضي مغلق.
6. بوابة تأكيد الروح (Soul)
Section titled “6. بوابة تأكيد الروح (Soul)”يُحتفظ بمحرّك التحسين الذاتي بـ”فروقات الروح” — تنقيحات لغة النظام مولّدة بالـLLM
مشتقّة من مخرجات محادثة/أدوات غير موثوقة. عندما يكون
agent.commitment.soul_requires_confirm مفعّلاً، تُحجز الفروقات حتى يؤكّدها المشغّل.
الافتراضي مغلق. كل فروقة تُحقن لا تزال تمرّ عبر سياج بيانات غير موثوقة.
7. الأوضاع ومفاتيح الإيقاف
Section titled “7. الأوضاع ومفاتيح الإيقاف”الأوضاع (agent.commitment.mode أو KAZMA_COMMITMENT_MODE)
Section titled “الأوضاع (agent.commitment.mode أو KAZMA_COMMITMENT_MODE)”| الوضع | السلوك |
|---|---|
strict | الأكثر تحفظاً — أوسع سطح توضيح/تأكيد |
balanced (افتراضي) | حلّ القصد الواضح، التوضيح فقط للغموض الحقيقي |
autonomous | مقاطعة أدنى |
yolo | عابر فعلياً (الأدوات الخطيرة لا تزال تحت HITL منفصلة) |
مفاتيح الإيقاف (كلها افتراضي مغلق إلا ما ذُكر)
Section titled “مفاتيح الإيقاف (كلها افتراضي مغلق إلا ما ذُكر)”| متغيّر البيئة | الطبقة | الافتراضي | الأثر |
|---|---|---|---|
KAZMA_COMMITMENT_ENABLED | الطبقة كلها | مفعّل | 0 يُعطّل الطبقة كلها |
KAZMA_COMMITMENT_MODE | الوضع | balanced | يتجاوز الوضع |
KAZMA_COMMITMENT_SWARM_SCOPE_ENFORCE | نطاق السرب | مغلق | يكبح امتيازات العمّال المُرسَلين |
KAZMA_COMMITMENT_SOUL_REQUIRES_CONFIRM | بوابة الروح | مغلق | يحجز فروقات الروح للتأكيد |
كل مفتاح إعداد قابل للضبط أيضاً في واجهة الإعدادات / ConfigStore تحت
agent.commitment.* ويُعاد قراءته حيّاً (get_commitment_config) — دون إعادة تشغيل.
8. المقاييس
Section titled “8. المقاييس”مقاييس Prometheus معروضة على /metrics:
kazma_commitment_decisions_total{decision="allow|clarify|confirm|deny|cancelled"}kazma_commitment_pending— الالتزامات المعلّقة بانتظار الحلّ
9. الصدق والافتراضات
Section titled “9. الصدق والافتراضات”- فاشلة-منفتحة في كل مكان — أي خطأ في البوابة يُسجَّل بمستوى debug ويُتيح للأداة المضيّ؛ الطبقة لا تكسر دوراً عاملاً أبداً.
- تخزين تلقائي محافظ — لا تُكتَب المعتقدات فوقها بشراهة.
- لا موافقة متأخرة — لا يمكن تأكيد التزام بأثر رجعي؛ يجب حلّه داخل الدور.
الطبقة كلها مفعّلة افتراضياً في وضع balanced؛ أوقفها بـ
KAZMA_COMMITMENT_ENABLED=0 إن احتجت سلوك عبور خام.