Skip to main content
تتيح لك السياسات المخصصة كتابة قواعد لأي سلوك وكيل: فرض اتفاقيات المشروع، منع الانجراف، إغلاق العمليات المدمرة، كشف الوكلاء العالقين، أو التكامل مع Slack وسير عمل الموافقة وغير ذلك. تستخدم نفس نظام أحداث الخطاف وقرارات allow و deny و instruct التي تستخدمها السياسات المدمجة.

مثال سريع

قم بتثبيتها:

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

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

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

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

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

استخدام كليهما معاً

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

API

الاستيراد

customPolicies.add(hook)

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

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

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

رسائل السماح المعلوماتية

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" إلى مسار dist الفعلي وإنشاء ملفات .mjs مؤقتة لضمان التوافقية ESM.

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

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

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

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

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


أمثلة

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

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

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

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