📚AI 编程官方教程中文版
官方教程中文版云端与远程环境

配置云端运行环境

Cloud environments(云端环境)用来控制 Codex 在执行 cloud tasks(云端任务)时安装什么、运行什么。

Cloud environments(云端环境)用来控制 Codex 在执行 cloud tasks(云端任务)时安装什么、运行什么。

你可以用它做这些事:

  • 添加 dependencies(依赖)。
  • 安装 linters(代码检查工具)和 formatters(格式化工具)。
  • 设置 environment variables(环境变量)。
  • 配置 secrets(敏感变量)。

环境配置入口:

https://chatgpt.com/codex/settings/environments

Codex Cloud 任务如何运行

当你提交一个 cloud task 后,Codex 会按下面流程执行:

  1. 创建 container(容器),并在你选择的 branch(分支)或 commit SHA 上 checkout repository。
  2. 运行 setup script(初始化脚本)。如果是恢复 cached container(缓存容器),还可以运行可选的 maintenance script(维护脚本)。
  3. 应用 internet access settings(网络访问设置)。setup scripts 会带 internet access 运行。agent 阶段默认关闭 internet access,但你可以按需启用 limited access(受限访问)或 unrestricted access(不受限访问)。
  4. Agent 进入循环运行 terminal commands(终端命令),编辑代码、运行检查,并尝试验证自己的工作。如果 repo 里有 AGENTS.md,Agent 会用它找到项目专属 lint 和 test commands。
  5. Agent 完成后,展示最终回答,以及所有被修改文件的 diff。你可以打开 PR,或者继续追问。

Agent internet access 说明:

https://developers.openai.com/codex/cloud/internet-access

默认通用镜像

Codex agent 默认运行在名为 universal 的 container image(容器镜像)中。这个镜像预装了常见 languages(语言)、packages(包)和 tools(工具)。

在 environment settings 里,你可以选择 Set package versions,固定 Python、Node.js 和其他 runtimes(运行时)的版本。

如果要看镜像里具体安装了什么,参考 openai/codex-universal。它提供 reference Dockerfile(参考 Dockerfile),也提供可本地 pull 和 test 的镜像:

https://github.com/openai/codex-universal

codex-universal 已经预装语言,是为了速度和便利;如果你的项目还需要额外 packages,可以通过 setup scripts 安装。

环境变量和 secrets

Environment variables(环境变量) 会在整个 task 生命周期内可用,包括 setup scripts 和 agent phase(Agent 阶段)。

Secrets(密钥变量) 类似 environment variables,但有两个关键区别:

  • secrets 会使用额外的 encryption(加密)层存储,并且只在 task execution(任务执行)时解密。
  • secrets 只对 setup scripts 可用。出于安全原因,agent phase 开始前,secrets 会被移除。

这点很重要:不要指望 Agent 阶段还能读取 secrets。需要安装私有依赖、拉私有包、下载内部资源时,把这些动作放在 setup script 阶段完成。

自动设置

如果项目使用常见 package managers,Codex 可以自动安装 dependencies 和 tools。

支持的 package managers 包括:

  • npm
  • yarn
  • pnpm
  • pip
  • pipenv
  • poetry

手动设置

如果你的 development setup(开发环境)更复杂,可以提供 custom setup script(自定义初始化脚本)。

示例:

# 安装类型检查工具
pip install pyright

# 安装依赖
poetry install --with test
pnpm install

setup scripts 和 Agent 使用不同的 Bash session。因此,像 export 这样的命令不会自动延续到 agent phase。

如果要让环境变量在 agent phase 里继续存在,有两种方式:

  • 写入 ~/.bashrc
  • 在 environment settings 中配置。

容器缓存

Codex 会缓存 container state(容器状态)最长 12 小时,用来加速新任务和 follow-ups(后续追问)。

当 environment 被缓存时:

  • Codex clone repository,并 checkout default branch。
  • Codex 运行 setup script,并缓存生成后的 container state。

当 cached container 被恢复时:

  • Codex checkout 该任务指定的 branch。
  • Codex 运行 maintenance script(可选)。如果 setup script 是在旧 commit 上运行的,而依赖需要更新,这个脚本很有用。

以下内容发生变化时,Codex 会自动让 cache 失效:

  • setup script
  • maintenance script
  • environment variables
  • secrets

如果你的 repo 变化导致 cached state 不再兼容,可以在 environment page 选择 Reset cache

对 Business 和 Enterprise 用户来说,cache 会在所有有权限访问该 environment 的用户之间共享。让 cache 失效会影响 workspace 内所有使用这个 environment 的用户。

网络访问和代理

setup script 阶段可以访问 internet,用来安装 dependencies。

agent phase 默认关闭 internet access,但你可以配置 limited 或 unrestricted access:

https://developers.openai.com/codex/cloud/internet-access

出于 security(安全)和 abuse prevention(防滥用)目的,environments 会运行在 HTTP/HTTPS network proxy(网络代理)后面。所有 outbound internet traffic(出站公网流量)都会经过这个 proxy。

On this page