Skip to main content
تحول السياسات المخصصة نمط فشل من آثارك أو عمليات التدقيق إلى قرار يتم تنفيذه أثناء عمل الوكيل. يمكن للسياسة السماح بإجراء ما، أو إرشاد الوكيل، أو منع الإجراء قبل أن يسبب حادثة أخرى. استخدم سياسة مخصصة عندما يعتمد السلوك على أدواتك أو مساراتك أو أوامرك أو بيئاتك أو قواعد التشغيل. تحقق من حزمة سياسات Failproof AI أولاً حتى لا تعيد إنشاء عنصر تحكم موجود.

كتابة سياسة مخصصة

  1. انتقل إلى Admin → محرر السياسات، حدد سياسة جديدة، وصف حالة الفشل التي تريد منعها.
  2. أضف مصدر السياسة، ثم اختبر المطابقات المتوقعة والمطابقات الآمنة غير المطابقة في المحرر. حل كل خطأ تحقق.
  3. احفظ المسودة وحدد نشر النسخة لإنشاء نسخة غير قابلة للتغيير.
  4. انتقل إلى Admin → الفرض، وأنشر النسخة على جهاز اختبار في وضع المراقبة، وتحقق من قراراتها تحت المراقبة → السياسة قبل فرضها. محرر السياسات المستخدم لكتابة ونشر سياسة مخصصة.

ابدأ بقاعدة ضيقة

تحظر هذه السياسة أوامر Kubernetes المدمرة فقط عندما يستهدف الأمر الإنتاج. كل شيء خارج نمط الفشل هذا بالضبط يرجع allow().
السياسات الجيدة ضيقة بما يكفي للشرح في جملة واحدة. طابق الإجراء الملاحظ — وليس النية التي تأمل أن يكون لدى الوكيل — وارجع allow() بمجرد عدم تطبيق القاعدة.

اختر قراراً

اكتب السبب للوكيل الذي يجب أن يتعافى. اشرح ما تم اكتشافه وما يجب أن يفعله بدلاً من ذلك.
لا تستخدم instruct() لحد أمان. يختلف توصيل الإرشادات حسب حزام الوكيل. استخدم deny() عندما يجب منع الإجراء.

كائن السياسة

قم بتصفية الأدوات داخل fn. match.toolNames ليس جزءاً من نوع السياسة المخصصة العام.

سياق السياسة

تتلقى كل سياسة PolicyContext. اعامل كل قيمة اختيارية على أنها اختيارية حقاً. إصدارات الوكيل وأنواع الأحداث لا توفر جميعها نفس الحقول.

مدخلات الأدوات الشائعة

يقوم Failproof AI بتوحيد الأدوات الشائعة عبر الأحزمة المدعومة بحيث يمكن لسياسة عادة استخدام شكل مدخل واحد. استخدم الإكراه الدفاعي لأن قيم مدخلات الأداة مكتوبة كـ unknown:

اختر الحدث

توفر الحدث والسلوك الحظري يعتمد على حزام الوكيل. انظر أحزمة الوكيل قبل الاعتماد على حدث عبر أسطول مختلط.
SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, Notification, SubagentStart, SubagentStop, TaskCreated, TaskCompleted, Stop, StopFailure, TeammateIdle, InstructionsLoaded, ConfigChange, CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove, PreCompact, PostCompact, Elicitation, ElicitationResult, UserPromptExpansion, PostToolBatch, و Setup.

كتابة أنماط السياسة الشائعة

حظر الكتابات في المسارات المحمية

إعطاء إرشادات غير حظرية

إغلاق إنهاء الجلسة

يمكن لحدث Stop المرفوض أن يجعل الوكيل يعيد المحاولة. قم بالإغلاق فقط على شرط يمكن للوكيل تلبيته في البيئة الحالية، وحدّ كل استدعاء عملية فرعية أو شبكة.

تحميل ملفات السياسة

ملفات الاتفاقية

تحميل ملفات الاتفاقية تلقائياً:
  • يتم تحميل أدلة السياسات للمشروع والمستخدم معاً.
  • يتم تحميل الملفات أبجدياً داخل كل دليل.
  • يجب أن ينتهي الملف بـ policies.js أو policies.mjs أو policies.ts.
  • تدعم استدعاءات متعددة customPolicies.add() في ملف واحد.
  • الواردات النسبية من الوحدات المحلية مدعومة.
  • يمكن التزام سياسات المشروع بحيث تتبع نفس القواعد الدقيقة المستودع.

ملفات صريحة

استخدم المسارات الصريحة عندما يجب أن يسمي التحقق أو التكوين ملف الدخول مباشرة:
تحميل الملفات الصريحة أولاً، تليها ملفات اتفاقية المشروع ثم ملفات اتفاقية المستخدم. الملف المكتشف من خلال كلا المسارين يتم تحميله مرة واحدة.

التحقق والاختبار

يقوم التحقق بتنفيذ الوحدة من خلال محمل الإنتاج ويؤكد أنها تسجل سياسة واحدة على الأقل.
يعترض التحقق على الملفات المفقودة وأخطاء بناء الجملة والواردات غير المحلولة والاستثناءات من المستوى الأعلى والمهل الزمنية لتحميل الوحدة. لا يثبت أن منطق المطابقة صحيح. اختبر على الأقل هذه الحالات:
  • إجراء واحد يجب أن يتطابق وينتج السبب السياسي المقصود.
  • إجراء آمن واحد قريب يجب أن يرجع allow().
  • حقول الأداة المفقودة أو غير المشكلة بشكل صحيح.
  • بناء جملة الأمر البديل والمسارات والعروض والهيكل وسقوط المسافات البيضاء.
  • عملية فرعية أو اعتماد شبكة غير متاح.
انسب النتيجة إلى السياسة المخصصة تحت المراقبة → السياسة. الاختبار المحظور غير كافٍ إذا اتخذت سياسة مدمجة أخرى القرار.

سلوك وقت التشغيل

  • تقيّم السياسات المدمجة قبل السياسات المخصصة.
  • أول deny يوقف مزيد من تقييم السياسة.
  • يمكن دمج نتائج instruct متعددة عندما لا ترفض أي سياسة الحدث.
  • دالة السياسة لها موعد نهائي لتنفيذ مدته 10 ثوان.
  • يتم تسجيل الاستثناء المرفوع أو المهلة الزمنية والتعامل معها كـ allow().
  • ملف اتفاقية فشل التحميل يتم تخطيه؛ تستمر الملفات المخصصة الأخرى والسياسات المدمجة.
  • تحميل الوحدة من المستوى الأعلى أيضاً له مهلة زمنية مدتها 10 ثوان.
  • وضع الملاحظة السحابية يقوم بتشغيل السياسة لكن يسجل قراراً غير سماح دون فرضه.
اجعل وحدات السياسة حتمية وسريعة. تجنب استدعاءات الشبكة من المستوى الأعلى أو بدء الخادم. ربط العمل داخل fn، اقبض فشل الاعتماد، واختر عن قصد ما إذا كان هذا الفشل يجب أن يسمح أو ينكر العملية.

تصدير API

تُصدّر TypeScript PolicyContext و PolicyResult و CustomHook و PolicyDecision و PolicyFunction.

نشر السياسات المخصصة

انشر نسخة، انشرها في وضع المراقبة، تحقق من القرارات، وانتقل إلى الفرض.