Skip to content

Latest commit

 

History

History
258 lines (204 loc) · 19.2 KB

File metadata and controls

258 lines (204 loc) · 19.2 KB

⚠️ This is an auto-generated translation. For the latest version, see the English README. Community corrections welcome!

🇺🇸 English | 🇨🇳 简体中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇪🇸 Español | 🇧🇷 Português | 🇩🇪 Deutsch | 🇫🇷 Français | 🇷🇺 Русский | 🇮🇳 हिन्दी | 🇹🇷 Türkçe | 🇻🇳 Tiếng Việt | 🇮🇹 Italiano | 🇸🇦 العربية | 🇮🇱 עברית


failproof ai

FailproofAI%2Ffailproofai | Trendshift FailproofAI%2Ffailproofai | Trendshift

npm CI Supply Chain Discord Reddit Docs License

翻訳: 简体中文 · 日本語 · 한국어 · Español · Português · Deutsch · Français · Русский · हिन्दी · Türkçe · Tiếng Việt · Italiano · العربية · עברית

エージェントが動作するあらゆるハーネスに対応したオブザーバビリティと制御。 エージェントがどこで動いていても、私たちはすべてを把握し、必要なら止めることができます。Failproof は 12 種類のエージェントハーネスにフックし — Claude Code や Codex のようなコーディング CLI、Hermes のようなチャットゲートウェイ、OpenClaw のようなセルフホスト型アシスタント — すべての実行をキャプチャし、危険なツール呼び出しを実行前にブロックします。39 個の組み込みポリシー。ゼロレイテンシー。ローカル実行。

Failproof AI in action


対応ハーネス

12 種類のハーネスを 2 つのカテゴリに分類しています — コーディング CLI が 10 種類、チャット・アシスタントゲートウェイ(Hermes、OpenClaw)が 2 種類です。すべてのハーネスで共通のポリシー API とセッション履歴を使用します。ポリシーでブロックできる内容はハーネスごとに異なります。ツール呼び出しを実行前に停止する機能は 12 種類すべてで検証済み、ターン終了ゲートは 8 種類で対応しています。ハーネス別対応表には各ハーネスが処理するイベントの一覧が掲載されています。

いずれのハーネスでも動作しないエージェントは Python SDK を通じてレポートでき、トレーシング、セッション管理、監査機能が利用できます。その場合の制御には独自ランタイムへのフック実装が必要です — お問い合わせいただければ対応方法をご案内します。

{/* A 6-column table instead of inline runs: table columns never re-wrap, so the grid stays 2×6 at any window width (scrolling on very narrow screens instead of collapsing into ragged orphan rows). */}

Claude Code OpenAI Codex GitHub Copilot Cursor Agent OpenCode Pi
Hermes OpenClaw Factory Droid Devin CLI Antigravity CLI Goose

インストール

npm install -g failproofai
failproofai config                             # エージェントとデーモンを接続する
failproofai policies add FailproofAI/policies  # 適用するポリシーを選択する
failproofai                                    # localhost:8020 でダッシュボードを起動

セットアップはフックを接続しますが、ポリシーは何も適用しません — 2 番目のコマンドがマシンにガードレールを設定します。パックはすべて同じ形式で指定できます(failproofai policies add <owner>/<repo>。policies show <owner>/<repo> で内容を先に確認できます)。ターミナルなしで failproofai config を実行すると — CI 環境、コンテナ、それを操作するエージェントからでも — 対話形式ではなく自動的に設定が適用されます。まだセットアップされていないマシンでは、他のコマンドを実行すると最初に同じウィザードが起動します。FAILPROOFAI_NO_FIRST_RUN=1 で無効にできます。

パックが導入されるまでの間、block-failproofai-commands のみが有効な制御として機能します。これは常時オンで、無効化や一時停止はできません。制御を一時停止できるエージェントは、他のすべてのポリシーも無効にできてしまうためです。


ブロックできること

ポリシー ブロック対象
block-env-files .env などのシークレットファイルの読み取り
warn-repeated-tool-calls 同じ呼び出しをループするエージェント
block-sudo 権限昇格
warn-destructive-sql DROP、TRUNCATE、条件なし DELETE
block-terraform / block-kubectl レビューなしの本番インフラへの変更
block-rm-rf 再帰的なファイル削除
block-force-push / block-push-master git push --force、main への直接プッシュ

これらはすべて呼び出しが実行される前にゲートするため、12 種類すべてのハーネスで機能します。最初の 4 つはツールを呼び出せる任意のエージェントに適用されます。残りの 3 つは開発者に特に人気のポリシーで、コーディング CLI は私たちが最も深くカバーするハーネスクラスです。sanitize-* ファミリーは別扱いで、ツールの戻り値の後に実行されるため、コンテキストへの混入を防ぐのではなく、ツール出力にシークレットが含まれていることを報告します。

→ 39 個の組み込みポリシー一覧


カスタムポリシー

.failproofai/policies/ にファイルを置くだけで自動的に読み込まれます — フラグの指定は不要です。コミットすれば、チーム全員が次回のプルで同じポリシーを受け取ります。

import { customPolicies, deny, allow } from "failproofai";

customPolicies.add({
  name: "no-production-writes",
  match: { events: ["PreToolUse"] },
  fn: async (ctx) => {
    if (ctx.toolInput?.file_path?.includes("production"))
      return deny("Writes to production paths are blocked.");
    return allow();
  },
});

各ポリシーで使用できる 3 種類の判定:

判定 効果
allow() 操作を許可する
deny(message) ブロックする — メッセージがエージェントに返される
instruct(message) 通過させるが、エージェントの次のプロンプトにコンテキストを追加する

→ ポリシーを書く


オブザーバビリティ

制御は機能の半分に過ぎません。もう半分は、エージェントが実際に何をしたかを把握することです。

引数なしで failproofai を実行すると、マシン上にすである実行履歴を読み込んで localhost:8020 でダッシュボードを提供します — アカウント不要、サインアップ不要、データがマシンの外に出ることもありません。セッション一覧、モデル呼び出しのシーケンス、各実行内のツール呼び出しとフックの判定、ブロックされた内容とポリシーがエージェントに伝えた内容、そしてオフライン監査(failproofai audit)として履歴をスキャンしてリスクのあるパターンを検出し、対処するポリシーを提案します。

→ ローカルダッシュボード · トレースを読む · ローカル監査

Failproof AI Observability は同じデータモデルのホスト型サービスで、複数マシンでエージェントを運用するチーム向けです。すべてのハーネスからのすべての実行を一か所で管理、並列サブエージェントを個別レーンで表示する実行グラフ、モデル・ツール・フックの p50/p95/p99 レイテンシー、モデルごとのコストとコンテキストウィンドウのトラッキング、エラートラッキング、共有可能なダッシュボード付きの独自トレースへの SQL クエリ、独自サービスでスコアリングする評価機能、繰り返し発生する障害をエビデンスに基づく知見として記録するスケジュール監査、Slack・メール・署名付き Webhook へのアラート通知が利用できます。Enterprise プランでは独自クラスターへのセルフホスティングも対応しています。

→ セッション · 監査 · デモを予約する


ドキュメント

はじめに
クイックスタート インストール、ハーネスの接続、初回実行の確認
コンセプト フックシステムの仕組み
対応ハーネス 12 種類すべてと各ハーネスで制御できること
監視
セッション 実行を追う:モデル、ツール、エラー、レイテンシー
トレースを読む 実行グラフが示していること
監査 多くのセッションにまたがる障害パターンを見つける
ローカルダッシュボード localhost:8020、アカウント不要
制御
ポリシーパック Failproof AI のポリシーとポリシーハブのパック
ポリシーを書く 監査結果から、またはコードで作成
設定 設定スコープ、マージルール、ポリシーパラメーター
独自エージェントの計測
Python SDK ハーネスなしのエージェントから実行をレポートする
Policy SDK allow / deny / instruct リファレンス

ライセンス

MIT に Commons Clause を付加したライセンス — 社内利用および個人利用は無料。failproofai 自体の商業的な再販には別途契約が必要です。全文は LICENSE をご覧ください。


コントリビューション

CONTRIBUTING.md をご覧ください。新しいポリシー、エッジケースの対応、翻訳はいずれも歓迎します。

開始前にビルドしてください。 最初に bun install && bun run build を実行してください。このリポジトリは failproofai 自身のフックを自分自身に適用しており、フックは failproofai のインポートをコンパイル済みの dist/ バンドルに対して解決します — ビルドなしでは Cannot find package 'failproofai' というフックエラーが発生します。src/ を変更した後は再ビルドしてください。詳細は リポジトリ内の開発用フックを動かすにはビルドが必要 をご覧ください。


SF とベンガルールの befailproof.ai チームが ❤️ を込めて開発しています。