تخطَّ إلى المحتوى
kazma.
EN نجمة 7 ابدأ الآن

طبقة الالتزام

طبقة الالتزام — الحل قبل التنفيذ

Section titled “طبقة الالتزام — الحل قبل التنفيذ”

بوابة سياسات بين نموذج اللغة والتعديلات الدائمة. قبل أن يُسمح للوكيل بالجدولة أو الإرسال أو التنفيذ أو تغيير الإعدادات، تحلّ كاظمة القصد مقابل الذاكرة والسياسات. الأفعال الغامضة تُفكَّك عبر بطاقة توضيح/تأكيد دلالية تفاعلية على كل المنصات. جميع المراحل (0–8) منشورة؛ كل طبقة إنفاذ فاشلة-منفتحة (fail-open) مع مفتاح إيقاف افتراضي مغلق.

ذو صلة: الأمان والسلامة (بوابات HITL الثلاث)، الذاكرة وRAG (مخزن المعتقدات الذي تقرأه البوابة).


1. لماذا وُجدت — فئة الحادث التي تحجبها

Section titled “1. لماذا وُجدت — فئة الحادث التي تحجبها”

تخيّل وكيل جدولة. يقول المستخدم “ذكّرني بالاجتماع.” بدون طبقة التزام، يستطيع نموذج اللغة اختلاع تاريخ معقول، وجدولته، وأسوأ ذلك الكتابة فوق المعتقد الحقيقي للمستخدم عن موعد الاجتماع. هذه فئة فشل حقيقية (حادث “CoPilot”): يتصرف النموذج بثقة على وهم ويُتيح له النظام الاستمرار.

تحلّ كاظمة القصد مقابل الذاكرة قبل التنفيذ، وتحجب المسار الخاطئ على طبقتين:

  1. طبقة الجدولة — تُربط العبارة النسبية (“الثلاثاء القادم”، “خلال يومين”) بحدث حقيقي في الذاكرة، وتُعاد كتابة fire_at للأداة إلى القيمة الصحيحة من الذاكرة (قيمة البوابة تتغلب على قيمة النموذج).
  2. طبقة الذاكرة — لا يجوز أن يحلّ معتقد user_explicit محلّه مصدر ثقة أدنى (llm_inferred / system_tool) (بوابة ثقة المصدر).

إزالة أيٍّ من الثابتين تُعيد فئة الحادث.


كل مسار تعديل يمرّ عبر 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)كتابات الذاكرةنصف الفساد — بوابة ثقة المصدر (مستقلة عن بوابة السياسات)

يُعيد authorize_effect صيغة EffectDecision بإحدى أربع نتائج:

القرارالمعنىما يحدث
allowنفّذاختيارياً مع rewritten_args (مثلاً حسبت البوابة fire_at الصحيح لتذكير)
clarifyأوقف بسؤال موجَّهتُطلق بطاقة مقاطعة حقيقية بخيارات محددة (انظر §4)
confirmأوقف للحصول على موافقة صريحةنفس تجربة البطاقة، تُستخدم للأفعال الحرجة
denyمحجوبيُعاد خطأ واضح للنموذج؛ لا بطاقة ولا تنفيذ

بالإضافة إلى مسار التدقيق فقط لأدوات القراءة، وmutate_fs (الاحتواء في IdeService.resolve)، وdelegate (ثقة HMAC تُفحص عند تحميل المهارة).

الفعلسلوك المحلِّل
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 الموحّد (نفس الذي يعالج موافقات الأدوات الخطيرة) — لا توجد قناة مقاطعة ثانية. انظر الأمان والسلامة.


يمكن كبح عمّال السرب المُرسَلين إلى نطاق امتياز. عندما يكون 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) — دون إعادة تشغيل.


مقاييس Prometheus معروضة على /metrics:

  • kazma_commitment_decisions_total{decision="allow|clarify|confirm|deny|cancelled"}
  • kazma_commitment_pending — الالتزامات المعلّقة بانتظار الحلّ

  • فاشلة-منفتحة في كل مكان — أي خطأ في البوابة يُسجَّل بمستوى debug ويُتيح للأداة المضيّ؛ الطبقة لا تكسر دوراً عاملاً أبداً.
  • تخزين تلقائي محافظ — لا تُكتَب المعتقدات فوقها بشراهة.
  • لا موافقة متأخرة — لا يمكن تأكيد التزام بأثر رجعي؛ يجب حلّه داخل الدور.

الطبقة كلها مفعّلة افتراضياً في وضع balanced؛ أوقفها بـ KAZMA_COMMITMENT_ENABLED=0 إن احتجت سلوك عبور خام.