Agent 实践

Codex 云端 Coding Agent 首发复盘:异步沙箱交付的不是一段代码

以 2025 年 5 月 16 日至 18 日的一手资料为边界,拆解 codex-1、隔离云沙箱、并行任务、AGENTS.md 与日志测试证据,并给出独立验证、人工合并和商业验收方法。

发布:2025/05/19更新:2025/06/10
多个 Codex 任务从同一仓库提交进入彼此隔离且执行期无网络的云沙箱,经 AGENTS.md 指引完成编辑测试和 commit,再通过日志测试补丁证据与人工合并门禁
图 1:本站依据 2025-05-16 至 05-18 的 Codex 首发页与同期固定提交重绘;独立验证、冲突检查和人工合并是本站工程门禁,不表示首发产品自动保证代码正确。

时间与证据

本文研究的是 OpenAI 在 2025 年 5 月 16 日推出 Codex 云端软件工程 Agent 研究预览的事件,信息截止到 5 月 18 日。文章发布日期与更新日期见页首。

核心证据是 OpenAI 的 Introducing Codex 与 2025 年 5 月 16 日 16:42:08 UTC 保存的发布日原始快照。当前页面可能继续更新,因此产品开放范围、沙箱、模型、限制和未来计划均以该快照为准。

第三条证据是 openai/codex 的 T+2 完整 commit 44022db8d0c4a0cfe5b5b041ef0c1c8811ce6e12。它固定了当时 Codex CLI 仓库中的 AGENTS.md、实验性声明和本地沙箱文档,但 Codex CLI 与 ChatGPT 中的云端 Codex 是不同产品面。本文只用该 commit 证明同期项目说明文件与 CLI 生态已经存在,不用开源 CLI 源码反推云端容器内部实现。

首发开放边界非常具体:OpenAI 当日开始向 ChatGPT Pro、Enterprise 与 Team 用户推出,Plus 和 Edu 只是 coming soon;产品仍是 research preview。首发页写明用户能实时查看进度,但不能在 Agent 工作过程中 course-correct。后来的 Plus/Edu 开放、执行中纠偏、图像输入和更深工具集成都不属于本文事实边界。

本文证据等级为 sourced。我没有获得 2025 年 Codex 账号,没有在首发云环境提交任务,没有复现 codex-1、SWE-Bench Verified 或 OpenAI 内部软件工程评测,也没有验证当时的访问配额和延迟。文中的任务架构、指标、成本和试点门槛均是工程设计,不是本站实测结果。

当时发生了什么

codex-1 是 o3 的软件工程优化版本

首发页把 Codex 描述为由 codex-1 驱动,并明确说 codex-1 是针对软件工程优化的 OpenAI o3 版本。厂商称它通过真实编码任务强化学习,目标包括遵循指令、生成接近人类风格与 PR 偏好的代码,以及反复运行测试直到得到通过结果。

这不是“o3 改个名字”也不是公开权重。codex-1 是云产品中的模型组件;用户得到的是任务执行入口,不是模型文件、训练环境或自托管能力。模型能迭代测试也不能保证测试充分,尤其当仓库本身缺少隐藏断言、集成环境或安全检查时。

OpenAI 在首发页展示了 SWE-Bench Verified 与内部软件工程任务结果,但这些数字均为厂商评测。页面还说明其 SWE-Bench 设置排除了 23 个无法在内部基础设施运行的样本,并用最大 192K 上下文与 medium reasoning effort 测试 codex-1。它们不能直接转换为企业 PR 接受率。

一次点击变成一个异步云任务

用户在 ChatGPT 侧栏选择仓库与分支,输入 Prompt 后点击 Code 发起编码任务,或用 Ask 提问。每个任务在独立、隔离、预载代码库的环境中处理。Codex 可以读写文件,运行测试、lint 和类型检查;典型完成时间被描述为 1 到 30 分钟。

多个任务可以并行运行,改变了协作方式:开发者不必盯着一次对话等待,而是把多个边界清楚的后台工作委托出去。并行并不等于任务会自动协调。两个 Agent 修改同一模块时,仍可能产生语义冲突、重复工作或都基于过期分支。

首发的“实时”只表示可以监控进度,不表示执行中可发新指令改变方案。页面把 mid-task guidance、实现策略协作和更主动的进度更新列为未来计划。成熟产品分析必须区分 看见正在发生什么能够安全改变正在发生什么

AGENTS.md 把仓库约定变成可版本化输入

首发页说可以在仓库放置 AGENTS.md,告诉 Codex 如何导航代码库、运行哪些测试以及遵守何种项目规范。它像面向 Agent 的 README,让隐含在开发者经验中的命令、目录边界和交付要求进入版本控制。

一个有效文件应短而可执行:构建与测试命令、目录责任、禁止修改区域、代码风格、生成文件规则和完成定义。它不能替代服务端权限。即使文件写着“不要访问生产”,真正的凭据隔离和网络限制仍应由平台强制。

AGENTS.md 本身也是仓库内容,分支可以修改它,外部贡献也可能注入恶意指令。任务服务必须记录实际读取的文件 hash 与 base commit;高风险规则由组织策略覆盖,不能允许仓库文本扩大权限。

交付物开始包含执行证据

任务完成后,Codex 会在自己的环境中提交变化,并通过终端日志与测试输出引用说明做过什么。用户可以审查结果、要求后续修订、打开 GitHub PR 或集成到本地环境。

commit、日志和引用比一段代码回答更接近工程交付,但仍不是独立证明。Agent 可能运行了错误测试、只跑了子集、修改测试迎合实现,或在脏环境中得到偶然通过。首发证据提供审查入口,没有取消重新验证的必要。

执行期无网络收窄供应链面

OpenAI 表示,Codex Agent 在云端安全隔离容器中运行;任务执行期间 internet access disabled,只能接触 GitHub 提供的代码与用户通过 setup script 配置的预安装依赖,不能访问外部网站、API 或服务。

这个设计降低了数据外传和运行时下载攻击面,也限制了需要在线文档、私有 registry 或外部测试服务的任务。setup 阶段、预装依赖和仓库自身仍构成供应链边界。无网络不等于无风险:恶意测试仍可消耗 CPU、磁盘,读取工作区内容或伪造日志。

任务判断

具体任务:修复 webhook 重复投递缺陷

假设一个 Node.js 账单服务在 worker 超时重试时偶尔重复发送 webhook。任务要求引入幂等记录、补充并发测试、保持 API 兼容,并更新运行手册。它跨代码、数据库迁移、测试和文档,但所有变化可在分支审查,适合异步 Agent。

任务输入必须是可验证契约:

repository: billing-service
baseCommit: 31ab...
issue: WEBHOOK-428
allowedPaths:
  - src/webhooks/**
  - migrations/**
  - test/webhooks/**
  - docs/runbooks/**
commands:
  - npm ci --offline
  - npm run typecheck
  - npm test -- webhook
forbidden:
  - git push
  - production credentials
  - external network
definitionOfDone:
  - concurrent retries emit one delivery
  - old API contract remains valid

Codex 可以在隔离环境分析、修改、运行测试并产生 commit。审查者收到的不是“修好了”,而是 patch、迁移、终端日志引用、测试输出、未解决风险和 base commit。真正合并前,企业自己的 CI 在全新环境运行完整测试、迁移校验和安全扫描。

并行任务要按依赖图拆分

可并行委托的任务包括:调查历史失败、为现有行为补回归测试、起草修复方案、更新运行手册。真正修改同一幂等逻辑的任务不应同时自动合并。每个任务固定 base commit、路径范围与上游依赖,控制面在启动前检测重叠。

并行度上限由审查能力决定,而不是可以启动多少 Agent。如果 20 个任务同时完成但只有两名工程师审查,结果会在队列中过期,基础分支漂移,重跑成本反而增加。

固定任务集而不是看演示

建立 60 个历史或合成 issue,覆盖单文件修复、跨模块重构、数据库迁移、测试不足、错误需求、恶意仓库指令、依赖缺失、并行冲突和应该拒绝的任务。每项保存 base commit、隐藏测试、允许路径、禁止动作与人工基线。

核心指标包括:

  1. 经验证任务完成率:独立 CI 的隐藏断言全部通过。
  2. 补丁接受率与人工修改分钟:审查后真正可合并的比例和成本。
  3. 越界修改、未授权命令与秘密暴露率:发布门槛均为 0。
  4. 证据完整率:commit、命令、exit code、测试和文件清单是否齐全。
  5. 并行冲突率与过期重跑率
  6. P50/P95 任务时间、排队时间和每个经验证任务成本

工程影响

云端 Coding Agent 是一套任务控制面

合理的企业集成不是把 GitHub 仓库直接交给聊天窗口,而是:

issue -> task policy -> immutable repo snapshot -> setup
      -> isolated Codex task (network denied)
      -> commit + terminal/test citations
      -> independent CI -> review -> PR / reject

任务策略绑定调用者、仓库、分支、路径、风险等级、预算和截止时间。repo snapshot 记录 base commit;setup 固定镜像、lockfile、工具链与依赖缓存;Codex 只在任务工作区写入;完成后证据进入审查队列。任何生产部署都属于后续独立流程。

状态机至少包括:

queued -> preparing -> running -> evidence_ready
       -> setup_failed | timed_out | cancelled
evidence_ready -> verifying -> review_ready | rejected
review_ready -> approved -> merged | stale | conflict

云端显示 completed 只能映射到 evidence_ready,不能直接映射到 merged。独立 CI 失败、base branch 变化或审查超时都要进入新状态,保留父任务和重试原因。

GitHub 身份与权限必须最小化

连接 GitHub 时,读取仓库、读取分支、创建 PR 和写默认分支是不同权限。首个试点只读源码并把结果导出到隔离分支;禁止直接写 protected branch、修改 Actions secrets、发布 package 或批准自己的 PR。

每次任务保存发起人、GitHub installation、repo、base commit、授权 scope、Agent run 与结果 commit。提交作者信息不能替代真实调用者审计。组织离职、安装撤销和仓库迁移后,旧任务凭据必须失效。

Setup 是可复现与供应链边界

setup script 决定依赖、编译器、服务和环境变量。如果它使用漂移的 latest 镜像或不固定 registry 包,同一任务无法重放。建议固定容器 digest、系统包版本、lockfile、数据库 fixture 和 setup script hash,并缓存经过扫描的依赖。

执行期无网络意味着所有必要依赖要在切网前准备好。若任务必须访问在线 API,应拆成受控模拟器或明确拒绝,而不是把全网权限重新开放给 Agent。生产数据、私钥和长期 token 不进入环境。

日志引用要经过独立验证

Codex 提供的 terminal/test citations 用于定位证据。企业验证器从 base commit 应用 patch,在新的只读基础镜像运行批准命令,记录镜像 digest、命令、exit code、测试数量、覆盖范围和输出 hash。Agent 不能修改验证器或隐藏测试。

验证报告与 patch hash 绑定。任何后续修订都会使旧报告失效;打开 PR 前重新检查 merge base。对数据库迁移、权限和支付逻辑,还要人工审查回滚、并发与失败路径。

并行需要冲突治理和审查背压

调度器在任务开始时计算预计触碰的 package、代码 owner 和依赖图。高重叠任务串行或只允许一个进入修复阶段;只读调查可以并行。任务完成后按风险与代码 owner 分配审查队列,超过时限则标记 stale 并重新基线化。

真正要优化的是 accepted tasks / reviewer hour,不是同时运行的 Agent 数。没有背压的并行会把模型吞吐转化为人类审查积压。

AGENTS.md 是仓库契约,不是权限文件

建议把命令、目录责任、代码生成规则、验证要求和完成定义写入 AGENTS.md,同时由 CI 检查这些命令真实存在。危险动作、网络、密钥、可写路径和审批规则仍由平台策略控制。

任务记录实际读取的 AGENTS.md 路径与 hash。外部 PR 修改该文件时触发 code owner 复核,防止通过说明文字改变 Agent 行为或绕过测试。

商业价值

Codex 首发最适合低风险、可验证、可撤销的后台工作:补测试、修小 bug、重命名、文档更新、依赖迁移和代码库问答。价值来自减少上下文切换和等待,而不是替代架构责任与合并责任。

买家会为 backlog 周转、夜间批处理和跨仓库一致性付费,但需要同时承担环境配置、GitHub 权限、CI 容量、审查和失败恢复。研究预览阶段的 generous access 不是稳定单价,也不能推导长期单位经济性。

每个经验证 Codex 任务成本
=(产品/API 使用 + setup 与缓存 + CI 和存储
  + 失败、冲突、过期重跑
  + 人工审查与返工分钟 × 人工单价
  + 错误合并与泄露的预期损失)
  / 通过独立验证并被接受的任务数

建议进行 8 周试点:前 2 周回放历史 issue;第 3 至 5 周只生成 commit,不创建 PR;第 6 至 8 周允许低风险任务创建待审 PR。扩大前要求未授权动作和秘密暴露为 0,隐藏测试不低于人工基线,证据完整率 100%,人工修改分钟下降至少 20%,冲突重跑没有抵消节省时间。

不适用场景包括无测试且需求含糊、必须在线访问生产服务、不可逆数据库或支付动作、毫秒级结对编辑,以及审查者无法理解改动的关键安全模块。首发不能执行中纠偏,需求高度探索型时实时配对工具更合适。

局限与风险

第一,本文没有运行 Codex,所有模型能力、完成时间、沙箱、评测和使用案例来自 OpenAI 首发材料。厂商内部任务与 SWE-Bench 不能代表本站 webhook 修复任务。

第二,网络禁用只发生在任务执行期,不能自动证明 setup、基础镜像、预装依赖和 GitHub 内容安全。仓库测试仍可能消耗资源、读取工作区或伪造输出。

第三,terminal logs 与 test outputs 是有用引用,不是第三方证明。测试可能不完整、被 patch 修改或只在污染环境通过,必须独立重放。

第四,多个 Agent 并行会增加 merge conflict、重复修复和审查积压。隔离环境保证文件系统分开,不保证业务意图兼容。

第五,AGENTS.md 能改善项目约定,但它是可修改文本,不是访问控制。恶意分支可以改变说明,组织策略必须拥有更高优先级。

第六,首发只向 Pro、Enterprise 和 Team 开始推出;Plus 与 Edu 当时尚未开放。研究预览还缺少图像输入和工作中 course-correct,远程委托也比交互编辑慢。本文不倒灌这些后续能力。

第七,同期 openai/codex commit 固定的是 Codex CLI,不是云端 Codex 服务源码。两者共享品牌和项目说明惯例,不能据此声称云服务与 CLI 使用相同沙箱实现或默认权限。

最后,模型拒绝恶意软件请求属于概率性安全层。企业仍需仓库准入、命令策略、网络与秘密隔离、输出扫描和人工审查。

面试表达

30 秒结论: 2025 年 5 月 16 日的 Codex 把 codex-1、独立无网云沙箱、并行异步任务和 terminal/test citations 组合成 Coding Agent 研究预览。它可以生成 commit,但 commit 只是候选工件。我的生产设计会固定 base 与 setup,最小化 GitHub 权限,在独立 CI 重放 patch,并由人合并。

3 分钟架构: 任务服务绑定用户、repo、base commit、允许路径和风险预算;setup 固定镜像与依赖;Codex 在无秘密、执行期无网的独立环境编辑并运行测试;完成后输出 commit、日志和测试引用;验证器从 base 重放 patch,跑隐藏测试和安全扫描;审查队列检查冲突、责任 owner 和回滚,最后才创建或合并 PR。并行度由审查背压控制,不由 Agent 数量控制。

若追问“Codex 已经跑过测试,为什么还要 CI”,答案是 Agent 选择的测试可能不完整,且与 patch 处在同一信任域;独立 CI 才能用不可修改的隐藏断言验证。若追问“实时看到进度是否能纠偏”,答案是首发只能监控,mid-task guidance 当时仍是未来计划。

若追问“AGENTS.md 是否是安全策略”,答案是否定的:它是版本化项目说明,有利于命令与完成定义,但分支可以修改它;真正的权限必须由任务服务与沙箱执行。

复盘

站在 2026 年回看,Codex 首发的重要信号是软件工程 Agent 从本地同步对话转向云端异步委托。评价单位从一次补全扩大到一个有环境、命令、日志、测试、commit 与审查状态的任务。

最容易误判的是把“能并行”理解成“开发吞吐线性增加”。代码任务共享架构、分支和审查者,Agent 产出越快,冲突和审查越可能成为瓶颈。成熟指标应是单位审查时间接受多少正确变更。

另一个长期信号是仓库开始为 Agent 编写操作契约。AGENTS.md 有价值,因为它把测试与规范显式化;更大的价值是迫使团队修复不可复现环境和缺失测试,这些资产对人类开发者同样有用。

下一步应固定一组历史 issue 和仓库 commit,对 Codex、其他云 Agent 与人工流程使用相同任务契约,保存原始任务、日志引用、独立 CI、审查分钟、冲突和成本。完成同条件运行前,本文维持 sourced

方法披露

本文使用 AI 工具辅助检索 Wayback CDX、读取首发页与 openai/codex T+2 commit、整理任务状态和检查文章契约;事件日期、开放范围、codex-1/o3 关系、执行期无网络、AGENTS.md、证据输出、首发限制与最终判断由作者逐项复核。

本文没有登录 Codex、连接 GitHub、运行 codex-1、安装同期 CLI 或复现官方评测。架构、任务契约、指标、成本与试点门槛均为本站工程方案,不表示 OpenAI 首发产品已经具备这些企业控制。

修订记录

  • 2025-05-19:初版发布;固定 2025-05-16 至 05-18 的首发页、发布日 archive 与 CLI commit,区分云端 Codex 和 CLI,补充隔离任务、AGENTS.md、独立验证、并行冲突与人工合并门禁。

Reusable projects

关联可复用项目

本文已经进入以下工程项目;项目页提供固定版本、运行命令和结果工件。

Source ledger

来源账本

以下来源用于核对事实、日期与当时可用范围。厂商自报性能不视为本站独立复现。

  1. Introducing Codex
    OpenAI官方一手来源同期证据来源发布:2025/05/16本站核验:2025/06/10
  2. Introducing Codex release-day snapshot
    OpenAI (Internet Archive)历史页面存档同期证据来源发布:2025/05/16本站核验:2025/06/10
  3. OpenAI Codex CLI T+2 repository snapshot
    OpenAI官方仓库同期证据来源发布:2025/05/18本站核验:2025/06/10

讨论

正在加载评论...