Skip to content

Codex 云端功能

Codex 是 OpenAI 的编程代理,可以读取、修改和运行代码。它帮助你更快地构建功能、修复 bug,并理解不熟悉的代码。Codex 可以在后台、并行地处理多个任务,甚至可以主动使用云端的自有环境。

开始使用

首先访问 chatgpt.com/codex,在那里你可以连接 GitHub 账号,这样 Codex 可以处理你仓库中的代码,你也可以从它的工作中创建 pull request。

Codex 包含在你的 Plus、Pro、Business、Edu 或 Enterprise 计划中。注意,某些 Enterprise 工作区可能需要管理员设置才能访问 Codex。

云端任务工作原理

你可以让 Codex 读取、写入和执行仓库中的代码,以回答问题或起草 PR。

当你启动云端任务时,Codex 会为该任务配置一个沙箱化的云容器,其中包含你可以在环境中指定的代码和依赖项。这意味着 Codex 可以在后台工作,并行处理多个任务,并且可以从不同的设备或服务(如手机或 GitHub)触发。

你可以从大多数 Codex 客户端委托工作:Web、IDE 扩展、iOS 中的 Codex 标签,甚至在 GitHub 中 @codex。(CLI 对云端委托的支持即将推出。)

示例提示

询问模式

使用询问模式获取代码的建议和见解,不应用任何更改。

重构建议

Codex 可以帮助头脑风暴结构改进,例如拆分文件、提取函数和收紧文档。

看看 <代码库中最复杂的文件>。
你能建议更好的方式来拆分它、测试它和隔离功能吗?

问答和架构理解

Codex 可以回答关于代码库的深入问题并生成图表。

记录并创建一个 mermaidjs 图表,展示从客户端端点到数据库的完整请求流程。

代码模式

当你希望 Codex 主动修改代码并准备 pull request 时,使用代码模式。

安全漏洞

Codex 擅长审计复杂逻辑和发现安全缺陷。

<我的包> 中有一个内存安全漏洞。找到它并修复它。

代码审查

在任何 pull request URL 后附加 .diff 并将其包含在提示中。Codex 在容器内加载补丁。

请审查我的代码并建议改进。diff 如下:
<diff>

添加测试

实现初始更改后,跟进有针对性的测试生成。

从我的分支,请为以下文件添加测试:
<files>

Bug 修复

堆栈跟踪通常足以让 Codex 定位和纠正问题。

在 <我的包> 中找到并修复一个 bug。

产品和 UI 修复

虽然 Codex 无法渲染浏览器,但它可以解决小的 UI 回归,你可以提供图片作为输入来提供额外上下文。

我们入职页面上的模态框没有居中。你能修复它吗?

云端环境配置

虽然 Codex 云端任务开箱即用,但你可以自定义代理的环境,例如安装依赖项和工具。访问更完整的依赖项、linter、格式化器等通常会带来更好的代理性能。

Codex 设置 中配置你的环境。

任务执行流程

当你提交任务时,后台发生以下事情:

  1. 我们准备一个容器化环境,包含你仓库在所需分支或 sha 的代码,以及你的设置和维护脚本
  2. 我们为代理配置网络访问。网络访问默认关闭,但你可以配置环境以获得有限或完全的网络访问
  3. 代理然后在循环中运行终端命令。它编写代码、运行测试,并尝试检查其工作。代理尝试遵守你在 AGENTS.md 文件中定义的任何指定的 lint 或测试命令。代理除了你提供的终端或 CLI 工具外,没有访问任何特殊工具
  4. 当代理完成时,它呈现其答案和它修改的任何代码的 diff
  5. 你可以选择打开 PR 或请求后续

默认容器镜像

Codex 代理在名为 universal 的默认容器镜像中运行,预装了常见的语言、包和工具。

可以在环境设置中配置 Python、Node.js 等的版本。

自定义设置脚本

虽然 codex-universal 预装了语言以提高速度和便利性,但你也可以使用设置脚本向容器安装额外的包。

如果你的开发设置更复杂,你也可以提供自定义设置脚本。例如:

bash
# 安装类型检查器
pip install pyright
# 安装依赖
poetry install --with test
pnpm install

自动依赖安装

对于使用常见包管理器(npm、yarn、pnpm、pip、pipenv 和 poetry)的项目,Codex 可以自动安装依赖项和工具。

环境变量和密钥

环境变量可以指定,并在任务的整个持续时间内设置。

密钥也可以指定,类似于环境变量,但:

  • 在日志中被编辑
  • 安全存储
  • 不会在任务输出中暴露

容器缓存

Codex 缓存容器状态以使运行新任务和后续任务更快。缓存的环境将克隆仓库并检出默认分支。然后运行设置脚本,结果容器状态缓存最多 12 小时。

当从缓存恢复容器时,我们检出为任务指定的分支,然后运行维护脚本。维护脚本是可选的,有助于为缓存容器更新依赖项,其中设置脚本是在较旧的提交上运行的。

如果设置脚本、维护脚本、环境变量或密钥有更改,我们将自动使缓存失效并删除任何缓存的容器。如果仓库中有会导致向后不兼容问题的更改,你可以使用环境页面上的"重置缓存"按钮手动使缓存失效。

网络访问配置

在设置脚本阶段,网络访问可用于安装依赖项。在代理阶段,网络访问默认禁用,但你可以配置环境以获得有限或完全的网络访问。

安全警告

警告

启用网络访问会使你的环境面临安全风险,包括提示注入、代码或密钥泄露、包含恶意软件或漏洞,或使用有许可限制的内容。为了降低风险,只允许必要的域和方法,并始终审查 Codex 的输出和工作日志。

域允许列表

你可以从预设允许列表中选择:

  • — 禁用所有网络访问
  • 常见依赖 — 包括流行的源代码控制、包管理和其他开发常用域
  • 完全访问 — 允许所有出站网络

使用"无"或"常见依赖"时,你可以向允许列表添加额外的域。

允许的 HTTP 方法

为了增强安全性,你可以进一步将网络请求限制为仅 GET、HEAD 和 OPTIONS 方法。其他 HTTP 方法(POST、PUT、PATCH、DELETE 等)将被阻止。

安全要求

由于 Codex 直接与你的代码库交互,与许多其他 ChatGPT 功能相比,它需要更高级别的账户安全。

多因素认证

  • 如果你使用社交登录提供商(Google、Microsoft、Apple),不需要在 ChatGPT 账户上启用多因素认证(MFA)。但是,我们强烈建议在社交登录提供商上设置它(如果尚未配置)
  • 如果你使用电子邮件和密码登录,在访问 Codex 之前需要在账户上设置 MFA
  • 如果你的账户支持多种登录方法,且其中一种是使用电子邮件和密码,无论你当前使用哪种方法登录,都必须设置 MFA

单点登录(SSO)

如果你通过单点登录(SSO)访问 ChatGPT,你组织的 SSO 管理员应确保为所有用户强制执行 MFA(如果尚未配置)。

从 CLI 使用云端

codex cloud 命令让你无需离开终端就可以分类和启动 Codex 云端任务。

bash
# 打开交互式选择器
codex cloud

# 直接启动任务
codex cloud exec --env ENV_ID "总结未解决的 bug"

# 请求多个解决方案
codex cloud exec --env ENV_ID --attempts 3 "总结未解决的 bug"

环境 ID 来自你的 Codex 云端配置——使用 codex cloud 并按 Ctrl+O 选择环境,或使用 Web 仪表板确认确切值。

aicodex 文档网站