Codexの『Guardian V2』──専用ブログ記事は無いが、公式チェンジログには100件近く載っているリスク審査システム
OpenAIのCodexには、ツール呼び出しやコマンド実行を事前にリスク分類し、高リスクと判断すれば人間の承認を要求する内部システム「Guardian V2」がある。専用の発表記事やドキュメントは見当たらないが、GitHubの公式リリースノート(rust-v0.145.0〜v0.150.0)には、この1か月余りだけで100件近い関連変更が個別のチェンジログ行として淡々と積み上がっていた。

目次
OpenAIのCodexには、ツール呼び出しやコマンド実行が実行される前にリスクを分類し、高リスクと判断された場合は人間の承認を要求する内部システムがあるとみられる。名前は「Guardian V2」。公式ブログや発表記事は見当たらなかったが、GitHubの公式リリースノート(rust-v0.145.0〜rust-v0.150.0、2026年7月21日〜8月26日)を確認すると、この1か月あまりだけで、Guardian(V2を含む)関連の変更が100件近く、1行ずつのチェンジログとして淡々と積み上がっていた。
3行まとめ
- Guardian(V2)は、Codexのツール呼び出し・コマンド実行を事前にリスク分類し、高リスク時は人間の承認を要求するとみられる内部の審査レイヤー
- 専用の発表記事・ドキュメントは見当たらないが、公式リリースノートには2026年7月21日(rust-v0.145.0)から8月26日(rust-v0.150.0)まで、100件近いGuardian関連の変更が個別のチェンジログ行として記載されている
- 「Luna」という名のサンプラー、コンピュータ操作(画面操作)のスクリーンショット証拠、モデルカタログ由来のポリシー、リスクスコアリング失敗時の「フェイルクローズ」設計など、断片的な変更ログから機能の輪郭がうかがえる
何が確認できたか——「公式リリースノートに一度も出ない」わけではなかった
この題材は当初、「公式リリースノートに一度も名前が出ない内部システム」という切り口の候補として挙がっていた。しかし実際にopenai/codexの公式リリース一覧(GitHub Releases API、直近100件)をguardianという単語で検索したところ、この認識は誤りだったことが分かった。むしろ逆で、2026年7月21日公開のrust-v0.145.0から直近8月26日公開のrust-v0.150.0まで、6回連続のリリースすべてにGuardian関連のチェンジログ行が含まれていた。
一例として、直近のrust-v0.150.0(2026年8月26日公開)のチェンジログには、次のような行が並ぶ。
- #40028 Log Guardian V2 classification results @copyberry - #40393 Classify Guardian V2 risk with a single token @copyberry - #40465 Record Guardian classifier input truncation metrics @copyberry - #40480 Add a computer-use-only Guardian v2 review scope @copyberry - #40594 Preserve conversation context in Guardian transcripts @copyberry
これらの変更は、いずれも「@copyberry」というアカウント(GitHub上では自動化ボット「copyberry[bot]」として動いていることを確認した)によって提出されている。つまりGuardian V2自体が、人間のエンジニアが1件ずつPRを書くのではなく、自動化されたパイプラインによって継続的に開発・デプロイされているシステムである可能性が高い。
開発の時系列——「V2」への切り替わりは7月24日
GitHub commit検索(guardian-v2というキーワードでopenai/codexリポジトリを検索)を使うと、より正確な時系列が見えてくる。単なる「Guardian」(V2以前の版)への言及はrust-v0.145.0より前から存在しており、rust-v0.146.0(2026年7月29日公開)のチェンジログには次の行がある。
- #35049 Register the Guardian V2 feature flag @copyberry
このPR番号(#35049)のコミット日時はGitHub API(created_at/merged_at)で2026年7月24日と確認でき、これが確認できた範囲では「Guardian V2」という名称が初めて登場するタイミングだ。そこから2週間強で、機能の骨格が急速に組み上がっていく。rust-v0.148.0(2026年8月18日公開)のチェンジログを機械的に数えたところ、Guardian関連の変更は34件だった。
断片的なチェンジログから見える機能の輪郭
個々のチェンジログの文言をつなぎ合わせると、Guardian V2がどんなシステムかがおぼろげに見えてくる。「Classify tool calls in the Guardian V2 extension」(#38409)「Give Guardian V2 full tool action context」(#38441)「Record Guardian V2 risk scores on threads」(#38540)といった行から、Guardian V2はツール呼び出しの内容を分析し、リスクスコアを算出する分類器であることが読み取れる。
「Add the Guardian V2 Luna sampler」(#38368)という行から、この分類にはCodexが内部で使う「Luna」という名のサンプラー(モデルとみられる)が使われていることも分かる。コンピュータ操作(画面操作エージェント機能)に関しては、「Include node_repl screenshots in Guardian v2 reviews」(#39227)「Add a computer-use-only Guardian v2 review scope」(#40480)といった行があり、スクリーンショットを証拠として審査に含める設計であることがうかがえる。
安全側に倒す設計思想を示す行もある。
- #39307 Fail closed on Guardian V2 risk scoring errors @copyberry
(リスクスコアリングでエラーが起きた場合はフェイルクローズ〔安全側に倒す=実行を止める〕にする)
このほか、「Require automatic review for high-risk Guardian v2 actions」(#38569)、「Interrupt cyber model turns after one Guardian denial」(#37190、rust-v0.148.0より前のrust-v0.145.0〜v0.147.0系列)、「Add connector-level Guardian reviewer overrides」といった変更から、サイバーセキュリティ関連の操作や、コネクタ経由の操作について特に厳格な審査が組み込まれていることも読み取れる。
リリースごとのGuardian関連行を機械的に数えた
記事執筆にあたり、GitHub Releases API(直近100件)から取得した各リリース本文に対して、「guardian」という単語の出現回数をPythonスクリプトで機械的にカウントした。取得できた範囲(rust-v0.146.0以降、v0.145.0は直近100件のウィンドウから外れており未取得)の結果は次の通り。
| リリース | 公開日 | Guardian言及数(本文中の出現回数を機械カウント) |
|---|---|---|
| rust-v0.146.0 | 2026-07-29 | 5 |
| rust-v0.146.1 | 2026-08-05 | 0 |
| rust-v0.147.0 | 2026-08-07 | 4 |
| rust-v0.148.0 | 2026-08-18 | 34 |
| rust-v0.149.0 | 2026-08-20 | 26 |
| rust-v0.149.1 | 2026-08-24 | 0 |
| rust-v0.150.0 | 2026-08-26 | 21 |
| rust-v0.150.1 | 2026-08-27 | 0 |
| rust-v0.151.0 | 2026-08-29 | 3 |
rust-v0.148.0の34件という数字は、記事が先に「機械的に数えたところ34件」としていた値と一致する。パッチリリース(.1系)にGuardian言及がゼロなのは、パッチ版が主に他の不具合修正に充てられているためとみられるが、これは推測であり本文には明記がない。
本記事の当初の調査範囲はrust-v0.150.0(8月26日)までだったが、その後8月29日に公開されたrust-v0.151.0のリリースノートを確認したところ、Guardian関連の変更が3件含まれていた。
Prevented stale Guardian classifications from authorizing actions after permission state changes. (#41196)
(権限状態が変化した後、古いGuardianの分類結果に基づいて操作が許可されてしまう問題を修正した)
Stabilized Guardian WebSocket tests. (#41191)
(GuardianのWebSocketテストを安定化させた)
後者の一文からは、Guardian(V2を含む審査システム全般)がWebSocket通信を使って実装されている可能性が読み取れる。前者は、Guardianの判定結果がキャッシュ・再利用される仕組みになっており、権限状態が変わった後も古い判定が有効なまま操作を許可してしまうケースが存在した(そしてこの直近リリースで修正された)ことを示している。Guardian自体にセキュリティ上の穴があり、それが継続的に修正され続けているという実例といえる。
PR #38336の中身とcopyberryアカウントの正体
記事のソースに挙げているPR #38336「Add Guardian V2 extension scaffold」をGitHub APIで直接取得すると、本文には次の記載がある。
Add the
codex-guardian-v2crate with an extension install entry point that does not register contributors yet. Register the crate in the Cargo workspace and add its Bazel target.
(codex-guardian-v2というクレートを、まだコントリビューターを登録しない拡張インストールのエントリーポイントとして追加する。このクレートをCargoワークスペースに登録し、Bazelターゲットも追加する)
このPRのマージ日時は2026-08-13T09:02:44Zで、投稿者アカウントcopyberry[bot]のユーザー情報をGitHub APIで確認すると、type: "Bot"と明記されている。さらにGitHubの「About copyberry」ページ(github.com/apps/copyberry)には「copyberry is a private GitHub App」(copyberryは非公開のGitHub Appである)という一文のみが記載されており、それ以上の機能説明は公開されていない。つまりcopyberryは、OpenAIが社内で使っている非公開の自動化ツール(GitHub App)であることは確認できるが、その実体がどんな仕組みで動いているか(LLMエージェントなのか、ルールベースの自動化なのか)は、公開情報からは分からない。
「機能の輪郭」はチェンジログからの推測にとどまる
この記事は、GitHubの公式リリースノート本文とGitHub commit検索の結果のみを一次ソースとしている。Guardian V2が実際にどう動くシステムなのか(リスクスコアの算出方法、承認フローの詳細、ユーザーに見える形でどう現れるか)についての一次資料——設計ドキュメントや公式な機能説明——は、本記事の調査範囲では見つからなかった。紹介した「機能の輪郭」は、すべて1行ずつのチェンジログの文言から推測を組み立てたものであり、実際の実装や動作を裏付ける一次資料ではない点に注意してほしい。
候補メモの時点で「371件ヒットする」とされていた検索結果は、本記事の検証過程で再現できなかった。GitHubのissue検索API(search/issues)に"Guardian v2"という引用符付きクエリを投げても、フレーズとして厳密にマッチしているとは考えにくい無関係な結果しか返らなかったためだ。代わりに、GitHubのcommit検索API(search/commits)でguardian-v2を検索したところ71件がヒットし、そのうち明確にGuardian V2に言及するものは公式リリースノートと突き合わせておよそ100件弱を数えた。この数字の差は検索対象(コミット本文か、issue/PR本文か)とクエリの解釈方法の違いによるもので、どちらが「正しい」総数かは本記事では確定できていない。
この記事を書いている自分自身はopenai/codexのコードベースにコントリビュートした経験がなく、実際にGuardian V2の審査を自分のCodex利用時に体験して確認したわけでもない。紹介した内容は、公開されているチェンジログの文言をつなぎ合わせた推測であることを重ねて明記する。copyberryが「私的なGitHub App」であることはページ上の一文で確認できたが、それがどのようなシステム(自動化スクリプトか、AIエージェントか)によって動いているかについての一次情報は見つからなかった。また、この記事はrust-v0.151.0までを確認した時点のものであり、それ以降にリリースされたバージョン(記事執筆時点でrust-v0.151.0-alpha系列のプレリリースがすでに複数存在することもGitHub Releases APIで確認している)でGuardian V2がどう変化しているかは追っていない。
関連記事: AIコーディングアシスタント比較
感想・指摘はコメント欄へ。
出典・参照資料
AIニュースの解説を動画でも
YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。
コメント
まだコメントはありません。最初のコメントを書いてみませんか?
AIについて聞きたいことはありますか?
質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。
質問箱を見る →新しい記事をメールで受け取る
AIの新しい発表を、出典付きで整理して届けます。