使用环境来控制 Codex 在云任务期间安装和运行的内容。例如,你可以添加依赖项、安装 linter 和格式化工具等工具,以及设置环境变量。
在以下位置配置环境 Codex 设置.
Codex 云任务如何运行
提交任务时会发生以下情况:
- Codex 创建一个容器,并在所选的分支或提交 SHA 处检出你的代码库。
- Codex 运行你的安装脚本,并在恢复缓存的容器时运行可选的维护脚本。
- Codex 应用你的互联网访问设置。安装脚本在具有互联网访问权限的情况下运行。默认情况下,Agent 的互联网访问是关闭的,但如果需要,你可以启用受限或不受限的访问权限。请参阅 代理互联网访问.
- Agent 在循环中运行终端命令。它会编辑代码、运行检查,并尝试验证其工作。如果你的代码库包含
AGENTS.md,代理使用它来查找项目专用的 lint 和测试命令。 - 当 Agent 完成后,它会显示其回答以及所更改文件的 diff。你可以发起 PR 或提出后续问题。
默认通用镜像
Codex Agent 在名为以下名称的默认容器镜像中运行 universal,其中预装了常见的语言、包和工具。
In environment settings, select 设置软件包版本 以固定 Python、Node.js 和其他运行时的版本。
有关安装内容的详细信息,请参阅 openai/codex-universal 以获取参考 Dockerfile 和可在本地拉取和测试的镜像。
循环 codex-universal 为了速度和便利性而预装了多种语言,你也可以使用以下命令在容器中安装额外的软件包 安装脚本.
环境变量和密钥
环境变量 会在整个任务期间(包括安装脚本和 Agent 阶段)进行设置。
密钥 与环境变量类似,但有以下不同:
- 它们使用额外的加密层进行存储,仅在任务执行期间才会被解密。
- 它们仅对设置脚本可用。出于安全原因,在智能体阶段开始之前,secrets 会被移除。
自动设置
对于使用常见包管理器的项目(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 会运行维护脚本(可选)。当设置脚本在较旧的提交上运行且依赖项需要更新时,这会非常有用。
如果你更改了设置脚本、维护脚本、环境变量或 secrets,Codex 会自动使缓存失效。如果你的代码库发生更改导致缓存状态不兼容,请选择 重置缓存 (在环境页面上)。
对于 Business 和 Enterprise 用户,缓存会在所有有权访问该环境的用户之间共享。使缓存失效将影响工作区中该环境的所有用户。
互联网访问和网络代理
在设置脚本阶段可以使用互联网访问来安装依赖项。在智能体阶段,默认关闭互联网访问,但你可以配置受限或不受限的访问权限。请参阅 代理互联网访问.
出于安全和防止滥用的目的,环境在 HTTP/HTTPS 网络代理之后运行。所有出站互联网流量都会经过此代理。