Skip to main content

title: “السياسات المخصصة” description: “قم بتأليف واختبار ونشر سياسات JavaScript أو TypeScript لحالات الفشل الخاصة بوكلائك.” icon: “shield-plus”

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

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

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

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

تحظر هذه السياسة أوامر 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().
  • حقول أداة مفقودة أو مشوهة.
  • بناء جملة أوامر بديل والمسارات والاقتباسات والحالة والمسافة البيضاء.
  • عملية فرعية أو اعتماد شبكة غير متاح.
نسب النتيجة إلى سياستك المخصصة ضمن Observe → policy. الاختبار المحظور غير كافٍ إذا كانت سياسة مدمجة أخرى هي التي اتخذت القرار.

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

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

تصدير API

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

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

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