Skip to main content

用途

Codex Cloud 适合把一个基于 GitHub 仓库、可以在隔离环境中完成的开发任务委派到云端运行。你在网页中选择仓库、分支和任务,云端创建临时环境,读取代码、执行检查、生成修改,最后返回结果和 diff。电脑关机不会中断已经提交的云端任务。 本页专门讲以下完整链路:
  • 连接 GitHub 并只授权需要的仓库;
  • 准备运行时、依赖、环境变量和 Secrets;
  • 选择网络权限并理解 Agent 阶段的外发风险;
  • 写清任务边界,提交一个可审查的云端任务;
  • 审查 diff、测试证据和权限影响,再决定是否提 PR;
  • 比较 Cloud、Local 和 Git worktree 的适用范围;
  • 停止、归档、删除任务及清理相关分支;
  • 按个人、团队和企业治理边界排查故障。
网页按钮、套餐能力和具体字段会随版本变化。操作时以当前 chatgpt.com/codex 页面、工作区策略和 OpenAI 官方文档为准;本页提供的是稳定的判断方法和验收证据。

先理解边界

Cloud 不是把你的电脑远程控制一遍,而是在 OpenAI 管理的隔离云端容器中处理已授权的仓库内容。典型流程如下:
设置脚本和 Agent 是两个不同阶段。设置脚本通常需要网络来安装依赖;Agent 阶段默认断网,是否联网由环境设置决定。不要因为设置脚本能下载依赖,就推断 Agent 也能访问任意网站。 Cloud 也不是自动合并器。它可以生成修改和 PR,但合并、发布、修改生产系统、发送外部消息等动作仍应由有权限的人按团队流程确认。云端任务完成只代表“产生了一个待审结果”,不代表代码正确、合规或已经上线。

适合与不适合的任务

适合委派到 Cloud 的任务通常满足四个条件:输入在 GitHub 仓库中,环境可以脚本化,验收标准可以运行命令验证,结果可以通过 diff 审查。例如:
  • 修复一个有明确复现步骤的测试失败;
  • 为某个模块补单元测试或类型标注;
  • 批量更新已知格式,但限定文件范围;
  • 运行较慢、无需本地设备的测试或静态分析;
  • 并行处理多个相互独立的 issue;
  • 在隔离分支上准备一个待审的重构草稿。
下列任务优先留在 Local,或先得到安全负责人批准:
  • 必须读取未提交的本地文件、私有目录或本地数据库;
  • 依赖本机设备、USB、浏览器登录态、内网服务或本地 MCP;
  • 涉及生产凭据、客户原始数据、个人信息或受合同限制的代码;
  • 需要在本地 worktree 中与未完成修改精确配合;
  • 需要人工逐步审批每个外部命令;
  • 目标是直接部署、删库、改生产配置或发送不可撤回消息。
一个简单判断是:如果任务的关键输入不在 GitHub 仓库,或最终副作用不应发生在隔离容器中,就不要直接委派到 Cloud。

一、连接仓库并检查授权

1. 确认账号与工作区

  1. 在浏览器打开 https://chatgpt.com/codex。
  2. 确认登录的是正确的个人账号或企业工作区。
  3. 查看当前工作区是否允许使用 Codex Cloud,以及账号套餐是否包含该能力。
  4. 如果页面提示没有权限,先联系工作区管理员,不要通过共享账号或他人令牌绕过控制。
**预期结果:**页面显示可创建云端任务的入口,并能看到当前工作区允许使用的仓库连接器或项目列表。 企业环境中,管理员可能分别控制 Codex Local 和 Codex Cloud。能使用本地 CLI 不等于能使用 Cloud;Cloud 还可能要求 GitHub 连接器、组织审批或指定成员组。

2. 连接 GitHub

首次使用通常需要授权 Codex 访问 GitHub。授权页面可能提供“全部仓库”或“仅选择仓库”等范围选项。 推荐步骤:
  1. 选择仅授权本次工作所需的组织和仓库。
  2. 核对授权的 GitHub 组织、安装位置和仓库清单。
  3. 确认仓库没有把生产配置、密钥或不应外发的数据提交进去。
  4. 完成回跳后,在 Codex 的仓库选择器中搜索目标仓库。
  5. 用测试仓库先创建一个只读或极小修改任务,确认连接确实指向正确仓库。
**预期结果:**目标仓库可以被选中,并能看到可用分支或提交。仓库列表为空时,优先检查 GitHub App 的安装范围、组织审批、仓库可见性和当前登录账号。

3. 复核 GitHub 权限

仓库授权至少涉及三层权限,不能混为一谈: 给 Codex Cloud 的仓库写权限,并不等于给它生产环境权限。反过来,仓库写权限也足以造成依赖文件、工作流或代码变更,因此仍须审查每个 PR。 不需要创建 PR 时,可以只让任务返回 diff,由人工在本地应用或按团队流程提交。不要为了省一步操作而扩大 GitHub 授权范围。

二、准备云端环境

1. 认识环境初始化顺序

一次任务通常按以下顺序初始化:
  1. 创建隔离容器;
  2. 按指定分支或提交拉取仓库;
  3. 使用默认镜像准备常见工具;
  4. 执行设置脚本,安装依赖和项目工具;
  5. 应用 Agent 阶段的网络设置;
  6. 让 Agent 读取项目规则、执行任务和验证命令。
仓库中的 AGENTS.md、README、构建脚本和测试配置应明确写出安装、检查和禁止事项。不要把只存在于个人电脑的全局配置当作云端配置;Cloud 看不到本机的 ~/.codex、本地插件、本地 MCP 或未提交文件。

2. 选择镜像和运行时版本

默认的 universal 镜像通常包含常用语言和工具。项目如果要求特定版本,应在环境设置中固定 Node.js、Python 或其他运行时版本,并在设置脚本中验证:
**预期结果:**设置脚本输出的版本与项目声明一致,依赖安装和基础检查能够完成。版本不一致时,先修正环境配置,不要让 Agent 在任务中临时升级系统工具。

3. 编写设置脚本

设置脚本只负责可重复的初始化,例如安装依赖、安装 lint 工具和准备测试数据。示例:
或:
脚本要满足以下要求:
  • 可重复执行,失败时返回非零状态;
  • 不删除仓库外文件,不修改生产系统;
  • 不把密钥打印到标准输出;
  • 不依赖交互式输入;
  • 尽量固定依赖版本,并使用锁文件;
  • 明确区分安装、构建和测试阶段。
设置脚本与 Agent 可能运行在不同的 Bash 会话中。在设置脚本中执行 export TEMP_VALUE=...,不应假定 Agent 阶段仍能读取它。需要贯穿任务的普通配置放在环境变量设置中,或写入受控的 ~/.bashrc;不要用这种方式传递敏感值。

4. 区分环境变量与 Secrets

把 API key、密码、SSH 私钥、云厂商令牌、客户数据放进仓库是错误做法。Secrets 也不是“可以放心交给任意脚本”的保险箱:设置脚本及其依赖可能读取它们。因此,能不用秘密就不用;必须使用时,使用短期、最小范围、只读的凭据,并确认初始化脚本来源可信。 如果 Agent 阶段需要调用外部服务,Secrets 在初始化阶段被移除可能导致任务失败。这时不要把 Secret 改成普通环境变量来“解决”问题,而应先确认是否真的需要联网和凭据,再让安全负责人评估专用代理、短期令牌或改用 Local 的方案。

5. 了解缓存影响

Cloud 可能缓存环境状态以减少重复安装时间。缓存会让任务更快,但也可能保留旧依赖或旧构建产物。修改设置脚本、环境变量、Secrets 或依赖锁文件后,应检查缓存是否自动失效;结果异常时使用环境页面提供的重置缓存操作。 团队或企业共享环境时,重置缓存可能影响其他成员的任务。重置前记录原因、当前环境版本和正在运行的任务,避免把别人的任务变成难以解释的初始化失败。

三、配置网络并控制数据外发

1. 默认保持 Agent 断网

Agent 阶段默认断网是重要的安全边界。许多任务只需在设置脚本阶段下载依赖,Agent 不需要访问网络。先用网络关闭的环境跑通本地检查,再判断是否有明确需求。 只有以下情况才考虑开放 Agent 网络:
  • 必须读取指定的实时 API 数据;
  • 测试必须访问一个外部测试服务;
  • 任务必须获取未能在初始化阶段准备的公开资料。
“方便 Agent 搜索”不是足够理由。网页、Issue、PR 描述、依赖 README 和生成文件都可能包含提示注入,诱导 Agent 把代码、环境变量或命令结果发送出去。

2. 使用最小白名单

如果确实需要网络,按以下顺序收紧:
  1. 打开 Agent 网络访问;
  2. 选择 None 或 Common dependencies 等最小预设;
  3. 只添加任务确实需要的完整域名;
  4. 优先只允许 GET、HEAD、OPTIONS;
  5. 任务结束后关闭不再需要的网络配置。
避免使用 All 或 unrestricted。域名白名单限制的是访问目的地,不代表返回内容可信;只读 HTTP 方法可以减少 POST、PUT、PATCH、DELETE 形式的数据外发,但不能替代 diff 审查和凭据隔离。 云端容器的网络路径与本地浏览器不同。你本地能访问某网站,不代表容器能访问;你本地无法访问,也不一定是容器失败。网页登录和 GitHub 授权是本地浏览器链路,容器安装依赖和 Agent 出站则受云端环境、代理和白名单控制。

3. 识别外发风险

提交任务前检查:
  • prompt 是否要求读取完整 .env、凭据目录或客户数据;
  • 仓库 Issue、PR 和测试夹具是否含有不可信指令;
  • 依赖安装是否会执行生命周期脚本;
  • 测试是否会向真实服务写入数据;
  • 网络方法是否允许写请求;
  • 输出摘要、日志和 PR 是否可能包含秘密。
安全的任务描述应明确:不得读取哪些路径,不得访问哪些域名,不得发送请求,不得修改哪些文件。禁止事项不是绝对防护,但能减少误解并提供审查依据。

四、委派一个可审查的任务

1. 先写任务卡

在网页提交前准备一份短任务卡,至少包括:
任务越具体,结果越容易比较。避免“全面优化一下”“把项目整理好”这类没有边界的指令,尤其不要把多个不相关目标塞进同一任务。

2. 选择分支和基准

选择任务使用的仓库、分支或固定 commit。对于重要修复,优先以明确 commit 作为基准,避免任务运行期间上游分支变化导致结果无法复现。 **预期结果:**任务详情显示正确的仓库、基准分支或提交。若仓库有未合并的依赖变更,应在任务描述中明确是否包含它们。

3. 提交并观察状态

提交后,云端一般会显示排队、初始化、运行中、完成或失败等状态。记录任务链接、创建时间、仓库、基准和环境名称。 Cloud Agent 通常会在云端连续执行,不像 Local 那样在每个越权操作前都依赖你实时批准。因此提交前的范围设计和提交后的结果审查尤其重要。任务卡里写了“不要提交”并不能代替 GitHub 权限控制;真正的权限要在连接器、工作区策略和仓库设置中收紧。 多个独立任务可以并行委派,但每个任务应使用独立上下文和清晰目标。不要让两个任务同时修改同一批文件,再把两个结果盲目合并。

4. 追问和继续任务

任务完成后可以在同一上下文中要求修正,但每次追问都要重新说明新增范围。例如:
如果第一次任务已经产生过宽的 diff,优先停止并重新创建一个边界更清晰的任务,不要连续追问让云端在混乱状态上继续堆修改。

五、审查结果并决定是否提 PR

1. 不要只看摘要

完成状态不是验收证据。按以下顺序审查:
  1. 核对仓库、基准分支和任务描述;
  2. 阅读完整 diff 和文件列表;
  3. 检查是否有未请求的依赖、配置、锁文件或工作流变化;
  4. 阅读 Agent 执行的命令和测试输出;
  5. 在可信的 Local 或 CI 环境重新运行关键检查;
  6. 检查是否出现密钥、令牌、路径或客户数据;
  7. 检查边界条件、错误处理、日志和性能影响。
**预期结果:**diff 只包含任务范围内的文件,关键测试有明确命令和通过证据,未验证项目被明确列出。任何“测试通过”都应说明测试范围,不应理解为整个系统没有风险。

2. 用清单审查 diff

如果发现额外修改,先暂停提 PR。要求云端解释每个额外文件,或丢弃任务重新开始。不要因为“改动看起来合理”就跳过范围审查。

3. 提 PR 前后的责任

只有在 diff、测试和数据检查通过后,才执行“创建 Pull Request”。PR 描述应包含任务目标、变更范围、验证命令、未验证假设、网络设置和潜在风险。 创建 PR 不等于批准合并。评审人仍需按普通代码评审检查安全、依赖、迁移和回滚。涉及生产配置、权限策略、数据迁移或外部 API 的 PR,应由相应负责人批准。合并和部署遵循仓库保护分支、CI 门禁和变更管理制度。 如果结果不符合预期,不提 PR,直接关闭或删除任务分支。若 PR 已创建,先关闭 PR,再按仓库权限删除分支或恢复提交;不要用强制推送掩盖审查痕迹。

六、Cloud、Local 与 Worktree 的差异

选择原则:
  • 需要本地未提交内容、内网、设备或本机凭据,使用 Local;
  • 需要多个独立任务并行,且仓库已在 GitHub,使用 Cloud;
  • 想在本机并行工作、又不想污染当前分支,使用 Local worktree;
  • 任务包含敏感数据时,先看组织数据政策,不要仅凭“容器隔离”做决定。
Cloud 的隔离容器减少了对你电脑的直接影响,但不会自动解决代码授权、数据驻留、日志保留、第三方依赖和 PR 供应链风险。Worktree 保护的是本地文件边界,也不会阻止本地工具访问你明确授予的网络或凭据。

七、密钥与数据治理边界

个人使用

个人用户至少应做到:不上传真实 .env、私钥、生产数据库导出和客户原始数据;仓库使用最小授权;环境中的 Secrets 只放短期、只读凭据;任务完成后删除不再使用的连接、分支和令牌。

团队使用

团队应在启用前约定:哪些仓库允许 Cloud、哪些数据类别禁止上传、谁批准网络白名单、谁审查 PR、如何保留任务记录、如何撤销 GitHub 连接和令牌。把这些规则写进仓库的 AGENTS.md 只能帮助 Agent 遵守,不替代 GitHub、身份提供商和网络层面的强制控制。

企业使用

企业管理员应分别评估 Codex Local 和 Cloud 的数据流向与合同承诺。重点确认:
  • 工作区是否启用了 Cloud,成员是否按组授权;
  • GitHub 连接器是按组织还是按仓库授权;
  • SSO、MFA、SCIM 和离职回收是否已生效;
  • 企业数据不用于训练的承诺是否适用于当前套餐和合同;
  • 云端代码处理的数据驻留、留存和删除策略;
  • 审计日志保存期限,以及是否需要定期导出;
  • 哪些任务必须禁止 Cloud,哪些域名可以加入白名单;
  • 谁拥有管理员、仓库管理员、数据合规和成本分析权限。
审计日志与代码留存是两件事。日志用于追踪用户、时间、模型、任务或策略事件;它不等同于代码不会被留存。反过来,企业数据不用于训练也不等同于可以把生产密钥交给任务。以当前企业合同、工作区策略和官方文档为准,并保留组织自己的审批记录。

八、停止、归档和删除任务

1. 运行中停止

发现仓库、权限、网络或任务范围错误时,立即在任务页面使用停止、取消或终止操作。停止后确认状态变为已取消或已停止,并记录停止时间和原因。 停止任务不一定撤销已经发出的网络请求,也不一定删除所有任务记录。若任务接触过凭据,应立即撤销或轮换相关令牌,并检查服务端访问日志。

2. 完成后归档

对已审查但暂时保留的任务,使用归档功能减少任务列表和后台资源。归档通常是隐藏或整理记录,不等于删除仓库分支、PR、日志或缓存。需要长期保存的审查证据应按团队规则导出到受控位置。

3. 删除任务结果

如果页面支持删除任务或运行记录,先确认它会删除哪些对象:任务记录、云端容器、缓存、生成分支、PR,还是只从界面移除。删除前保存必要的任务链接、审查结论和合规记录,避免误删调查证据。 删除云端任务不会自动删除 GitHub 上已经创建的 PR、分支或提交。应分别检查并按权限处理:关闭 PR、删除临时分支、撤销无用连接、清理测试数据。不要删除仍被其他任务或评审引用的分支。

九、故障排查

仓库找不到或授权失败

  1. 确认当前 ChatGPT 和 GitHub 是同一预期账号;
  2. 检查 GitHub App 是否安装在目标组织;
  3. 检查仓库是否被限制为“仅选定仓库”;
  4. 确认组织管理员没有阻止第三方应用;
  5. 重新授权后刷新仓库列表;
  6. 仍失败时记录错误码、组织策略和仓库可见性,交给管理员处理。
不要把仓库改成公开或把个人账号加入组织来绕过授权问题。

设置脚本失败

检查运行时版本、锁文件、包源域名、脚本退出码和是否依赖交互输入。确认失败发生在初始化阶段还是 Agent 阶段;两者网络策略不同。必要时在本地用相同版本复现,再缩小设置脚本。 如果只是缓存状态错误,先确认没有其他成员正在使用共享环境,再重置缓存。不要把安装失败直接归因于 Agent 能力不足。

Agent 报网络错误

先确认任务是否真的需要 Agent 网络。需要时检查网络开关、域名白名单、HTTP 方法和云端 DNS/代理限制。白名单只填实际请求的域名,不要直接切换到 unrestricted。依赖安装成功但 Agent 请求失败,通常说明两个阶段的设置不同。

结果过宽或改错文件

停止追问,保存当前 diff,检查任务描述是否缺少文件范围和禁止事项。若未创建 PR,丢弃结果并重新派一个更小的任务;若已创建 PR,关闭 PR 或标记为不合并,避免在同一错误基线上继续累积修改。

任务卡住、超时或状态不更新

检查任务日志、初始化步骤和服务状态;确认本地浏览器只是查看端没有断开误导,云端任务不一定依赖本地浏览器持续打开。若任务重复失败,减少任务范围、关闭不必要网络、固定依赖并重新运行。不要连续点击重复提交,避免产生多个并行分支。

找不到预期的密钥或配置

确认变量名、作用阶段和工作区环境。不要为了让任务通过,把 Secret 改成普通变量、写进仓库或打印到日志。若 Agent 必须使用该凭据,先重新评估任务是否应移到 Local 或由专用 CI 流程执行。

十、最小实战与验收

使用一个没有敏感数据的练习仓库完成以下流程:
  1. 连接 GitHub,只选择练习仓库;
  2. 保持 Agent 网络 Off,使用默认镜像;
  3. 确认仓库有锁文件和最小测试命令;
  4. 委派“只新增一个测试文件,不改其他文件”的任务;
  5. 等待初始化和 Agent 完成;
  6. 阅读任务摘要、命令输出和完整 diff;
  7. 在本地重新运行对应测试;
  8. 不提 PR,先停止或归档任务;
  9. 检查 GitHub 没有多余分支、提交或工作流变更。
验收标准:
  • 仓库和基准正确;
  • 任务只修改约定文件;
  • 关键测试有可复现命令;
  • 网络权限符合最小需求;
  • 输出中没有密钥和个人数据;
  • 没有误创建或误修改生产资源;
  • 不需要的任务、缓存、分支和令牌已按规则清理。

小结

Codex Cloud 的核心价值是:把可脚本化、可隔离、可审查的仓库任务放到云端并行运行,电脑关机也不影响已提交任务。核心风险则集中在授权范围、初始化脚本、网络外发、密钥暴露和未经审查的 PR。 记住这条工作顺序:
需要本机文件、内网、设备或逐步审批时选择 Local;需要本地隔离并行时选择 worktree;需要远程仓库、后台执行和多个独立任务时选择 Cloud。入口不同,责任不变:人负责授权、审查、合规和最终副作用。 参考资料:参考/codex/10-cloud.md、参考/codex/27-automation.md、参考/codex/39-enterprise.md。动态信息以 Cloud 页面、工作区管理员策略和 OpenAI 官方文档为准。