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

تأليف سياسة مخصصة

  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.

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

انشر إصدارًا، ونشره في وضع المراقبة، والتحقق من القرارات، والانتقال إلى الإنفاذ.