配置云端运行环境
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 会按下面流程执行:
- 创建 container(容器),并在你选择的 branch(分支)或 commit SHA 上 checkout repository。
- 运行 setup script(初始化脚本)。如果是恢复 cached container(缓存容器),还可以运行可选的 maintenance script(维护脚本)。
- 应用 internet access settings(网络访问设置)。setup scripts 会带 internet access 运行。agent 阶段默认关闭 internet access,但你可以按需启用 limited access(受限访问)或 unrestricted access(不受限访问)。
- Agent 进入循环运行 terminal commands(终端命令),编辑代码、运行检查,并尝试验证自己的工作。如果 repo 里有
AGENTS.md,Agent 会用它找到项目专属 lint 和 test commands。 - 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 包括:
npmyarnpnpmpippipenvpoetry
手动设置
如果你的 development setup(开发环境)更复杂,可以提供 custom setup script(自定义初始化脚本)。
示例:
# 安装类型检查工具
pip install pyright
# 安装依赖
poetry install --with test
pnpm installsetup 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。