本記事では、製品体験、公開ドキュメント、固定されたソースコード、オフライン Demo、そして実際の API 接続を切り分けて論じます。
コード例は教育目的であり、Codex の内部実装を表すものではありません。
検証日: 2026-09-10。対象: ユーザーから提供された 2026-09-07 のソーシャルメディア上のスクリーンショット。
このスクリーンショットの技術的主旨は次のとおりです。コーディング Agent の能力はモデルだけから生まれるのではなく、モデルを載せるランタイム、ツール実行プロトコル、コンテキスト管理、メモリ、対話システムからも生まれます。これらの仕組みがモデルの学習と噛み合っていれば、Agent はより効率的に長いタスクをこなせます。この主旨は学ぶ価値がありますが、スクリーンショット内のベンダー貶め、絶対的なランキング、独創性の断定は、そのまま面接での結論にはできません。
本記事は「原文の意味 → 公開された証拠 → 動作原理 → 実装方法 → 基本的な Harness との比較 → 面接で聞かれる追加質問」の順で展開します。コードはオリジナルの教育用実装であり、Codex 内部のコードを装うものではありません。実際の API 例には別途注記します。この Markdown 一つを保存するだけで、チュートリアルとコードのすべてを手に入れられます。
読み方ガイド
- スクリーンショットの各主張を検証
- Harness の基本と階層
- 統一された Runtime Host と App Server
- Agent GUI の技術実装
- 非同期ツール呼び出しと実行しながらの推論
- Mid-turn steering
- PTC、Code Mode と MCP
- 圧縮、ウィンドウ切り替え、履歴検索
- Memory と dreaming
- モデル後学習と Harness の連携
- Computer Use
- Benchmark と因果帰属
- 従来型 Harness および Claude との公平な比較
- 面接での説明と頻出の追加質問
- 動作確認と受け入れ検証
- ソース資料とコード読み順
- 完全コード付録
1. スクリーンショットの各主張のうち、どれをそのまま信じてよいか
以下の「検証済み」は、公開資料またはソースコードがその仕組みを裏付けていることを示すだけで、すべてのアカウント、プラットフォーム、バージョンで有効化されていることや、あなたのタスクで必ず良い結果になることを示すものではありません。スクリーンショット内で非同期ツール呼び出しに関する記述が繰り返し登場していますが、本記事ではまとめて解説します。
証拠の入口: App Server、Astra の機能説明、Memories。具体的な実装の裏付けは各章の近くに置いています。
1.1 混同してはいけない 3 つの「Codex」
- モデル: 例えば
gpt-6-astra。テキスト、ツール要求、その他のモデル出力を生成する。
- Agent Runtime / Harness: モデル出力を受け取り、ツールを実行し、状態を保持し、権限を制御し、失敗を処理する。
- 製品クライアント: デスクトップ App、CLI、IDE など。ユーザーにタスクを提示し、操作を受け付ける。
製品体験の良さをそのまま「モデルアーキテクチャが先進的」と言ったり、ある API 機能を「デスクトップ App の独自開発」と言ったりするのは、階層をまたいだ因果の取り違えです。
1.2 本記事の証拠の範囲
公開ソースは openai/codex commit ddea03ad049142943bdbf13e937b1d67e8c1ba0c に固定します。コミット時刻は 2026-09-10 03:40:55 UTC。これは今回読み取った main のスナップショットであり、手元にインストールされたバイナリのビルドコミットと同一とは限りません。ローカル検証環境は Codex CLI 0.153.4、Python 3.14.7、Node.js 26.7.0。
ソースにハンドラー、型、テストが存在することは、そのコードパスが存在することしか証明しません。既定で有効か、実際にルーティングされるか、アカウントで利用可能かは、feature gate、登録条件、リリースノート、実行ログをさらに確認する必要があります。公式のバックエンド、学習ログ、プラットフォーム横断の内部デプロイ図は入手していないため、本記事ではそこは補いません。
2. まず Harness を理解する: プロンプトを 1 枚被せれば済むわけではない
2.1 最小の Agent ループ
ユーザーが「ログインテストの失敗を直して」と言ったとします。モデルはファイルシステムを直接変更できません。モデルは「ファイル読み込み」「テスト実行」などのリクエストを生成し、外部プログラムが実行して結果をモデルに返し、ループが続きます。
以下は教育用の疑似コードで、基本の直列 Harness を説明するためのものです。特定のベンダーの現行実装ではありません。
これで Agent は成立しますが、以下の問題はまだ確実には解けていません。ユーザーが途中で要求を変える、テストに数分かかる、履歴がウィンドウを超える、プロセスがクラッシュする、ツールがタイムアウトする、タスクを再接続する、複数クライアントで観察する、権限を撤回する、タスクをまたいだ記憶を持つ、といった問題です。
2.2 実務で使える階層構造
これは本記事における概念上の階層であり、Codex のプロセスデプロイ図と 1 対 1 で対応するものではありません。「Runtime」と「Harness」の境界はチームによって完全に一致しません。あるチームは外側のシステム全体を Harness と呼び、別のチームは実行環境を Runtime、ループと方針を Harness と呼びます。面接では名前を争うより、まず用語を合意することの方が重要です。
2.3 分けなければならない 3 種の状態
対話のロールバックはファイルのロールバックではありません。モデルの中断は子プロセスの kill ではありません。履歴要約に「テスト通過」と書かれていても、最新コードに対するテストとは限りません。以降のすべての仕組みはこの 3 つの区別の上に成り立ちます。