OpenAI: Introducing Codex

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/a00108a5-e941-43dd-aee8-3852804cf739.png)

Introducing Codex
https://openai.com/index/introducing-codex/

:::note info
この記事は、OpenAIによって発表された新しいクラウドベースのソフトウェアエンジニアリングエージェント「Codex」について、その概要、仕組み、特徴、活用事例、そして今後の展望を詳細に解説するものです。特に、ソフトウェア開発の経験が浅い方や、AIによる開発支援に興味を持つ方々にとって、Codexがもたらす可能性を理解するための一助となることを目指しています。
:::

# ソフトウェア開発の未来を再定義するAIエージェント「Codex」徹底解説 🤖

ソフトウェアエンジニアリングの世界は、AIの進化とともに大きな変革期を迎えています。OpenAIが発表した「Codex」は、まさにその最前線に立つクラウドベースのソフトウェアエンジニアリングエージェントであり、開発者の作業効率を飛躍的に向上させ、より創造的なタスクに集中できる未来を提示しています。

本記事では、このCodexについて、基本から応用まで、そして技術的な詳細から具体的なユースケースまで、多角的に掘り下げていきます。

## 目次

*   [Part 1: 導入 - 新時代のソフトウェア開発エージェント「Codex」](#part-1-導入---新時代のソフトウェア開発エージェントcodex)
    *   [Chapter 1.1: Codexとは何か？ソフトウェア開発の未来を担う存在 🚀](#chapter-11-codexとは何かソフトウェア開発の未来を担う存在-)
    *   [Chapter 1.2: なぜ今Codexなのか？ 開発現場の課題とAIの役割](#chapter-12-なぜ今codexなのか-開発現場の課題とaiの役割)
    *   [Part 1 要約](#part-1-要約)
*   [Part 2: Codexの核心 - その仕組みと能力](#part-2-codexの核心---その仕組みと能力)
    *   [Chapter 2.1: Codexはどのように動作するのか？ 🧠](#chapter-21-codexはどのように動作するのか-)
    *   [Chapter 2.2: Codexを支える頭脳 - `codex-1`モデル ✨](#chapter-22-codexを支える頭脳---codex-1モデル-)
    *   [Chapter 2.3: Codexによる具体的なコード改善例 💡](#chapter-23-codexによる具体的なコード改善例-)
    *   [Part 2 要約](#part-2-要約)
*   [Part 3: 信頼と安全性の追求](#part-3-信頼と安全性の追求)
    *   [Chapter 3.1: 責任あるAI開発 - 安全なエージェントを目指して](#chapter-31-責任あるai開発---安全なエージェントを目指して)
    *   [Chapter 3.2: セキュアな実行メカニズムと透明性の確保](#chapter-32-セキュアな実行メカニズムと透明性の確保)
    *   [Part 3 要約](#part-3-要約)
*   [Part 4: Codexの活用事例とエコシステム](#part-4-codexの活用事例とエコシステム)
    *   [Chapter 4.1: OpenAI内部および外部テスターによるCodexの活用](#chapter-41-openai内部および外部テスターによるcodexの活用)
    *   [Chapter 4.2: Codex CLIの進化 - ローカル環境での強力な相棒 💻](#chapter-42-codex-cliの進化---ローカル環境での強力な相棒-)
    *   [Part 4 要約](#part-4-要約)
*   [Part 5: Codexの利用方法と今後の展望](#part-5-codexの利用方法と今後の展望)
    *   [Chapter 5.1: Codexを始めるには - 利用対象と価格設定 💰](#chapter-51-codexを始めるには---利用対象と価格設定-)
    *   [Chapter 5.2: 現状のCodex - 可能性と限界点、そして未来 🌟](#chapter-52-現状のcodex---可能性と限界点そして未来-)
    *   [Part 5 要約](#part-5-要約)
*   [Part 6: まとめ - Codexと共に創るソフトウェアエンジニアリングの新しい景色](#part-6-まとめ---codexと共に創るソフトウェアエンジニアリングの新しい景色)
*   [付録 (Appendix)](#付録-appendix)
    *   [Chapter A.1: `codex-1` システムメッセージの概要](#chapter-a1-codex-1-システムメッセージの概要)
    *   [Chapter A.2: 用語解説](#chapter-a2-用語解説)

---

## Part 1: 導入 - 新時代のソフトウェア開発エージェント「Codex」

このパートでは、Codexがどのようなもので、何を目指しているのか、そしてなぜ今このようなツールが求められているのかについて概観します。

### Chapter 1.1: Codexとは何か？ソフトウェア開発の未来を担う存在 🚀

**コアメッセージ**: Codexは、OpenAIが開発したクラウドベースのAIソフトウェアエンジニアリングエージェントであり、`codex-1`モデルを搭載し、複数の開発タスクを並列処理することで、開発プロセスを革新する可能性を秘めています。

Codexは、単なるコード生成ツールではありません。それは、開発者の指示に基づき、自律的にタスクを遂行する能力を持つ「エージェント」です。
主な特徴として、クラウド上で動作し開発者のローカル環境に負荷をかけない点、機能開発・質問応答・バグ修正・PR提案といった複数のタスクを同時に実行できる点、そしてソフトウェアエンジニアリングに特化して最適化された`codex-1`モデルによって駆動される点が挙げられます。この`codex-1`は、実世界のコーディングタスクや人間の好み・スタイルを学習しており、各タスクは対象リポジトリがプリロードされた独立した安全なクラウドサンドボックス環境で実行されます。

Codexが目指すのは、反復的で時間のかかる作業を自動化し、開発者がより複雑で創造的な問題解決に集中できる環境を提供することです。ソフトウェア開発にはコーディング以外にも、既存コードの理解、バグの特定と修正、テスト作成、リファクタリング、ドキュメンテーションなど多くの付随作業が存在します。Codexはこれらのタスクを支援、あるいは肩代わりすることで、開発者が本来注力すべきコアな開発業務や新しいアイデアの探求により多くの時間を割けるようにすることを目指しています。これは、まるで経験豊富なアシスタントが常にそばにいて、開発作業をサポートしてくれるようなイメージに近いかもしれません。

### Chapter 1.2: なぜ今Codexなのか？ 開発現場の課題とAIの役割

**コアメッセージ**: 現代のソフトウェアはますます大規模かつ複雑になり、開発者は多くの課題に直面しており、AI技術の進化がこれらの課題解決への新たな可能性を提示しています。

現代のソフトウェア開発現場では、コードベースの巨大化による全体像把握やメンテナンスの困難さ、新しい技術スタックの多様化に伴う学習コストの増大、市場の変化に対応するための迅速な開発サイクルの要求、そして複雑性が増す中での品質維持の難しさといった課題が顕著です。

このような背景のもと、AI技術、特に大規模言語モデル（LLM）の進化は、これらの開発現場の課題を解決する新たな道筋を示しています。CodexのようなAIエージェントは、複雑なコードの構造や動作を説明して開発者の理解を助けたり、定型的なコーディング作業・テスト生成・バグ修正などを自動化したりすることで効率化に貢献します。さらに、コードレビュー支援や潜在的な問題点の指摘を通じてコード品質の向上に寄与し、特定の技術やライブラリに関する情報を迅速に提供することで知識アクセスを容易にすることも期待されています。Codexは、これらの期待に応えるべく設計された、次世代のソフトウェア開発支援ツールと言えるでしょう。

### Part 1 要約

Codexは、`codex-1`モデルを搭載したクラウドベースのAIソフトウェアエンジニアリングエージェントです。複数の開発タスクを並列処理し、反復作業を自動化することで、開発者の生産性向上と創造性の解放を目指しています。現代のソフトウェア開発が抱える複雑性に対し、AIによる解決策を提供するものとして期待されています。

---

## Part 2: Codexの核心 - その仕組みと能力

このパートでは、Codexが実際にどのように動作するのか、その心臓部である`codex-1`モデルの能力、そして具体的なコード改善事例について詳しく見ていきます。

### Chapter 2.1: Codexはどのように動作するのか？ 🧠

**コアメッセージ**: Codexは、開発者からの自然言語による指示（プロンプト）を受け取り、専用のサンドボックス環境でタスクを実行し、その結果（コード変更、回答など）を提示します。この際、`AGENTS.md`ファイルによるプロジェクト固有のカスタマイズも可能です。

Codexのタスク処理は、開発者がChatGPTのインターフェースを通じてタスクを指示することから始まります。リポジトリやブランチも指定可能です。するとCodexは、指定されたリポジトリをクローンし、設定されたセットアップスクリプト（依存関係のインストールなど）を実行する、独立したサンドボックス環境（MicroVM）をクラウド上に起動します。このサンドボックス内で、Codexエージェントがプロンプトに基づきコードの読み書き、コマンド実行（テスト、Linter、型チェッカーなど）を反復的に行います。

特筆すべきは、リポジトリ内に`AGENTS.md`というファイル（マークダウン形式）を配置することで、Codexエージェントの動作をプロジェクト固有の規約や手順に合わせてカスタマイズできる点です。このファイルには、コードベースのナビゲーション方法、テストの実行コマンド、コーディング規約、プルリクエストメッセージの形式、さらにはコード変更後に実行すべきプログラム的なチェックなどを記述できます。`AGENTS.md`はリポジトリ内のどこにでも配置でき、そのファイルが含まれるディレクトリツリー全体に影響します（より深い階層の指示が優先）。ただし、ユーザーがプロンプトで直接与えた指示は`AGENTS.md`の指示よりも優先されます。これにより、人間が新しい開発者をオンボーディングするように、Codexに対してもプロジェクト固有の「お作法」を教えることができます。

タスクが完了すると、Codexは変更差分（diff）、ターミナルログ、引用（どのファイルやログを参照したか）などを開発者に提示します。開発者は結果を確認し、追加の修正を依頼したり、GitHubプルリクエストを作成したりできます。タスクの実行時間は、その複雑性に応じて1分から30分程度かかることがあり、開発者はリアルタイムで進捗を監視できます。

セキュリティと分離性も重視されており、各タスクは他のタスクやシステムから完全に隔離された軽量仮想マシン（MicroVM）内で実行されます。タスク実行中のインターネットアクセスは原則として無効化され、エージェントは明示的に提供されたリポジトリ内のコードと、ユーザーがセットアップスクリプトで事前設定した依存関係のみを利用できます。

```plantuml
@startuml
!theme plain
skinparam roundcorner 20
skinparam BackgroundColor #EEEBDC

title Codex タスク実行シーケンスとAGENTS.mdの役割

actor User as "開発者"
participant ChatGPT_UI as "ChatGPT UI"
participant Codex_Service as "Codexサービス"
participant Codex_Agent_Environment as "Codexエージェント環境\n(サンドボックス)"
database Repository as "GitHubリポジトリ\n(AGENTS.md含む)"

User -> ChatGPT_UI : タスクプロンプト入力
ChatGPT_UI -> Codex_Service : タスク実行リクエスト
Codex_Service -> Codex_Agent_Environment : 新規環境起動、リポジトリクローン
Codex_Agent_Environment -->> Repository : リポジトリ情報読み込み
Codex_Agent_Environment -> Codex_Agent_Environment : AGENTS.md読み込み・解釈
note right of Codex_Agent_Environment : プロジェクト固有の指示を取得
Codex_Agent_Environment -> Codex_Agent_Environment : セットアップスクリプト実行
Codex_Agent_Environment -> Codex_Agent_Environment : ターミナルコマンド実行ループ\n(コード記述、テスト、Linter等)
loop タスク完了まで
    Codex_Agent_Environment -> Codex_Agent_Environment : 思考・コード生成・ファイル編集
    Codex_Agent_Environment -> Codex_Agent_Environment : コマンド実行・テスト・結果確認
end
Codex_Agent_Environment -> Codex_Service : タスク完了通知、変更差分、ログ、引用
Codex_Service -> ChatGPT_UI : 結果表示
User -> ChatGPT_UI : 結果確認、追加修正、PR作成指示など
@enduml
```

```plantuml
@startuml
!theme plain
skinparam roundcorner 20
skinparam BackgroundColor #EEEBDC

title AGENTS.md の活用ユースケース

actor "開発者" as Dev
rectangle "Codexエージェント" as Agent

package "AGENTS.md 設定" {
  Dev -> (AGENTS.md に記述) : コーディング規約
  Dev -> (AGENTS.md に記述) : テスト実行コマンド
  Dev -> (AGENTS.md に記述) : PRメッセージテンプレート
  Dev -> (AGENTS.md に記述) : プロジェクト構造情報
  Dev -> (AGENTS.md に記述) : カスタム検証スクリプト
}

Agent -> (AGENTS.md を参照) : 指示を理解
(AGENTS.md を参照) --> Agent : 動作をガイド

note right of Agent
  AGENTS.mdにより、Codexは
  プロジェクトの文脈を深く理解し、
  より整合性の取れた高品質な
  アウトプットを生成しやすくなる。
end note
@enduml
```

### Chapter 2.2: Codexを支える頭脳 - `codex-1`モデル ✨

**コアメッセージ**: `codex-1`は、OpenAIの強力な基盤モデルo3をソフトウェアエンジニアリングに特化して強化学習でファインチューニングしたモデルであり、高いベンチマーク性能と人間らしいコーディングスタイルを実現しています。

`codex-1`の最適化は、単に多くのコードを学習させただけでなく、**強化学習 (Reinforcement Learning)** の技術を用いて行われました。強化学習とは、AIエージェントが試行錯誤を通じて、より良い結果（この場合は、高品質で実用的なコード）を生み出すように学習する手法です。`codex-1`は、現実世界の多様なコーディングタスク環境で訓練され、人間のスタイルとPRの嗜好性の模倣、指示への正確な準拠、そしてテストが成功するまでコードを反復的に修正しテストを実行する能力において、o3から進化しています。

:::note info
**強化学習 (Reinforcement Learning, RL) とは？**
エージェント（学習者）が環境内で行動を選択し、その結果として得られる報酬（または罰）に基づいて、将来より多くの報酬を得られるように行動戦略を改善していく機械学習の手法の一つです。囲碁で人間に勝利したAlphaGoなどが有名です。Codexの場合、良いコードを書いたり、テストをパスしたりすると「報酬」が得られるように学習が進みます。
:::

OpenAIの発表によると、`codex-1`は標準的なコーディングベンチマークであるSWE-Bench VerifiedやOpenAI内部のSWEタスクにおいて、既存モデルと比較して高い性能を示しています。特に「pass@k」（k回の試行でタスクを成功させる確率）という指標で優れた結果を出しており、これは一度で完璧なコードを生成するだけでなく、試行錯誤を通じて問題を解決する能力が高いことを示唆しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/78e3772f-9262-4e14-93a1-b7795a41b68c.png)

<small>※ 上記の数値は発表資料のグラフから読み取った概算値であり、正確な値は公式発表を参照してください。SWE-Bench Verifiedのサンプルの一部は除外されています。</small>

さらに、`codex-1`はOpenAI o3と比較して、人間がレビューしやすく、標準的なワークフローに統合しやすい、よりクリーンなパッチ（修正コード）を一貫して生成する傾向があります。AIが生成したコードを人間がレビューしマージする際には、コードの品質だけでなくスタイルや構成も重要であり、`codex-1`はこの点を重視して訓練されています。

```plantuml
@startuml
!theme plain
skinparam roundcorner 20
skinparam BackgroundColor #EEEBDC
title codex-1 モデルの学習プロセスと特徴

skinparam activity {
    BorderColor #C0C0C0
    ArrowColor #505050
    FontName Arial
}
skinparam note BackgroundColor #FFFFE0

start

:OpenAI o3 (基盤モデル) を使用;

:ソフトウェアエンジニアリング特化のファインチューニング;

partition "強化学習 (RL)" {
    :実世界のコーディングタスクを準備;
    note left
        - 多様な言語・プロジェクト
        - バグ修正、機能追加など
    end note

    :学習目標 (報酬設計) を定義;
    note right
        - 指示忠実度
        - コード品質 (可読性、効率性)
        - 人間のスタイルへの近さ
        - テスト成功
        - PR受入容易性
    end note

    :強化学習を実行;
}

:"codex-1" モデル生成;

partition "codex-1 モデルの特徴" {
    if (ベンチマーク評価) then (SWE-Bench等)
        :高い性能を記録;
    else (実際の振る舞い)
        :人間の開発者のような振る舞い;
        split
            :クリーンなパッチ生成;
        split again
            :指示への正確な準拠;
        split again
            :テストの反復実行能力;
        endsplit
    endif
}

stop
@enduml
```

### Chapter 2.3: Codexによる具体的なコード改善例 💡

**コアメッセージ**: OpenAIは、`codex-1`が`astropy`、`matplotlib`、`django`といった著名なライブラリのバグを的確に修正し、時にはテストコードも追加する能力を持つことを具体的なコード差分で示しています。

:::note warn
以下のコード差分は、OpenAIが提示したものであり、`codex-1`と`OpenAI o3`の出力を比較しています。`codex-1`がより簡潔で的確な修正を行っている点に注目してみてください。
:::

例えば、`astropy`の`separability_matrix`がネストされた`CompoundModels`に対して分離性を正しく計算しないという問題に対し、Codexは`_cstack`関数内のロジックを修正し、ネストされたモデルの分離性情報を正しく扱うように変更しました。さらに、この問題に対するリグレッションテストも追加しています。

**Codexによる修正 (`astropy/modeling/separable.py`)**:
```diff
@@ -242,7 +242,7 @@ def _cstack(left, right):
        cright = _coord_matrix(right, 'right', noutp)
    else:
        cright = np.zeros((noutp, right.shape[1]))
        cright[-right.shape[0]:, -right.shape[1]:] = 1
        cright[-right.shape[0]:, -right.shape[1]:] = right

    return np.hstack([cleft, cright])
```

**Codexによるテスト追加 (`astropy/modeling/tests/test_separable.py`)**:```diff
@@ -148,3 +148,17 @@ def test_custom_model_separable():

    assert not model_c().separable
    assert np.all(separability_matrix(model_c()) == [True, True])
    
    def test_nested_compound_model_separability():
    """Regression test for nested compound models in separability_matrix."""
    lin_compound = models.Linear1D(10) & models.Linear1D(5)
    nested = models.Pix2Sky_TAN() & lin_compound
    expected = np.array([
        [True, True, False, False],
        [True, True, False, False],
        [False, False, True, False],
        [False, False, False, True],
    ])
    result = separability_matrix(nested)
    assert_allclose(result, expected)

同様に、`matplotlib`の`mlab._spectral_helper`におけるウィンドウ補正が負の値を持つウィンドウ（例: `flattop`）に対して正しくない問題では、Codexは`_spectral_helper`関数内のウィンドウ補正ロジックを修正し、`np.abs`の不要な使用を削除しました。

`django`においては、SQLiteとMySQLで`DurationField`のみを含む式が正しく動作しないという`convert_durationfield_value`での型変換エラーに対し、Codexは`convert_durationfield_value`関数を修正し、様々なデータベースバックエンドから返される可能性のある多様なDurationの表現（`timedelta`オブジェクト、文字列、数値）を適切に処理できるように改善しました。

これらの例は、Codexが単にコードを生成するだけでなく、既存のコードベースの文脈を理解し、具体的なバグを修正し、さらにはその検証のためのテストコードまで作成できる可能性を示しています。

### Part 2 要約

Codexは、開発者のプロンプトに基づき、セキュアなサンドボックス環境でタスクを実行します。`AGENTS.md`ファイルによりプロジェクト固有のカスタマイズが可能です。中核となる`codex-1`モデルは、ソフトウェアエンジニアリングに特化して強化学習で訓練され、高いベンチマーク性能と人間らしいコーディングスタイルを実現しています。具体的なバグ修正例では、複雑な問題に対しても的確な修正とテストコード生成能力を示しています。

---

## Part 3: 信頼と安全性の追求

AIエージェントがより複雑なタスクを自律的に処理できるようになるにつれて、その信頼性と安全性はますます重要になります。OpenAIはCodexの設計において、これらの側面を優先事項としています。

### Chapter 3.1: 責任あるAI開発 - 安全なエージェントを目指して

**コアメッセージ**: Codexは、マルウェア開発のような悪意のある利用を識別・拒否しつつ、正当で有益なアプリケーション開発を支援するように訓練されています。

AIによるソフトウェアエンジニアリング技術の悪用を防ぐことは極めて重要です。OpenAIは、安全性と実用性のバランスを取るため、Codexが悪意のあるリクエストを識別し拒否するように訓練し、同時に低レベルカーネルエンジニアリングのような正当なタスクは明確に区別してサポートするアプローチを採用しています。これを支えるため、ポリシーフレームワークの強化と厳格な安全性評価が組み込まれており、詳細はo3 System Cardの追補版で公開されています。

### Chapter 3.2: セキュアな実行メカニズムと透明性の確保

**コアメッセージ**: Codexエージェントはクラウド上の安全で隔離されたコンテナ内で動作し、その作業プロセスは引用、ターミナルログ、テスト結果を通じて開発者が検証できるよう透明性が確保されています。

Codexのタスク実行環境は、前述の通り、インターネットアクセスが無効化された隔離コンテナであり、エージェントの対話は提供されたコードと事前設定された依存関係に限定されます。これにより、意図しない外部影響や悪意のあるコードダウンロードのリスクを最小限に抑えています。

さらに、開発者がCodexの出力を検証できるように、透明性と検証可能性が重視されています。Codexが最終応答を生成する際に参照したファイルパスやターミナル出力は、応答内の関連箇所に`【F:<file_path>†L<line_start>(-L<line_end>)?】`や`【<chunk_id>†L<line_start>(-L<line_end>)?】`といった形式で引用（Citations）として示されます。これにより、エージェントの思考プロセスや根拠を追跡できます。また、実行されたコマンドとその出力が記録されたターミナルログや、テストの成否を示すテスト結果も提供されます。

Codexエージェントは、不確実な場合やテストが失敗した場合にはこれらの問題を明示的に伝え、開発者が情報に基づいて次の行動を決定できるようにします。それでもなお、**エージェントが生成したすべてのコードは、統合および実行前に開発者が手動でレビューし、検証することが不可欠です。**

```plantuml
@startuml
!theme plain
skinparam roundcorner 20
skinparam BackgroundColor #EEEBDC

title Codexの検証プロセスと透明性

actor "開発者" as Dev
participant "Codexエージェント" as Agent
participant "Codex実行環境" as Env
participant "コードリポジトリ" as Repo
participant "生成されたPR/差分" as PR

Dev -> Agent : タスク指示
Agent -> Env : タスク実行 (コード変更、テスト等)
Env --> Repo : コード参照・変更
Env --> Agent : 実行ログ、テスト結果
Agent -> PR : 変更内容、サマリ、テスト結果、引用を記述

PR --> Dev : レビュー依頼

Dev -> PR : サマリ確認
note left: 何をしたか？なぜしたか？
Dev -> PR : 引用確認 (Citations)
note left: どのファイル/ログを参照したか？\n根拠は何か？
Dev -> PR : テスト結果確認
note left: テストはパスしたか？\n失敗した場合はその内容は？
Dev -> PR : ターミナルログ確認 (詳細)
note left: どのようなコマンドが実行されたか？\nエラーは発生しなかったか？
Dev -> PR : コード差分レビュー
note left: 変更は適切か？\n意図しない副作用はないか？

Dev -> Repo : (検証後) マージ判断

@enduml
```

### Part 3 要約

Codexは、悪意のある利用を拒否しつつ正当なタスクを支援するよう訓練されています。開発者がAIの作業を検証できるよう、引用、ターミナルログ、テスト結果を通じた透明性が確保されています。また、エージェントはインターネットアクセスが無効化されたセキュアな隔離コンテナ内で動作し、安全性と信頼性を高めています。しかし、最終的なコードのレビューと検証は開発者の責任です。

---

## Part 4: Codexの活用事例とエコシステム

このパートでは、Codexが実際にどのように利用されているのか、OpenAI内部での事例や外部テスターからのフィードバック、そして関連ツールであるCodex CLIのアップデートについて紹介します。

### Chapter 4.1: OpenAI内部および外部テスターによるCodexの活用

**コアメッセージ**: OpenAIの技術チームやCisco、Temporalなどの外部テスターは、Codexを日常業務や特定プロジェクトに活用し、反復作業のオフロード、機能開発の加速、バグ修正、リファクタリングなどでその有効性を確認しています。

OpenAIのエンジニアは、Codexをリファクタリング、変数名変更、テスト作成といった反復作業のオフロードや、新規機能の足場作り、バグ修正、ドキュメント作成などに活用し、コンテキストスイッチの削減と集中力の維持に役立てています。オンコール対応時の問題切り分けやタスク計画など、新しい働き方も生まれています。

リリースに先立ち、少数の外部テスターもCodexを評価しました。
*   **Cisco** は、エンジニアリングチームが野心的なアイデアをより迅速に実現するための支援ツールとしてCodexを評価し、製品ポートフォリオ全体での実世界のユースケースを通じてフィードバックを提供しています。
*   **Temporal** は、機能開発の加速、問題のデバッグ、テストの作成と実行、大規模なコードベースのリファクタリングにCodexを活用し、エンジニアの集中力を維持しつつイテレーションを高速化しています。
*   **Superhuman** は、テストカバレッジの向上やインテグレーションエラーの修正といった小規模だが反復的なタスクの迅速化にCodexを利用し、プロダクトマネージャーによる軽微なコード変更貢献も可能にしています。
*   **Kodiak** は、自動運転技術開発を加速するため、デバッグツールの作成、テストカバレッジの向上、コードのリファクタリングにCodexを活用し、不慣れなスタック部分の理解にも役立てています。

これらの早期テスターからの学びとして、明確に範囲を定めたタスクを複数のエージェントに同時に割り当てることや、様々な種類のタスクやプロンプトを試してモデルの能力を探求することが推奨されています。

```plantuml
@startuml
!theme plain
skinparam roundcorner 20
skinparam BackgroundColor #EEEBDC

title Codex 活用ユースケース例

actor "OpenAIエンジニア" as OAI_Eng
actor "外部テスター\n(Cisco, Temporal, etc.)" as Ext_Tester
participant "Codex" as C

OAI_Eng --> C : リファクタリング依頼
OAI_Eng --> C : テスト作成依頼
OAI_Eng --> C : バグ修正案作成
OAI_Eng --> C : ドキュメント草案作成
C --> OAI_Eng : コード変更案、テストコード、修正案、ドキュメント案

Ext_Tester --> C : 新機能プロトタイピング
Ext_Tester --> C : 大規模リファクタリング支援
Ext_Tester --> C : デバッグツール作成支援
Ext_Tester --> C : コードベース理解支援 (Q&A)
C --> Ext_Tester : コード案、リファクタリング案、ツールコード案、解説

note right of C
  **共通するメリット:**
  - 反復作業の自動化
  - 開発サイクルの短縮
  - エンジニアの負荷軽減
  - 新しいアイデアの迅速な検証
end note
@enduml
```

### Chapter 4.2: Codex CLIの進化 - ローカル環境での強力な相棒 💻

**コアメッセージ**: ターミナルで動作する軽量なオープンソースコーディングエージェントであるCodex CLIもアップデートされ、新モデル`codex-mini-latest`の導入やChatGPTアカウント連携による利便性向上が図られました。

:::note info
**Codex CLIとは？**
Codex CLIは、開発者のローカルターミナルで動作するコマンドラインインターフェースツールです。o3やo4-miniのようなモデルのパワーをローカルワークフローに持ち込み、タスクをより迅速に完了するためのペアプログラマーとして機能します。クラウド版のCodexとは異なり、よりインタラクティブで同期的な利用が想定されています。
:::

主なアップデート内容として、Codex CLI専用に設計されたo4-miniの小型版である**`codex-mini-latest`**モデルが登場しました。これはCLIでのより高速なワークフローをサポートし、低遅延のコードQ&Aや編集に最適化されつつ、指示追従性やスタイル維持といった強みは保持しています。Codex CLIのデフォルトモデルとして、またAPIでは`codex-mini-latest`として利用可能です。

さらに、従来の手動でのAPIトークン生成・設定が不要になり、**ChatGPTアカウントでサインイン**し、使用したいAPI組織を選択するだけでAPIキーが自動的に生成・設定されるようになり、利便性が向上しました。加えて、ChatGPT経由でCodex CLIにサインインしたPlusユーザー（$5）およびProユーザー（$50）は、期間限定で無料のAPIクレジットを利用できる特典も提供されました（発表時点）。

```plantuml
@startuml
!theme plain
skinparam roundcorner 20
skinparam BackgroundColor #EEEBDC
skinparam defaultTextAlignment center

title Codex エコシステム

actor Developer as Dev

rectangle "Codex エコシステム" {
  rectangle "Codex CLI" {
    usecase "コードQ&A (低遅延)" as UC_CLI_QA
    usecase "ローカルファイル編集支援" as UC_CLI_Edit
    usecase "ChatGPTアカウント認証" as UC_CLI_Auth
    usecase "ローカルリポジトリ連携" as UC_CLI_Repo
  }

  rectangle "Codex (in ChatGPT)" {
    usecase "非同期タスク実行" as UC_Cloud_Task
    usecase "リファクタリング・バグ修正" as UC_Cloud_Refactor
    usecase "PR作成" as UC_Cloud_PR
  }

  rectangle "共通インフラ (OpenAI)" {
    usecase "codex-mini-latestモデル利用" as UC_MiniModel
    usecase "codex-1モデル利用" as UC_Codex1Model
    usecase "OpenAI API連携" as UC_API
  }
}

Dev -- UC_CLI_QA
Dev -- UC_CLI_Edit
Dev -- UC_Cloud_Task
Dev -- UC_Cloud_Refactor
Dev -- UC_Cloud_PR

UC_CLI_Auth ..> UC_API : <<includes>>
UC_CLI_QA ..> UC_MiniModel : <<includes>>
UC_CLI_Repo -|> UC_CLI_Edit

UC_Cloud_Task ..> UC_Codex1Model : <<includes>>
UC_Cloud_Refactor ..> UC_Codex1Model : <<includes>>
UC_Cloud_PR ..> UC_Codex1Model : <<includes>>

note right of Dev
  開発者はタスクの性質に応じて
  CLIまたはクラウド版を選択する
end note
@enduml
```

### Part 4 要約

OpenAI内部では、Codexが反復作業のオフロードや新規機能の足場作りなどに活用され、エンジニアの生産性向上に貢献しています。CiscoやTemporalなどの外部テスターも、多様なユースケースでCodexを評価し、その可能性を実証しています。また、ローカル環境で利用できるCodex CLIも進化し、新モデル`codex-mini-latest`の導入やChatGPTアカウント連携により、さらに使いやすくなりました。

---

## Part 5: Codexの利用方法と今後の展望

このパートでは、Codexの現在の利用可能性、価格設定、制限事項、そしてOpenAIが描くCodexの未来について説明します。

### Chapter 5.1: Codexを始めるには - 利用対象と価格設定 💰

**コアメッセージ**: CodexはChatGPT Pro, Enterprise, Teamユーザー向けに順次展開が開始され、将来的にはPlus, Eduユーザーにも拡大予定です。初期は無料アクセス期間があり、その後レート制限や有償オプションが導入される見込みです。`codex-mini-latest` APIも提供されています。

Codexは、発表日（2024年10月頃の想定）より、ChatGPT Pro、Enterprise、およびTeamユーザーに対して順次グローバルに展開が開始されています。これらのユーザーは、追加費用なしでCodexの機能を試すことができる期間が設けられています。将来的には、ChatGPT PlusおよびEduユーザー向けのサポートも近日中に開始される予定であり、より多くの開発者や学習者がCodexを利用できるようアクセス範囲は拡大していく計画です。

料金体系については、初期は寛大なアクセスが無料で提供されますが、その後、レート制限付きアクセスと、オンデマンドで追加利用量を購入できる柔軟な価格オプションが導入される予定です。具体的な価格設定やオプションの詳細は、今後の発表で明らかにされると考えられます。

また、開発者が`codex-mini-latest`モデルをAPI経由で利用する場合の価格も設定されており、入力トークンは$1.50/100万トークン、出力トークンは$6.00/100万トークン（75%のプロンプトキャッシュ割引あり）となっています。これは、Codex CLI以外のカスタムアプリケーションやツールに`codex-mini-latest`を組み込む開発者向けの価格です。

### Chapter 5.2: 現状のCodex - 可能性と限界点、そして未来 🌟

**コアメッセージ**: リサーチプレビュー段階のCodexには画像入力非対応などの機能的制約がありますが、将来的にはリアルタイムペアリングと非同期タスク委任が融合し、よりインタラクティブで柔軟なワークフローと外部ツール連携の深化が期待され、ソフトウェア開発のあり方を大きく変える可能性があります。

Codexはまだ開発の初期段階にあり、リサーチプレビューとしてリリースされています。これは、OpenAIの反復的なデプロイ戦略に沿ったものであり、ユーザーからのフィードバックを得ながら継続的に改善していくことを意味します。現状のCodexには、フロントエンド開発で有用な画像入力への非対応、エージェントがタスクを実行している途中での開発者による指示修正や軌道修正の不可、そしてリモートエージェントへのタスク委任がローカルでのインタラクティブな編集よりも時間がかかる場合があるといった機能的な制約や改善点が存在します。

しかし、OpenAIはCodexの未来について壮大なビジョンを描いています。開発者が自身で担当したい作業を推進し、残りの作業をエージェントに委任することで、AIを活用してより迅速かつ生産的に業務を進める未来を構想しています。その実現のため、リアルタイムコラボレーション（Codex CLIのようなツールとのペアプログラミング）と非同期デリゲーション（ChatGPT内のCodexが導入する、複数のエージェントにタスクを委任する非同期ワークフロー）の両方をサポートするCodexツール群を構築しています。最終的には、これら二つの対話モードは収束し、開発者はIDEや日常的に使用するツール全体でAIエージェントと協力し、質問、提案の取得、長時間のタスクのオフロードなどを統一されたワークフローで行えるようになるでしょう。

将来的には、よりインタラクティブで柔軟なエージェントワークフローが導入される計画です。開発者はタスク実行中にガイダンスを提供したり、実装戦略について協力したりできるようになる見込みであり、エージェントから能動的に進捗状況のアップデートを受け取れるようになるかもしれません。現在のGitHub連携に加え、将来的にはCodex CLI、ChatGPT Desktop、さらには課題追跡システムやCIシステムといったツールからもタスクを割り当てられるようになることが構想されています。

ソフトウェアエンジニアリングは、AIによる生産性の大幅な向上を最初に経験する産業の一つであり、個人や小規模チームに新たな可能性を開きます。OpenAIはこれらの利益に楽観的であると同時に、エージェントの広範な導入が開発者のワークフロー、人々のスキル開発、スキルレベル、地域に与える影響をよりよく理解するために、パートナーと協力しています。

```plantuml
@startuml
!theme plain
skinparam roundcorner 20
skinparam BackgroundColor #EEEBDC
left to right direction
skinparam packageStyle rectangle

actor Developer as Dev

rectangle "Codex AIエージェントプラットフォーム" {
  usecase "リアルタイムペアリング支援を受ける" as UC_Pairing
  usecase "タスクを委任する\n(IDE, CLI, Desktop経由)" as UC_Delegate
  usecase "インタラクティブガイダンスを受ける" as UC_Guidance
  usecase "プロアクティブな進捗報告を受ける" as UC_Updates
  usecase "コードリポジトリと連携する\n(例: PR作成・管理)" as UC_Repo
  usecase "課題管理システムと連携する\n(例: タスク生成・進捗連携)" as UC_ITS
  usecase "CI/CDエラーから自動修正する" as UC_CICD_Fix
}

Dev -- UC_Pairing
Dev -- UC_Delegate
Dev -- UC_Guidance
Dev -- UC_Updates

artifact "GitHub" as GH
artifact "課題追跡システム (Jira)" as ITS_System
artifact "CI/CDシステム (Jenkins)" as CI_System

UC_Repo <.. GH : interacts with
UC_ITS <.. ITS_System : interacts with
UC_CICD_Fix <.. CI_System : interacts with

note right of Dev
  **開発者の主な利用シナリオ:**
  - コーディング中にリアルタイム支援を得る
  - 複雑なタスクや定型タスクをAIに委任
  - AIからの能動的なフィードバックやガイダンスを活用
end note
@enduml
```

### Part 5 要約

CodexはChatGPT Pro, Enterprise, Teamユーザー向けに提供が開始され、将来的にはPlus, Eduユーザーにも拡大予定です。初期は無料ですが、後にレート制限や有償オプションが導入されます。リサーチプレビュー段階であり、画像入力非対応などの制約がありますが、将来的にはリアルタイムペアリングと非同期タスク委任が融合し、よりインタラクティブで柔軟なワークフローと外部ツール連携の深化が期待されます。AIによる生産性向上は、ソフトウェア開発のあり方を大きく変える可能性があります。

---

## Part 6: まとめ - Codexと共に創るソフトウェアエンジニアリングの新しい景色

**コアメッセージ**: Codexは、単なるツールを超え、ソフトウェア開発のパラダイムシフトを促す可能性を秘めた存在であり、開発者の日常をより知的で、創造的で、そして人間らしいものに変えていくかもしれません。

Codexの登場は、生産性の飛躍的向上、創造性の促進、開発の民主化、品質の向上、そして新しい働き方の出現といった、新しい景色を私たちに見せてくれるかもしれません。退屈な作業はAIに任せ、人間は問題解決の本質や、ユーザーに真の価値を届けるための設計に没頭する。そのような未来が、Codexによって少しずつ現実のものになろうとしています。

これはまだ始まりに過ぎません。Codexがどのように進化し、開発者コミュニティによってどのように活用されていくのか、非常に楽しみです。CodexのようなAIエージェントとの協働は、これからの開発者体験を大きく変革し、ソフトウェアエンジニアリングの新しい標準を形作っていくことでしょう。

---

## 付録 (Appendix)

### Chapter A.1: `codex-1` システムメッセージの概要

**コアメッセージ**: OpenAIは、`codex-1`モデルのデフォルトの振る舞いを開発者が理解し、カスタムワークフローでCodexを効果的に利用できるように、システムメッセージの一部を公開しています。これはCodexエージェントへの基本的な指示セットです。

主な内容は、Gitリポジトリの扱い方（新しいブランチを作成しない、コミット前にpre-commitフックをパスする等）、`AGENTS.md`ファイルの仕様（スコープ、優先順位、プログラム的チェックの実行義務等）、そして引用（Citations）の形式と使用方法（ファイルパス引用とターミナル出力引用の使い分け等）に関する指示です。開発者はこれらのデフォルトの振る舞いを理解した上で、プロンプトで特定の指示を与えることでCodexの動作を調整できます。例えば、「時間がないので`AGENTS.md`に書かれたテストをスキップしてほしい」といった指示が可能です。

### Chapter A.2: 用語解説

この記事で使われているいくつかの専門用語について、簡単な解説を加えます。

*   **API (Application Programming Interface)**: ソフトウェアやプログラムが互いに情報をやり取りするための「窓口」や「接続方法」の規約。
*   **CLI (Command Line Interface)**: テキストベースのコマンド（命令）を入力してコンピュータを操作する方式。
*   **Docker / コンテナ技術**: アプリケーションとその実行に必要な環境（ライブラリ、設定ファイルなど）をひとまとめにし（コンテナ化）、どんな環境でも同じように動かせるようにする技術。
*   **Git / GitHub**: Gitは分散型バージョン管理システムで、ソースコードなどの変更履歴を記録・追跡するツール。GitHubはGitを利用したウェブベースのホスティングサービスで、コード共有や共同開発のプラットフォーム。
*   **Linter**: ソースコードを分析し、プログラミングエラー、バグ、スタイルエラー、疑わしい構造などを検出する静的解析ツール。
*   **MicroVM (マイクロVM)**: 従来の仮想マシンよりも軽量で高速に起動できる仮想マシン技術。コンテナ技術と組み合わせて、より効率的で安全な分離環境を提供するために使われることがあります。
*   **プルリクエスト (Pull Request, PR)**: 主にGitHubなどのプラットフォームで、自身が行ったコード変更を他の開発者に通知し、レビューを依頼し、問題がなければ本体のコードベースにマージ（統合）してもらうための機能。
*   **強化学習 (Reinforcement Learning, RL)**: [Chapter 2.2]で解説。
*   **サンドボックス (Sandbox)**: システムの他の部分から隔離された安全な実行環境。外部に影響を与えずにプログラムをテストしたり実行したりするために使われます。
*   **SWE-Bench**: 実世界のGitHubリポジトリから収集されたソフトウェアエンジニアリングの課題（バグ修正など）を集めたベンチマーク。AIモデルのコード生成・修正能力を評価するために使われます。
*   **トークン (Token)**: 大規模言語モデルがテキストを処理する際の基本単位。単語や句読点、あるいは単語の一部などがトークンとして扱われます。APIの利用料金は、このトークン数に基づいて計算されることが多いです。
*   **型チェッカー (Type Checker)**: プログラム内の変数や関数の「型」（数値、文字列、オブジェクトなど）が正しく使われているかを検査するツール。型の不一致によるエラーを未然に防ぐのに役立ちます。