クラウド環境¶
環境を使用して、Codex がクラウドチャット中にインストールおよび実行するものを制御します。たとえば、依存関係の追加、リンターやフォーマッターなどのツールのインストール、環境変数の設定ができます。
環境は Codex の設定 で構成します。
Codex のクラウドチャットの実行方法¶
プロンプトを送信すると、次の処理が行われます。
- Codex がコンテナを作成し、選択したブランチまたはコミット SHA でリポジトリをチェックアウトします。
- Codex がセットアップスクリプトを実行します。キャッシュされたコンテナを再開する場合は、オプションのメンテナンススクリプトも実行します。
- Codex がインターネットアクセスの設定を適用します。セットアップスクリプトはインターネットアクセスが有効な状態で実行されます。エージェントのインターネットアクセスはデフォルトで無効ですが、必要に応じて制限付きまたは無制限のアクセスを有効にできます。エージェントのインターネットアクセス を参照してください。
- エージェントがループ内でターミナルコマンドを実行します。コードを編集し、チェックを実行して、作業の検証を試みます。リポジトリに
AGENTS.mdが含まれている場合、エージェントはそれを使用して、プロジェクト固有の lint コマンドとテストコマンドを見つけます。 - エージェントが処理を完了すると、回答と、変更したファイルの差分が表示されます。PR を開くか、追加の質問をすることができます。
デフォルトのユニバーサルイメージ¶
Codex エージェントは、universal というデフォルトのコンテナイメージで実行されます。このイメージには、一般的な言語、パッケージ、ツールがあらかじめインストールされています。
環境設定で パッケージバージョンを設定 を選択すると、Python、Node.js、その他のランタイムのバージョンを固定できます。
インストールされているものの詳細については、参照用の Dockerfile と、ローカルでプルおよびテストできるイメージを提供している openai/codex-universal を参照してください。
codex-universal には速度と利便性のために言語があらかじめインストールされていますが、セットアップスクリプト を使用してコンテナに追加のパッケージをインストールすることもできます。
環境変数とシークレット¶
環境変数 は、チャットの全期間(セットアップスクリプトとエージェントフェーズを含む)にわたって設定されます。
シークレット は環境変数に似ていますが、次の点が異なります。
- 追加の暗号化レイヤーで保存され、タスクの実行時にのみ復号されます。
- セットアップスクリプトでのみ使用できます。セキュリティ上の理由から、エージェントフェーズの開始前にシークレットは削除されます。
自動セットアップ¶
一般的なパッケージマネージャー(npm、yarn、pnpm、pip、pipenv、poetry)を使用するプロジェクトでは、Codex が依存関係とツールを自動的にインストールできます。
手動セットアップ¶
開発環境のセットアップがより複雑な場合は、カスタムセットアップスクリプトを指定することもできます。たとえば、次のようにします。
# Install type checker
pip install pyright
# Install dependencies
poetry install --with test
pnpm install
セットアップスクリプトはエージェントとは別の Bash セッションで実行されるため、
export のようなコマンドはエージェントフェーズに引き継がれません。環境
変数を引き継ぐには、~/.bashrc に追加するか、環境設定で構成します。
コンテナのキャッシュ¶
Codex は、新しいチャットやフォローアップを高速化するために、コンテナの状態を最大 12 時間キャッシュします。
環境がキャッシュされると、次の処理が行われます。
- Codex がリポジトリをクローンし、デフォルトブランチをチェックアウトします。
- Codex がセットアップスクリプトを実行し、結果のコンテナ状態をキャッシュします。
キャッシュされたコンテナが再開されると、次の処理が行われます。
- Codex がチャットで指定されたブランチをチェックアウトします。
- Codex がメンテナンススクリプト(オプション)を実行します。これは、セットアップスクリプトが古いコミットで実行され、依存関係の更新が必要な場合に便利です。
セットアップスクリプト、メンテナンススクリプト、環境変数、またはシークレットを変更すると、Codex はキャッシュを自動的に無効化します。リポジトリの変更によってキャッシュされた状態との互換性がなくなった場合は、環境ページで キャッシュをリセット を選択します。
Business および Enterprise のユーザーの場合、キャッシュは環境へのアクセス権を持つワークスペース内のすべてのユーザー間で共有されます。キャッシュを無効化すると、ワークスペース内の環境のすべてのユーザーに影響します。
インターネットアクセスとネットワークプロキシ¶
依存関係をインストールするため、セットアップスクリプトフェーズではインターネットアクセスを利用できます。エージェントフェーズではインターネットアクセスはデフォルトで無効ですが、制限付きまたは無制限のアクセスを構成できます。エージェントのインターネットアクセス を参照してください。
環境は、セキュリティおよび不正利用防止のため、HTTP/HTTPS ネットワークプロキシの背後で実行されます。外部向けのインターネットトラフィックはすべて、このプロキシを経由します。