Failproof AI は、強制の失敗が無音でリスクのある作業を許可するのではなく、明示的に可視化されるよう設計されています。
失敗クローズドブロックの診断
- Admin → enforcement に移動し、対象マシンを開きます。
- 最終チェックイン日時、割り当てられたデプロイメント、および報告されたデプロイメントを確認します。
- Observe → policy に移動し、拒否された決定のセッションを開きます。
- 理由がデーモンの到達不能、バージョンのずれ、またはポリシー自体のどれを示しているか確認します。
failproofai config を再実行すると、パッケージのアップグレード後にデーモンが更新・再起動されます。
failproofaid を使用するよう設定されたマシンでは、デーモンが唯一の評価者です。デーモンに到達できない場合、またはプロトコルバージョンが CLI と一致しない場合、フック評価は失敗クローズドになります。アクションは拒否され、オペレーターにデーモンの確認または更新を促す理由が表示されます。
デーモン設定前は、フックがインプロセスでポリシーを評価します。デーモン設定が記録された後は、Failproof AI はデーモンが失敗した際に別の評価者へ無音でフォールバックすることはありません。
失敗クローズドの決定への対応
failproofai config --status を実行します。
- バージョンが異なる場合は、パッケージを更新した後に
failproofai config を再実行します。
- デーモンに到達できない場合は、サービスの状態とローカルログを確認します。
- ポリシー評価のパスが正常であることを確認してからエージェント作業を再開します。
ブロックされたアクションを繰り返し再試行しないでください。失敗クローズドの応答は、そのアクションが安全であることをシステムが確認できなかったことを意味します。
パックが読み込まれない場合
パックを強制するよう指示されたマシンが、そのパックを実行できない場合、静かに続行するのではなく拒否します。トリガーは記録された期待値であり、空の期待値ではありません。パックがインストールされていないマシンは無音ですが、宣言されているのに解決できないパック、またはマニフェストの宣言より少ない登録しかできないパックは拒否します。
この拒否は、到達不能なデーモンとは異なり限定的です。デーモンに到達できない場合、評価が全く行われていないため何も安全とは言えません。読み込まれないパックには、不足しているガードの列挙可能なセットがあります。宣言されたすべてのポリシーがそれぞれ match を持つためです。そのため、対象のポリシーがカバーするイベントとツールのみを拒否し、それ以外はすべて続行されます。
以下の場合は発動しません:
observe パック(構成上、評価後に破棄するため)
- 採用しなかったポリシー、または明示的に無効にしたポリシー
- ローダーが受け取らなかったパック(「登録なし」と意図的なスキップを区別できないため)
- アクティブなセッションの一時停止
- 読み込みタイムアウト(一時的なもの)— ディスクが一時的に遅い程度で、人が介入するまで拒否し続けるべきではありません
UserPromptSubmit は、不足しているポリシーが何を宣言していても、拒否ではなく instruct を行います。一括拒否を行うと、問題を修正できるエージェントへのアクセスも失われてしまいます。
対処方法
このコマンドは読み込まれないインストール済みパックを名前とともに表示し、理由を示したうえでゼロ以外の終了コードで終了します。その後、パックを再インストール(failproofai pack add <source>)するか、削除(failproofai pack remove <publisher/name>)してください。削除すると期待値が取り消され、拒否も停止します。