agentgateway と numbat の比較
どちらもガードレール / セキュリティに分類しています。数値はGitHub APIから取得したもので、評価は本サイトによるものです。
基本情報の比較
| 基本情報の比較 | agentgateway | numbat |
|---|---|---|
| ライセンス | Apache-2.0 | Apache-2.0 |
| 言語 | Rust, Go | Go |
| 提供形態 | セルフホスト / ローカル実行 | ローカル実行 / セルフホスト |
| 成熟度 | 成長期 | 実験的 |
| スター | 4.4k | 924 |
| 直近7日間のスター増加数 | — | — |
| フォーク | 730 | 97 |
| オープンIssue | 343 | 6 |
| 最終コミット | 2026年8月14日 | 2026年8月14日 |
| 開発状況 | 活発 | 活発 |
それぞれの位置づけ
agentgateway
エージェントと、その呼び出し先——モデルプロバイダ、MCPサーバー、他のエージェント——の間に置くRust製のデータプレーンです。認証、RBAC、レート制限、OpenTelemetryへの送出をエージェントごとに実装せず、ここで一度だけ設定します。Solo.ioが2025年8月にLinux Foundationへ寄贈し、2026年6月にはMCPやgooseと同じAgentic AI Foundationの傘下へ移りました。ただしリクエスト経路上に置く基盤としては歴史が浅く、下流のMCPサーバーへ利用者ごとの識別情報を引き渡す仕組みは未対応の課題として残っているため、必要な認証方式を先に確認してください。
詳細を見る →numbat
デスクトップ・CLI・IDE・ゲートウェイの各エージェントの動きをhookやplugin、OTLP/HTTPのログエクスポータ経由で取り込み、単一のイベントモデルへ正規化したうえでローカルのCELルールで評価し、events・findings・enforcement決定をバージョン付きNDJSONとして書き出します。`numbat scan`はディスク上のセッション成果物を読むため、事前に計装していなかった過去の作業も後から再構成できます。一方で遮断は保守的な設計で、enforceモードは既定で無効、同梱ルールはすべて監視専用なので、実際に止めるにはルールYAMLを運用側のディレクトリへ複製し、idを保ったままenforce: trueを追加してversionを上げる手順が必要です。観測できる範囲はエージェントとサーフェスごとにcoverage matrixで決まり、永続化されなかった活動は後から復元できず、findingsは実行された事実の証明ではなくルールの一致にすぎません。網羅的な記録や確定的な事実認定を期待する用途には向きません。
詳細を見る →できること
agentgateway
- 複数のMCPサーバーを1つのポートにまとめる — 1つの
mcpバックエンドに名前付きのターゲットを並べる構成で、リポジトリのmultiplexの例ではmcp-server-timeをuvx、server-everythingをnpxで起動して同じbindに束ねています。stdio、SSE、streamable HTTPのいずれもゲートウェイで終端するため、クライアントからは単一のエンドポイントに見えます。 - ツール呼び出し単位の認可をCELで書く —
mcpAuthorizationのルールは、検証済みJWTと呼び出し内容に対するCEL式です。mcp.tool.name == "echo"なら誰でも呼べる一方、jwt.sub == "test-user" && mcp.tool.name == "get-sum"のように特定の主体だけに限定できます。ツール単位のポリシーは、MCPの仕様自身が「プロトコルでは強制しない」と明言している領域です。 - モデル名ではなくコストで振り分ける — 仮想モデルが条件式で実バックエンドへ振り分けます。コストルーティングの例では
max_tokensが1024以下の要求をgpt-4o-miniへ、それを超えるものを上位のモデルへ送り、最後のターゲットが必須のフォールバックとして機能します。予算と支出の制御、プロンプトの補強、フェイルオーバーも同じOpenAI互換の面に載ります。 - 単体でもGateway APIコントローラーとしても動かす — 平坦なYAMLを読む単一バイナリでローカルやKubernetes以外の環境をまかなえます。内蔵コントローラーはGateway APIとInference Gateway拡張に対応し、GPU使用率、KVキャッシュの状態、LoRAアダプタ、キュー長を見てセルフホストのモデルへ振り分けます。ガードレールは正規表現、OpenAIのモデレーション、Bedrock Guardrails、Model Armor、独自Webhookから選べます。
- 採用前に識別情報の扱いを確認する — 下流のMCPサービスへ利用者ごとの資格情報を渡すエンタープライズSSO、アプリ間アクセス向けのOAuth Identity Assertion、独自スコープの付与は、いずれも未解決のIssueとして残っています。現在のバージョニング方針が自動のパッチ更新を壊すという報告もあります。プロキシとしての形は本番向けでも、権限委譲まわりはまだ途上です。
numbat
- 設定を変えずに現状を把握する —
numbat agentsで検出済みエージェントを一覧し、numbat scan --agent codexのようにディスク上のセッション成果物を読み取り専用で解析します。hookの導入もエージェント設定の書き換えも発生しません。 - ライブ監視をエージェント単位で入れる —
numbat hook install --agent codex --emit allでhookを入れると、events・findings・indicators・enforcement決定が~/.numbat/records.ndjsonへ追記されます。numbat hook statusが確認するのは設定であって、実行や配送の成否ではありません。 - CELルールを書いて検証する — YAMLで書いた独自ルールは
numbat rules check --rules-dir ./numbat-policyとnumbat rules testで検証でき、idが一致すれば同梱ルールを置き換えます。--no-builtin-rulesを付けると運用側のカタログだけで動作します。 - 監視ルールを遮断に切り替える —
rules/のYAMLを複製してidを保ったままenforce: trueを追加しversionを上げ、numbat hook install --agent codex --rules-dir ./numbat-policy --enforceで導入します。遮断できるのは同期的な実行前フックを持つエージェントに限られます。 - 調査結果をまとめて渡す —
numbat timelineでセッション単位の時系列を組み立て、numbat case buildとnumbat case verifyがSHA-256マニフェスト付きのケースバンドルを生成・検証します。マニフェストが示すのは内部整合性までで、署名のないバンドルは出所や完全性を保証しません。生トランスクリプト全文は通常の出力に含まれず、証跡ファイルの同梱は明示的なオプトインになります。