agentgateway と codex-security の比較
どちらもガードレール / セキュリティに分類しています。数値はGitHub APIから取得したもので、評価は本サイトによるものです。
基本情報の比較
| 基本情報の比較 | agentgateway | codex-security |
|---|---|---|
| ライセンス | Apache-2.0 | Apache-2.0 |
| 言語 | Rust, Go | TypeScript, Python |
| 提供形態 | セルフホスト / ローカル実行 | ローカル実行 / セルフホスト |
| 成熟度 | 成長期 | 成長期 |
| スター | 4.4k | 9.9k |
| 直近7日間のスター増加数 | — | — |
| フォーク | 730 | 689 |
| オープンIssue | 343 | 129 |
| 最終コミット | 2026年8月14日 | 2026年8月16日 |
| 開発状況 | 活発 | 活発 |
それぞれの位置づけ
agentgateway
エージェントと、その呼び出し先——モデルプロバイダ、MCPサーバー、他のエージェント——の間に置くRust製のデータプレーンです。認証、RBAC、レート制限、OpenTelemetryへの送出をエージェントごとに実装せず、ここで一度だけ設定します。Solo.ioが2025年8月にLinux Foundationへ寄贈し、2026年6月にはMCPやgooseと同じAgentic AI Foundationの傘下へ移りました。ただしリクエスト経路上に置く基盤としては歴史が浅く、下流のMCPサーバーへ利用者ごとの識別情報を引き渡す仕組みは未対応の課題として残っているため、必要な認証方式を先に確認してください。
詳細を見る →codex-security
基本形は`npx @openai/codex-security scan .`で、結果のJSONはstdoutに出ます。`--mode deep`ではworkerとsubagentを並べ、新しい検出が出なくなるまで探索を続けます。再スキャン時は`scans compare BEFORE_SCAN_ID AFTER_SCAN_ID`が根本原因で前回と突き合わせ、new/persisting/reopened/resolved/unknownに分類するため、差分だけを追えます。ただし探索は既定で96時間まで回る長丁場であり、コミット前の軽量チェックには向きません。実行にはCodex Securityへのアクセスが前提で、一部のサイバーセキュリティ要求やprotected findingsはTrusted Access for Cyberの承認が必要になる点も、導入前に確認しておきたいところです。
詳細を見る →できること
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として残っています。現在のバージョニング方針が自動のパッチ更新を壊すという報告もあります。プロキシとしての形は本番向けでも、権限委譲まわりはまだ途上です。
codex-security
- 1コマンドとSDKの両方から — 入口は
npx @openai/codex-security scan .で、--modelと--effort highにより走らせ方を調整します。TypeScriptではnew CodexSecurity()に対してrun(".")を呼ぶと同じ処理が走り、result.reportPathが返ります。 - deepモードの打ち切り条件 —
--mode deepは--workersと--subagentsで並列度を決め、--stop-after-no-new 3や--max-discovery-runs 10、--max-time-hours 1.5で上限を切ります。指定しなければ96時間で停止し、その時点で完了した検出結果は保持されて返却されます。 - スキャン間の差分管理 —
scans compareは保存済みのマッチを再利用しつつ根本原因で照合しますが、カバレッジが不完全だったり元の箇所が未レビューの場合はunknownのまま残ります。findings list [repository]は最新スキャンで再確認できなかった未解決の検出も示します。 - 推論プロバイダの差し替え —
--provider openrouterや--provider fireworks、--provider amazon-bedrockを--modelと組み合わせます。BedrockはAWS_BEARER_TOKEN_BEDROCKのほか、アクセスキーやプロファイル、web identity、既定のAWS認証チェーンにも対応します。 - コンテナでの一括スキャン — 公式イメージと同梱のDocker Compose構成により、不変のGitリビジョンに固定した複数リポジトリを非対話かつ再開可能に処理します。
--knowledge-base PATHは全リポジトリ共通のセキュリティ資料、--scan-prompt-file PATHは全リポジトリ共通のスキャン指示を渡すもので、リポジトリ個別の指示はCSVのprompt列に書きます。