クラウド環境
Codex の依存関係とツールをカスタマイズします
環境を使用すると、クラウドチャット中に Codex がインストールおよび実行するものを制御できます。たとえば、依存関係の追加、リンターやフォーマッターなどのツールのインストール、環境変数の設定が可能です。
環境は Codex の設定で構成します。
Codex クラウドチャットの実行方法
提示したプロンプトを送信すると、次の処理が行われます。
- Codex がコンテナを作成し、選択したブランチまたは commit SHA でリポジトリをチェックアウトします。
- Codex がセットアップスクリプトを実行します。キャッシュ済みコンテナを再開する場合は、任意のメンテナンススクリプトも実行します。
- Codex がインターネットアクセス設定を適用します。セットアップスクリプトはインターネットにアクセスできる状態で実行されます。エージェントのインターネットアクセスはデフォルトで無効ですが、必要に応じて制限付きまたは無制限のアクセスを有効にできます。エージェントのインターネットアクセスをご覧ください。
- エージェントがターミナルコマンドを繰り返し実行します。コードを編集し、チェックを実行して、作業内容の検証を試みます。リポジトリに
AGENTS.mdが含まれている場合、エージェントはそこからプロジェクト固有の lint コマンドとテストコマンドを確認します。 - エージェントが完了すると、回答と、変更したファイルの差分が表示されます。PR を開くか、追加の質問を送信できます。
デフォルトの universal イメージ
Codex エージェントは、一般的な言語、パッケージ、ツールがプリインストールされた universal というデフォルトのコンテナイメージで実行されます。
環境設定で、パッケージバージョンを設定を選択すると、Python、Node.js、その他のランタイムのバージョンを固定できます。
codex-universal には速度と利便性のために各種言語がプリインストールされていますが、セットアップスクリプトを使用して追加パッケージをコンテナにインストールすることもできます。
環境変数とシークレット
環境変数は、チャットの全期間(セットアップスクリプトとエージェントフェーズを含む)にわたって設定されます。
シークレットは環境変数と似ていますが、次の点が異なります。
- 追加の暗号化レイヤーを使用して保存され、タスクの実行時にのみ復号されます。
- セットアップスクリプトからのみ利用できます。セキュリティ上の理由から、シークレットはエージェントフェーズの開始前に削除されます。
自動セットアップ
一般的なパッケージマネージャー(npm、yarn、pnpm、pip、pipenv、poetry)を使用するプロジェクトでは、Codex が依存関係とツールを自動的にインストールできます。
手動セットアップ
開発環境のセットアップがより複雑な場合は、カスタムセットアップスクリプトも指定できます。例:
# Install type checker
pip install pyright
# Install dependencies
poetry install --with test
pnpm install
コンテナのキャッシュ
Codex は、新しいチャットや追加のやり取りを高速化するため、コンテナの状態を最大 12 時間キャッシュします。
環境がキャッシュされるとき:
- Codex がリポジトリを clone し、デフォルトブランチをチェックアウトします。
- Codex がセットアップスクリプトを実行し、その結果のコンテナ状態をキャッシュします。
キャッシュ済みコンテナを再開するとき:
- Codex がチャットに指定されたブランチをチェックアウトします。
- Codex がメンテナンススクリプト(任意)を実行します。これは、セットアップスクリプトが以前の commit で実行され、その後に依存関係を更新する必要が生じた場合に便利です。
セットアップスクリプト、メンテナンススクリプト、環境変数、またはシークレットを変更すると、Codex はキャッシュを自動的に無効化します。リポジトリの変更によってキャッシュ済みの状態との互換性が失われた場合は、環境ページで キャッシュをリセットを選択してください。
インターネットアクセスとネットワークプロキシ
依存関係をインストールするため、セットアップスクリプトのフェーズではインターネットアクセスを利用できます。エージェントフェーズではインターネットアクセスがデフォルトで無効ですが、制限付きまたは無制限のアクセスを構成できます。エージェントのインターネットアクセスをご覧ください。
環境は、セキュリティと不正利用防止のため、HTTP/HTTPS ネットワークプロキシの背後で実行されます。外向きのインターネットトラフィックはすべてこのプロキシを通過します。