OpenAIがCodexエージェント命令を暗号化、ローカル監査証跡をブロック
OpenAIはCodex CLIのマルチエージェントv2メッセージを暗号化し、エージェント間で渡される命令を隠蔽した。これにより開発者はデバッグや監査が困難になり、可観測性の喪失を懸念している。
OpenAIは、その名称が示すほど「オープン」ではないことを、今回もまた示した。資金豊富なAI大手は最近、Codexコマンドラインインターフェースにおけるマルチエージェントオーケストレーションを改訂し、サブエージェントに渡されるメッセージを暗号化した。
Codexはマルチエージェントオーケストレーションをサポートしており、親エージェントが子エージェントを生成したり、タスクを他のエージェントに委任したりできる。これらのエージェントは異なるモデルを呼び出す可能性がある。Codex/GPT-5.6で導入された「multi-agent v2」と呼ばれるプロトコルは、ユーザーが宣言した設定に任せるのではなく、ランタイムが作業を割り当てるようにすることを目的としているようだ。
multi-agent v2はまだ開発中であり、OpenAIは正式に文書化していない。しかし、開発者は新しいエージェント配管に対応するためにCodexに加えられた変更を観察しており、その新しい取り決めに懸念を抱いている。先月、OpenAIの開発者は、マルチエージェントv2のメッセージペイロード(エージェント間で渡されるテキスト命令)を暗号化するプルリクエストをマージした。このプルリクエストの説明文は「なぜ」という言葉で始まるが、変更の理由は実際には示されていない。
説明文には次のように記されている:「マルチエージェントv2は現在、通常のツール引数とエージェント間コンテキストを通じてエージェント命令をルーティングしています。つまり、親モデルは平文のタスクテキストを出力でき、Codexはそれを履歴/ロールアウトに永続化でき、受信側は通常のアシスタントメッセージJSONとして受信できます。今回の変更では、v2パスを変更し、エージェント命令がモデル呼び出し間で暗号化されたままになるようにします。Responses(OpenAI API)はモデルが返すメッセージ引数を暗号化し、Codexはその暗号文のみを転送し、Responsesは内部で受信モデル用に復号します。」
プライバシーとセキュリティを強化したい、あるいはモデル蒸留に有用なデータを隠蔽したいというのは、この変更の妥当な理由である。しかし、OpenAIはなぜこの変更を行ったのかを説明していない。OpenAIからの明確なコミュニケーションがないため、開発者は、この実装が他の懸念に対応するために監査可能性を犠牲にしないよう、同社に求めている。
決済サービスZolvatのCTOであるIgnat Remizov氏が提起した問題では、「暗号化された配信パスはプライバシー強化として理解できますが、ローカルロールアウト履歴、トレース削減、親側の監査/デバッグサーフェスから人間が読めるタスク/メッセージテキストを削除してしまいます」と述べている。Remizov氏の懸念は、開発者やコードメンテナがエージェントが受け取った命令とその行動を評価するための情報が減ることだ。同氏は「皆さん、私たちはスカイネットを構築して、その行動を監査できないようにしたいわけではありません」と冗談を言った。
他の開発者もRemizov氏の可観測性喪失の懸念に同調し、OpenAIが競合他社にマルチエージェント実装の仕組みを見られないようにするためにエージェントメッセージをロックしたのではないかと推測している。The RegisterはOpenAIにコメントを求めたが、即座の返答はなかった。