カスタムポリシーの作成
- ダッシュボード
- CLI
- Admin → ポリシーエディター に移動し、新しいポリシー を選択して、防止したい障害を説明します。
- ポリシーソースを追加し、エディターで期待されるマッチと安全な非マッチをテストします。すべてのバリデーションエラーを解消します。
- ドラフトを保存し、バージョンを公開 を選択して不変バージョンを作成します。
-
Admin → 施行 に移動し、観察 モードでテストマシンにバージョンをデプロイし、施行する前に 観察 → ポリシー で決定を確認します。

狭いルールから始める
このポリシーは、コマンドがproductionをターゲットにしている場合にのみ、破壊的なKubernetesコマンドをブロックします。この厳密な障害モード以外はすべてallow() を返します。
allow() を返します。
決定を選択する
理由は回復しなければならないエージェント向けに書いてください。何が検出されたか、代わりに何をすべきかを説明します。
ポリシーオブジェクト
ツールのフィルタリングは
fn 内で行ってください。match.toolNames はパブリックなカスタムポリシー型には含まれていません。
ポリシーコンテキスト
すべてのポリシーはPolicyContext を受け取ります。
すべてのオプション値を本当にオプションとして扱ってください。エージェントのバージョンとイベントタイプによって提供されるフィールドは異なります。
共通ツール入力
Failproof AI はサポートされているハーネス間で共通ツールを正規化するため、ポリシーは通常1つの入力形式を使用できます。
ツール入力値は
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。一般的なポリシーパターンの作成
保護されたパスへの書き込みをブロックする
非ブロッキングのガイダンスを提供する
セッション完了をゲートする
ポリシーファイルの読み込み
コンベンションファイル
コンベンションファイルは自動的に読み込まれます:- プロジェクトとユーザーのポリシーディレクトリは両方読み込まれます。
- ファイルは各ディレクトリ内でアルファベット順に読み込まれます。
- ファイルは
policies.js、policies.mjs、またはpolicies.tsで終わる必要があります。 - 1つのファイル内で複数の
customPolicies.add()呼び出しがサポートされています。 - ローカルモジュールからの相対インポートがサポートされています。
- プロジェクトポリシーはコミットでき、同じルールがリポジトリに従います。
明示的なファイル
バリデーションや設定でエントリーファイルを直接指定する場合は明示的なパスを使用してください:バリデートとテスト
バリデーションはプロダクションローダーを通じてモジュールを実行し、少なくとも1つのポリシーが登録されていることを確認します。- マッチして意図したポリシー理由を生成しなければならないアクション。
allow()を返さなければならない近しいが安全なアクション。- ツールフィールドの欠落または不正な形式。
- 代替コマンド構文、パス、クォート、大文字小文字、および空白。
- 利用できないサブプロセスまたはネットワーク依存関係。
ランタイム動作
- 組み込みポリシーはカスタムポリシーより先に評価されます。
- 最初の
denyでそれ以降のポリシー評価が停止します。 - どのポリシーもイベントを拒否しない場合、複数の
instruct結果を組み合わせることができます。 - ポリシー関数の実行期限は10秒です。
- 例外またはタイムアウトはログに記録され、
allow()として扱われます。 - 読み込みに失敗したコンベンションファイルはスキップされ、他のカスタムファイルと組み込みポリシーは続行されます。
- トップレベルのモジュール読み込みにも10秒の期限があります。
- クラウド観察モードはポリシーを実行しますが、非許可の決定を施行せずに記録します。
fn 内の処理を制限し、依存関係の失敗をキャッチし、その失敗がアクションを許可するか拒否するかを意図的に選択してください。
APIエクスポート
TypeScriptは
PolicyContext、PolicyResult、CustomHook、PolicyDecision、および PolicyFunction をエクスポートします。
カスタムポリシーをデプロイする
バージョンを公開し、観察モードでデプロイして決定を確認し、施行に移行します。

