2026年1月27日、OpenAIは、同社のコマンドライン・コーディング・エージェントであるCodex CLIが、実際にどのように会話を実行し、ツールを呼び出し、コンテキストを管理しているかを説明する、異例なほど詳細なエンジニアリング・ノートを公開しました。
エージェントループの仕組み
Codex CLIの核心にあるのは、エンジニアが「エージェントループ」と呼ぶ単純な反復パターンです。それは、ユーザー入力を受け取り、プロンプトを作成し、モデルにレスポンスを求め、モデルが要求したツール呼び出しを実行し、ツールの出力を会話に追加し、モデルが最終的なアシスタントメッセージを返すまでこれを繰り返すというものです。
このパターンは単純に聞こえますが、ドキュメントでは、パフォーマンスと信頼性を左右する多くの細かな設計上の決定が明らかにされています。モデルに送信されるプロンプトは単なるテキストの塊ではなく、優先順位付けされたコンポーネントを構造的に組み立てたものです。システム、開発者、アシスタント、ユーザーの各ロールによって、どの指示が優先されるかが決定されます。「tools」フィールドには、ローカルのシェルコマンド、プランニング・ユーティリティ、ウェブ検索、そしてModel Context Protocol (MCP) サーバーを介して公開されるカスタムサービスなど、利用可能な機能が提示されます。環境コンテキストには、サンドボックスの権限、作業ディレクトリ、およびエージェントが可視化できるファイルやプロセスが記述されています。
ツール呼び出し、MCP、サンドボックス化
モデルがツール呼び出しを発信すると、Codexはそのツールを制御された環境(サンドボックス)で実行し、出力をキャプチャして、その結果を会話に追加します。カスタムツールは、複数の企業が採用しているオープン標準であるMCPサーバーを通じて実装できます。これにより、モデルは単純なシェルを超えた機能を検出し、呼び出すことが可能になります。ドキュメントでは、これらの統合を構築する際に見つかった特定のバグ(例えば、MCPツールの列挙の不一致など)についても触れられており、それらはパッチを当てる必要がありました。
OpenAIは、サンドボックス化とツールへのアクセスは、今後の投稿で扱う予定の活発な領域であると述べています。初期のドキュメントでは、ファイルシステムやネットワークサービスへの書き込みアクセス権を持つエージェントの完全な脅威モデルよりも、ループのメカニズムとパフォーマンスの緩和策に焦点を当てています。
ステートレスなリクエスト、プライバシーの選択、コンテキスト・コピーのコスト
その膨張は線形的ではありません。各ターンでトークンが追加され、すべてのターンに過去のターンが丸ごと含まれるため、プロンプトのサイズはターン数に対して二次関数的な増加を辿る傾向があります。チームはこのことを明示的に文書化し、コンテキストの圧縮(コンパクション)とプロンプトキャッシュによって、どのようにこれを軽減しているかを説明しています。
プロンプトキャッシュと厳密なプレフィックス
プロンプトキャッシュは実用的な最適化手法です。新しいリクエストが以前にキャッシュされたプロンプトの厳密なプレフィックス(前方一致)である場合、プロバイダーは計算を再利用して結果をより速く返すことができます。しかし、キャッシュには厳密さが求められます。利用可能なツールの変更、モデルの切り替え、さらにはサンドボックス構成のわずかな調整であっても、プレフィックスが無効になり、キャッシュヒットが高コストなミス(キャッシュ外れ)に変わる可能性があります。OpenAIのエンジニアは、一貫したレイテンシが必要な場合は、会話の途中で再構成を行うことを避けるべきだと警告しています。
キャッシュヒットは厳密なプレフィックスの一致に依存するため、賢明な慣行としては、ツール・マニフェストを固定し、進行中のやり取りの間はモデルの選択を一定に保つことが挙げられます。キャッシュミスが頻繁に発生すると、システムは呼び出しのたびに完全な再処理を行う状態へと劣化します。これはまさに、開発者がエージェントに機敏さを期待している時に起こる問題です。
コンテキストの圧縮:意味を損なわずに過去を圧縮する
トークンの増加を管理するため、Codexは自動的なコンテキスト圧縮を実装しています。ユーザーのコマンドに任せるのではなく、CLIは、モデルが続行するために必要な要約された知識を保持しつつ、古い会話のターンを暗号化されたコンテンツアイテムへと圧縮する専用のAPIエンドポイントを呼び出します。以前のバージョンではユーザーによる手動の圧縮が必要でしたが、新しいアプローチでは、このプロセスをモデルのワーキングメモリを保護するAPI呼び出しへと移行させています。
圧縮はトークンコストを削減しますが、いくつかの微妙な問題も生じさせます。要約は、その後のハルシネーションを防ぐのに十分忠実でなければならず、暗号化のプロパティはプライバシーの制約に適合する必要があり、圧縮のヒューリスティックは状態のどの部分が不可欠で、どの部分が切り捨て可能かを決定しなければなりません。ドキュメントでは、これらは確立された設計ではなく、未解決のエンジニアリング上の選択肢であると指摘されています。
実用上の限界と開発者体験
OpenAIのメモは、長所と短所について率直に述べています。コーディング・エージェントが得意とするスキャフォールディング、ボイラープレート、あるいは迅速なプロトタイピングといった単純なタスクにおいて、Codexは高速で有用です。一方、モデルがトレーニングデータで見ていないような、より深くコンテキストに依存したエンジニアリング作業においては、エージェントは脆弱です。有望な枠組みを生成した後に、行き詰まったり、人間によるデバッグを必要とする誤ったステップを出力したりすることがあります。
社内でCodexをテストしたエンジニアは、エージェントがプロジェクトの初期作成を劇的に加速させる一方で、堅実なエンジニアリングに不可欠な反復的で専門的なデバッグをまだ代替できないことを見出しました。またチームは、Codex自体の構成要素を構築するためにCodexを使用していることも認めました。この慣行は、自身の出力に基づいてトレーニングされたツールに関する興味深いフィードバックの問題を提起しています。
なぜOpenAIはこれを公開したのか:透明性、競争、そして標準化
一般消費者向け製品の内部エンジニアリングに関する詳細な解説を公開することは、これまで運用上の詳細を厳重に保護してきた企業としては注目に値します。OpenAIの開示は、エージェントの標準化に向けた広範なエコシステムの動きと一致しています。AnthropicとOpenAIはどちらもツールの検出と呼び出しにMCPをサポートしており、開発者がエンドツーエンドで挙動を検査できるようにCLIクライアントをオープンソースとして公開しています。
この透明性は、いくつかの対象に役立ちます。開発者は、信頼性の高いエージェントを構築するための実装パターンや実用的なアドバイスを得られます。セキュリティに関心の高いエンジニアは、サンドボックスとツールアクセスのトレードオフを精査できます。競合他社や標準化コミュニティは、相互運用のためにクライアントの挙動をリバースエンジニアリングする必要がないため、より迅速に反復を行うことができます。
コーディング・エージェントを使用するチームへの運用アドバイス
- プロンプトキャッシュのヒット率と安定したパフォーマンスを最大化するため、セッション内ではモデルとツール・マニフェストを固定する。
- トークンコストを制御し、プロンプトの暴走を防ぐため、長いタスクでは積極的にコンテキスト圧縮を使用する。
- 偶発的または悪意のある副作用を減らすため、エージェントの権限を制限し、サンドボックス内の書き込み可能なフォルダを隔離する。
- 手動でのデバッグを想定し、予算を確保する。エージェントはスキャフォールディングとイテレーションを加速させるが、複雑なコードベースにおける専門的な推論を代替する段階にはまだ至っていない。
今後の展望
記事を執筆したエンジニアは、CLIのアーキテクチャ、ツール実装、サンドボックス・モデルをより深くカバーする続報を示唆しました。これらの今後のエントリーは重要です。エージェントが開発者の環境へのアクセスを深めるにつれ、安全な実行、出所、および検証可能なツール呼び出しのメカニズムが、チームがそれらをアシスタントとして採用するか、あるいはリスクのある珍品として扱うかを決定することになるからです。
現時点では、OpenAIのメモはコーディング・エージェントをめぐる神秘性の一部を、具体的なノブやレバーへと変換しています。この変化により、エンジニアリング・チームは、本番環境の障害中に手痛い経験を通してそれらを発見するのではなく、パフォーマンス、プライバシー、脆弱性といった既知のトレードオフに基づいて計画を立てることが容易になります。
Codex CLIのドキュメントは一つの招待状です。実装を読み、エッジケースをテストし、限界を受け入れつつ明確な利点を活用するワークフローを設計してください。エージェントを日常の開発ツールに組み込もうと業界が競い合う中で、失敗モードに関する明確さは、最も希少で有用な価値となります。
出典
- OpenAI (ドキュメント: "Unrolling the Codex agent loop")
- Anthropic (Model Context Protocol 仕様および Claude Code 関連資料)
- OpenAI エンジニアリング・リポジトリおよび Codex CLI 実装ノート
Comments
No comments yet. Be the first!