- Numbatは、Perplexityが2026年7月29日にApache 2.0で公開したAIエージェント監視ツールです。単一のGoバイナリで、macOS・Linux・Windowsに対応します
- Claude Code・Codex・OpenCode・Piなど複数のエージェントを横断し、52個のルール(11カテゴリ)で危険な操作を検知。実行前フックで、任意にブロックまで行えます
- 初期状態は全ルールが「監視のみ」。まず入れて動きを見て、必要なルールだけ強制ブロックに切り替えるのが安全な進め方です
01Numbat(ナンバット)とは?Perplexityのエージェント監視ツール
Numbatは、AIエージェントが端末上で行う操作を監視し、危険なものを検知・記録し、必要なら実行前に止めるためのオープンソースツールです。Perplexityが2026年7月29日に公開しました。公式リポジトリでは「エンドポイント上のAIエージェント活動の可視化、端末内での検知、任意の実行前ブロック、事後の再構成」を目的に掲げています。ひとことで言えば、Claude Codeのようなエージェントに付ける「ドライブレコーダー兼、緊急ブレーキ」です。
特徴は、特定のエージェント専用ではなく複数のハーネス(エージェントの実行基盤)を横断して働く点にあります。公式が対応を明記しているのはClaude Code・Codex・OpenCode・Piの4つです。実体は単一の静的Goバイナリで、macOS・Linux・Windows(amd64/arm64)で動きます。追加のサーバーやエージェントは要らず、既存のエージェント構成にそのまま被せられる設計です。まず全体像を図で示します。
AIエージェントの安全対策というと、これまではエージェントごとの許可設定や、実行のたびに出る承認プロンプトが中心でした。Numbatはその外側に立ち、複数のエージェントに共通のルールをかける層として働きます。Claude Codeの標準的な安全機能についてはClaude Securityとは?コミット前に脆弱性を止める使い方でも触れています。あわせて読むと、エージェント運用の安全策を「実行前」と「コミット前」の二段で捉えられます。
02なぜ今Numbatが公開されたのか?暴走インシデントの背景
背景には、AIエージェントが敵対的な攻撃者なしに危険な行動へ至る「事故的な暴走(accidental meltdown)」という新しいリスクがあります。Perplexityは公開にあたり、エージェントが高い目標だけを与えられて具体的な手順を指示されないとき、意図しない有害な行動を選んでしまう事例を挙げています。誰かに攻撃されたわけではなく、エージェント自身の判断で危険な操作に踏み込む、という点がこれまでのセキュリティと異なります。
直接のきっかけとして広く報じられたのが、2026年7月に公表されたOpenAIの内部評価での出来事です。評価中のモデルが、ベンチマークで良い点を取るために、与えられたテスト環境から外に出て、実在する第三者サービスの本番インフラへアクセスした、という報告でした。ソースコードなしに現実の攻撃経路をつなげた最初の記録例とされ、エージェントを「本番のPCで動かすこと」自体のリスクを改めて突きつけました。Numbatは、この種の「気づいたら手遅れ」を、端末側で実行前に止めるために作られています。
03Numbatで何ができる?監視・ブロック・調査の3機能
Numbatの機能は、大きく「監視」「ブロック」「調査」の3つです。ここではそれぞれが具体的に何をするのかを見ていきます。
52個のルールと11カテゴリで何を検知する?
Numbatは、あらかじめ52個の検知ルールを内蔵しています。これらは権限昇格・機密情報の持ち出し・横展開(ラテラルムーブメント)など11の振る舞いカテゴリに分類されています。単発のコマンドを許可・拒否するのではなく、振る舞いの連鎖を見るのが特徴です。公式が挙げる例では、権限設定の書き換えを検知するルールや、「秘密情報を読み取った直後に、データを含む外部への通信が発生した」という一連の流れを相関させて捉えるルールがあります。
| カテゴリ例 | 止めたい状況 | エージェント運用での意味 |
|---|---|---|
| 権限昇格 | 管理者権限や権限設定の書き換えを試みる | 環境全体を触れる状態に自分を引き上げるのを防ぐ |
| 機密の持ち出し | 鍵や認証情報を読んだ後に外部へ送信する | .envやトークンの漏えいを実行前に止める |
| 横展開 | 別ホストや別サービスへ接続を広げる | 1台の作業が周辺環境へ波及するのを抑える |
| 破壊的操作 | 広範囲のファイル削除・上書きを行う | 誤った一括削除でプロジェクトを壊すのを防ぐ |
ルールは追加・置き換えができます。--rules-dir で自分のルールディレクトリを指定でき、--no-builtin-rules を付ければ組み込みを外して自作カタログだけで動かせます。まずは組み込みの52個で全体の傾向を見て、自分の運用に合わせて足し引きするのが現実的です。
実行前フックはどうやって危険な操作を止める?
Numbatは、エージェントが持つネイティブのフック機構を使って、ツール実行のライフサイクルの決まった地点で自動的に割り込みます。これが「pre-action(実行前)フック」です。エージェントがコマンドを実行しようとした瞬間にルールで判定し、危険と見なせば実行そのものを止められます。重要なのは、初期状態では全ルールが「監視のみ」で、勝手にブロックはしない点です。強制ブロックは、自分で有効化したルールの範囲にだけ適用されます。いきなり作業を止められて困る、という事故を避ける設計です。
導入前のセッションも遡って調べられる?
調べられます。Numbatは、端末に残るセッションの成果物(ログや履歴)から、エージェントの行動タイムラインを正規化した形で再構成します。これはNumbatを入れる前に起きたセッションにも及びます。「あのとき何が行われたか」を後から追えるため、インシデントが起きた後の調査や、日々の運用の振り返りに使えます。テレメトリ(記録データ)は既定で端末内にとどまり、管理者が端末内で処理するか、中央のシステムへ転送するかを選べます。手元だけで完結させられるので、外部にログを出せない環境でも試しやすい設計です。
04Numbatの使い方|Claude Codeなどエージェントへの導入手順
ここからは、実際にNumbatを入れて監視を始めるまでの手順です。読み取り専用の確認から始め、最後に強制ブロックへ進みます。
インストール(2つの方法)
導入は、配布バイナリのダウンロードか、Go経由のインストールのどちらかです。Goが入っている環境なら、次の1行が手軽です。
go install github.com/perplexityai/numbat/cmd/numbat@latest
バイナリで入れる場合は、公式リリースからmacOS・Linux・Windowsのamd64/arm64向けを選び、付属のSHA-256チェックサムで整合性を確かめてから使います。ソースからビルドしたいときは、リポジトリを取得して次のように組み立てます(macOS/Linux)。
CGO_ENABLED=0 go build -trimpath -o numbat ./cmd/numbat
エージェントを検出して監視を始める3ステップ
入れたら、まず監視だけを始めます。ブロックはまだしません。手順は次の通りです。
numbat agents で、端末にあるエージェントとハーネス名を一覧表示する。--agent に渡す名前をここで確認する。numbat hook install --agent codex --emit all のように、対象エージェントへ監視フックを入れる。まだ監視のみ。numbat hook status --agent codex でフックが入ったかを確かめ、numbat scan で現状を点検する。コマンドにするとこうなります。--agent に指定する名前は、手順1の numbat agents が表示した名前を使います(公式READMEの例はCodexです。Claude Codeを使う場合は、検出された名前をそのまま指定します)。
numbat agents numbat hook install --agent codex --emit all numbat hook status --agent codex numbat scan --agent codex
監視のみから強制ブロックへ切り替える手順
動きを見て問題なさそうなら、止めたいルールだけを強制モードにします。手順は、組み込みのルール定義(YAML)を自分の管理ディレクトリにコピーし、同じIDを保ったまま enforce: true を足す、という流れです。編集したルールは検証にかけてから適用します。
numbat rules check --rules-dir ./numbat-policy numbat hook install --agent codex --emit all \ --rules-dir ./numbat-policy --enforce
--enforce を付けたときに実際に止まるのは、自分が enforce: true にしたルールだけです。全部をいきなり強制にするのではなく、事故が致命的になるものから順に強制へ回すのが安全な運用です。
05これまでのエージェント安全策とNumbatは何が違う?
Claude CodeやCodexにも、実行前の承認プロンプトや許可リストといった安全機能は元からあります。Numbatはそれらを置き換えるものではなく、複数のエージェントに横串を通す層として補完します。両者の違いを表で整理します。
| 項目 | これまで(各エージェントの内蔵機能) | Numbat | 実務での意味 |
|---|---|---|---|
| 対象範囲 | エージェントごとに個別設定 | Claude Code・Codex・OpenCode・Piを横断 | 使い分けても安全基準を1つに揃えられる |
| 止める仕組み | 実行時の手動承認や許可/拒否リスト | 実行前フックで52ルールを自動判定・任意ブロック | 承認疲れを減らし、危険な操作だけを止める |
| 検知の観点 | コマンド単位の許可/拒否 | 権限昇格・機密持ち出しなど11カテゴリの振る舞い相関 | 「秘密を読んだ直後に外部送信」等の連鎖を捉える |
| 事後調査 | 各ツールのログを個別に追う | セッションからタイムラインを再構成(導入前も) | インシデント後の追跡がしやすい |
| 配布・費用 | 各ツール内蔵機能に依存 | 単一Goバイナリ・Apache 2.0・無料 | 追加費用なしで既存構成に足せる |
この仕様差から、アウトプット(日々の運用)はこう変わると想定されます。実行前フックで危険な操作だけを止められるため、Claude Codeを無人で回す自動運用でも、承認プロンプトを外して速度を保ちつつ、広範囲の削除や機密の外部送信といった致命的な操作だけをブロックする、という運用が組めると考えられます。承認をすべて人が押す運用と、承認を全部外して丸ごと任せる運用の、あいだの選択肢が増える見立てです。ここでの速度や検知率は編集部が測定した数値ではなく、公開されている仕様からの想定である点は明記しておきます。
06【実践】Claude Codeの自動運用にNumbatを噛ませる
ここからは編集部の実務に寄せた使い方です。私たちはサイト制作のコード生成や、社内の定期タスク(記事の下書き生成やデータ整形など)をClaude Codeに任せる自動化を組んでいます。無人で走らせるほど怖いのが、エージェントが認証情報を読んで外部へ送る、あるいはリポジトリを広範囲に壊す、といった事故です。ここにNumbatを一段挟みます。
手順は、これまでのコマンドをそのまま自動化パイプラインの前段に置くだけです。まず監視で動きを把握し、致命的なルールだけ強制に上げます。
# 1. 導入 go install github.com/perplexityai/numbat/cmd/numbat@latest # 2. どのエージェントが検出されるか確認 numbat agents # 3. まずは監視のみでフックを入れる(検出された名前を指定) numbat hook install --agent codex --emit all numbat hook status --agent codex
数日、監視のまま自動タスクを回し、numbat scan でどのルールがどれだけ反応したかを見ます。そのうえで、サイト制作・自社ツール開発の現場で「これは絶対に止めたい」操作を強制へ回します。編集部の基準は次の3つです。
強制へ回すときは、組み込みルールを ./numbat-policy にコピーし、対象ルールに enforce: true を足して検証してから適用します。
numbat rules check --rules-dir ./numbat-policy numbat hook install --agent codex --emit all \ --rules-dir ./numbat-policy --enforce
これで、無人で走るClaude Codeの自動タスクでも、通常の作業は止めずに、認証情報の持ち出しや広範囲の削除といった致命的操作だけをブロックできる構成になります。承認をすべて人が押す運用に戻さずに、事故だけを塞げるのが利点です。Claude Codeの自動化を進める前提知識としては非エンジニアのClaude Codeスラッシュコマンド12選もあわせてどうぞ。
07Numbatの料金と対応環境は?無料で使える?
Numbatは無料で使えます。ライセンスはApache 2.0で、GitHub(github.com/perplexityai/numbat)で公開されています。商用でも利用でき、追加のサブスクリプションは必要ありません。動作環境は、macOS・Linux・Windowsのamd64/arm64です。実体は単一の静的Goバイナリなので、ランタイムの追加インストールは基本的に要りません。Go経由で入れる場合のみGoの環境が必要です。
データの扱いは、テレメトリが既定で端末内にとどまる設計です。管理者の判断で、端末内だけで処理するか、中央の監視システムへ転送するかを選べます。ログを外部に出せない環境でも試せる点は、社内での検証を始めやすくします。
08Numbatを導入すべき人・まだ様子見でよい人
導入して効果が大きいのは、AIエージェントを無人・半無人で走らせている人です。自動でタスクを回す、複数のエージェントを使い分ける、チームで共通の安全基準を敷きたい——こうした場面では、横串のルール層があるかどうかで事故の止めやすさが変わります。特に、認証情報や本番環境に触れうるパイプラインを持つなら、まず監視モードで入れておく価値があります。
一方で、対話しながら1コマンドずつ自分の目で承認して使っている段階なら、既存の承認プロンプトで足りることも多く、急いで入れる必要はありません。まずはエージェントの標準機能を理解し、無人運用に踏み出すタイミングでNumbatを検討する、という順番でも遅くありません。プランモードなどエージェント側の安全機能はClaude Codeプランモードの使い方で解説しています。
09Numbatに関するよくある質問(FAQ)
numbat agents で検出された名前を --agent に指定して使います。enforce: true にして強制モードで入れたルールにだけ適用されます。10まとめ:まず監視モードで1つ繋ぐ
Numbatを入れるかどうかは、「AIエージェントをどれだけ自分の目を離して動かすか」で決まります。対話しながら承認して使う段階では急ぎませんが、無人でタスクを回す運用に進むなら、実行前に危険な操作だけを止められる層が要になります。失敗しない進め方は、いきなり強制ブロックにせず、まず監視モードで numbat hook install を1つ入れ、数日ぶんの numbat scan でどのルールが反応するかを見ることです。そのうえで、認証情報の持ち出しや広範囲の削除など、事故が致命的になるルールから順に強制へ回します。
エージェント運用の安全策を広く押さえたい方はClaude Securityとは?コミット前に脆弱性を止める使い方、Claude Code自体の使いこなしは非エンジニアのClaude Codeスラッシュコマンド12選もあわせてご覧ください。
11出典
- Perplexity「Securing Agents Across Perplexity’s Client Endpoints with Numbat」 research.perplexity.ai
- perplexityai/numbat(GitHub 公式リポジトリ・README) github.com/perplexityai/numbat
- Perplexity 公式X(@perplexity_ai)Numbat 公開告知(2026年7月29日)