カスタムポリシーを作成する
- ダッシュボード
- CLI
- Admin → policy editor に移動し、New policy を選択して、防止したい障害を説明します。
- ポリシーソースを追加し、エディターで期待される一致ケースと安全な非一致ケースをテストします。すべてのバリデーションエラーを解消してください。
- ドラフトを保存し、Publish version を選択してイミュータブルなバージョンを作成します。
-
Admin → enforcement に移動し、テストマシンに observe モードでバージョンをデプロイし、適用前に Observe → policy で判断内容を確認します。

狭いルールから始める
このポリシーは、コマンドが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つのポリシーが登録されていることを確認します。- 一致して意図したポリシー理由を生成するアクションを1つ。
allow()を返す必要のある近いが安全なアクションを1つ。- 欠落または不正なツールフィールド。
- 代替コマンド構文、パス、引用符、大文字小文字、空白。
- 利用不可能なサブプロセスまたはネットワーク依存関係。
ランタイムの動作
- 組み込みポリシーはカスタムポリシーより前に評価されます。
- 最初の
denyがそれ以降のポリシー評価を停止します。 - イベントを拒否するポリシーがない場合、複数の
instruct結果を組み合わせることができます。 - ポリシー関数の実行期限は10秒です。
- スローされた例外またはタイムアウトはログに記録され、
allow()として扱われます。 - 読み込みに失敗したコンベンションファイルはスキップされ、他のカスタムファイルと組み込みポリシーは継続します。
- トップレベルのモジュール読み込みにも10秒の期限があります。
- クラウドオブザーブモードはポリシーを実行しますが、非allowの判断を強制せずに記録します。
fn 内の処理に上限を設け、依存関係の失敗をキャッチし、その失敗が操作を許可すべきか拒否すべきかを意図的に選択してください。
APIエクスポート
TypeScript は
PolicyContext、PolicyResult、CustomHook、PolicyDecision、PolicyFunction をエクスポートします。
カスタムポリシーをデプロイする
バージョンを公開し、observeモードでデプロイし、判断内容を確認して、適用に移行します。

