Skip to main content

title: السياسات المخصصة description: “اكتب سياساتك الخاصة في JavaScript - فرض الاتفاقيات والوقاية من الانجراف واكتشاف الأعطال والتكامل مع الأنظمة الخارجية” icon: code

تتيح لك السياسات المخصصة كتابة قواعد لأي سلوك وكيل: فرض اتفاقيات المشروع والوقاية من الانجراف وحجب العمليات المدمرة واكتشاف الوكلاء المحتجزين أو التكامل مع Slack وسير عمل الموافقة والمزيد. تستخدم نفس نظام أحداث الخطاف وقرارات allow و deny و instruct مثل السياسات المدمجة.

مثال سريع

ثبّتها:

طريقتان لتحميل السياسات المخصصة

الخيار 1: المستند على الاتفاقية (موصى به)

انقل ملفات *policies.{js,mjs,ts} إلى .failproofai/policies/ وسيتم تحميلها تلقائياً — بدون حاجة إلى علامات أو تغييرات في الإعدادات. يعمل هذا مثل git hooks: انقل ملف، ويعمل فقط.
كيفية العمل:
  • يتم مسح كلا دليل المشروع والمستخدم (اتحاد — ليس أول نطاق-يفوز)
  • يتم تحميل الملفات أبجدياً في كل دليل. البادئة مع 01- و 02- للتحكم في الترتيب
  • يتم تحميل الملفات المطابقة فقط *policies.{js,mjs,ts}؛ يتم تجاهل الملفات الأخرى
  • يتم تحميل كل ملف بشكل مستقل (fail-open لكل ملف)
  • يعمل إلى جانب السياسات المخصصة والمدمجة الواضحة --custom
سياسات الاتفاقية هي أسهل طريقة لبناء معيار جودة لمؤسستك. التزم .failproofai/policies/ في git وكل عضو في الفريق يحصل على نفس القواعد تلقائياً — لا حاجة إلى إعدادات لكل مطور. مع اكتشاف فريقك لأنماط الفشل الجديدة، أضف سياسة وادفع. بمرور الوقت، تصبح هذه معيار جودة حي يتحسن باستمرار مع كل مساهمة.

الخيار 2: مسار الملف الصريح

يتم تخزين المسار المطلق المحل في policies-config.json كـ customPoliciesPath. يتم تحميل الملف بشكل جديد في كل حدث خطاف — لا يوجد تخزين مؤقت بين الأحداث.

استخدام الاثنين معاً

يمكن للسياسات الاتفاقية والملف --custom الصريح أن يتعايشوا. ترتيب التحميل:
  1. ملف customPoliciesPath الصريح (إذا تم تكوينه)
  2. ملفات اتفاقية المشروع ({cwd}/.failproofai/policies/، أبجدياً)
  3. ملفات اتفاقية المستخدم (~/.failproofai/policies/، أبجدياً)

واجهة برمجية التطبيقات

استيراد

customPolicies.add(hook)

يسجل سياسة. استدعِ هذا عدة مرات حسب الحاجة لسياسات متعددة في نفس الملف.

مساعدات القرار

deny(message) - تظهر الرسالة في Claude مسبوقة بـ "Blocked by failproofai:". يقطع deny واحد كل التقييم الإضافي. instruct(message) - يتم إضافة الرسالة إلى سياق Claude للاستدعاء الأداة الحالي. يتم تجميع جميع رسائل instruct وتسليمها معاً.
يمكنك إضافة إرشادات إضافية إلى أي رسالة deny أو instruct بإضافة حقل hint في policyParams — لا حاجة إلى تغيير الكود. يعمل هذا مع السياسات المخصصة (custom/) واتفاقية المشروع (.failproofai-project/) واتفاقية المستخدم (.failproofai-user/) أيضاً. انظر Configuration → hint للتفاصيل.

رسائل allow إعلامية

allow(message) يسمح بالعملية و يرسل رسالة معلوماتية مرة أخرى إلى Claude. يتم تسليم الرسالة كـ additionalContext في استجابة stdout لمعالج الخطاف — نفس الآلية المستخدمة من قبل instruct، ولكن مختلفة من الناحية الدلالية: إنها تحديث حالة، وليس تحذير. حالات الاستخدام:
  • تأكيدات الحالة: allow("All CI checks passed.") — يخبر Claude بأن كل شيء أخضر
  • شروحات fail-open: allow("GitHub CLI not installed, skipping CI check.") — يخبر Claude سبب تخطي الفحص حتى يكون لديه السياق الكامل
  • رسائل متعددة تتراكم: إذا أرجعت عدة سياسات allow(message)، يتم دمج جميع الرسائل مع فواصل الأسطر وتسليمها معاً

حقول PolicyContext

حقول SessionMetadata

أنواع الأحداث


ترتيب التقييم

يتم تقييم السياسات بهذا الترتيب:
  1. السياسات المدمجة (بترتيب التعريف)
  2. السياسات المخصصة الصريحة من customPoliciesPath (بترتيب .add())
  3. سياسات الاتفاقية من مشروع .failproofai/policies/ (ملفات أبجدياً، ترتيب .add() بالداخل)
  4. سياسات الاتفاقية من مستخدم ~/.failproofai/policies/ (ملفات أبجدياً، ترتيب .add() بالداخل)
يقطع أول deny جميع السياسات اللاحقة. يتم تجميع جميع رسائل instruct وتسليمها معاً.

الاستيرادات المتعددة

يمكن لملفات السياسات المخصصة أن تستورد الوحدات المحلية باستخدام المسارات النسبية:
يتم حل جميع الاستيرادات النسبية القابلة للوصول من ملف الإدخال. يتم تنفيذ هذا بإعادة كتابة استيرادات from "failproofai" إلى مسار التوزيع الفعلي وإنشاء ملفات .mjs مؤقتة لضمان التوافق ESM.

تصفية نوع الحدث

استخدم match.events لتقييد وقت تشغيل السياسة:
حذف match بالكامل للتشغيل على كل نوع حدث.

معالجة الأخطاء وأنماط الفشل

السياسات المخصصة fail-open: الأخطاء لا تحجب السياسات المدمجة أو تعطل معالج الخطاف.
لتصحيح أخطاء السياسة المخصصة، راقب ملف السجل:

مثال كامل: سياسات متعددة


أمثلة

يحتوي دليل examples/ على ملفات سياسات جاهزة للتشغيل:

استخدام أمثلة الملفات الصريحة

استخدام أمثلة مستندة على الاتفاقية

لا حاجة إلى أمر تثبيت — يتم التقاط الملفات تلقائياً في حدث الخطاف التالي.