// complete guide · 2025

OpenAI Codex

AI 编程 Agent 完整功能指南

// codex.com · 自主完成编程任务 · 基于 codex-1 模型

// 目录 · Table of Contents
01 / 什么是 Codex
产品定位
属性说明
发布时间2025 年
访问入口codex.com
核心定位自主编程 Agent
背后模型codex-1(基于 o3/o4 优化)
运行方式后台长时间自主执行
输出形式代码变更 + PR + 测试结果
核心能力链路:读取代码库 → 理解需求 → 自动修改文件 → 运行测试 → 提交代码
与其他产品的区别
产品类型核心差异
CodexAgent 级后台自主执行任务,无需逐步引导
ChatGPT对话式一问一答,需要用户持续参与
GitHub Copilot补全级实时代码补全,不独立完成任务
Claude CodeAgent 级命令行,需本地环境
自主执行 后台运行 无需干预 创建 PR
适用场景
  • 修复 Bug:提供报错信息或 Issue 链接,Codex 自动定位并修复
  • 实现新功能:用自然语言描述需求,Codex 实现完整功能并创建 PR
  • 重构代码:指定重构目标(如回调 → async/await),Codex 批量改写
  • 编写测试:指定模块或覆盖率目标,Codex 补全测试用例
  • 代码审查:Ask Mode 下提问代码逻辑,获得详细解释
  • 依赖升级:让 Codex 处理版本兼容问题并更新相关调用
02 / 界面结构
主界面区域
区域功能说明
Tasks所有任务的状态总览列表
New Task描述任务的自然语言输入框
Repository连接并选择 GitHub 仓库
Environment代码运行的沙盒环境配置
Timeline任务执行的每一步操作记录
Diff 视图文件变更的 before/after 对比
Terminal 日志Codex 执行的命令和输出
任务状态流转
// 任务生命周期

Queued        // 排队等待执行Running       // 正在执行(可查看 Timeline)Needs Review  // 等待用户审查 DiffCompleted     // 已批准并合并

// 异常状态
Failed        // 执行失败(可查看错误日志)
Cancelled     // 用户手动取消

// 并发支持
// 可同时运行多个任务
// 互不干扰,各自独立环境
Timeline & Diff 视图
Timeline(时间线)
  • 1Clone 仓库到沙盒环境
  • 2安装依赖(npm install / pip install)
  • 3阅读相关文件,理解代码结构
  • 4执行修改(每个文件变更均有记录)
  • 5运行测试,查看结果
  • 6Commit 并创建 PR
Diff 视图
• 文件级变更总览(新增/删除/修改)
• 逐行颜色标注:红色删除 / 绿色新增
• 支持展开折叠查看上下文
03 / 核心功能详解
Tasks — 任务管理
// 新建任务:支持自然语言描述
"Fix the login bug where users are
 logged out after page refresh"

"Add rate limiting to the /api/users
 endpoint, max 100 req/min per IP"

"Refactor auth.js to use async/await
 instead of callback pattern"

// 任务操作
Cancel   // 取消正在运行的任务
Retry    // 重试失败的任务
Clone    // 复制任务描述,微调后重新提交

// 任务描述技巧
// ✓ 包含具体文件路径或函数名
// ✓ 说明预期行为(不只是问题描述)
// ✓ 附上相关错误信息或测试用例
GitHub 集成
  • 1连接 GitHub 账号(OAuth 授权)
  • 2选择目标仓库和基准分支(如 main)
  • 3Codex 自动基于基准分支创建新分支
  • 4修改完成后自动 commit(含 commit message)
  • 5自动创建 Pull Request,含变更说明
  • 6用户审查 → 批准 → 合并到主分支
自动分支 自动 Commit 自动 PR
分支命名格式:codex/<task-slug>-<id>
Environment — 沙盒环境
特性说明
隔离性每个任务独立云端容器
依赖安装自动检测并运行 pip / npm / yarn
测试运行自动执行 pytest / jest / go test 等
网络访问可配置,默认受限
存储任务结束后环境销毁
Setup Instructions 示例:
# .codex/setup.sh 或在界面配置
pip install -r requirements.txt
npm install
cp .env.example .env
Review & Approval — 审查与批准
  • 查看 Diff:文件级变更总览,可展开逐行查看
  • 批准合并:点击 Approve,Codex 自动合并 PR 到主分支
  • 要求修改:写入反馈意见,Codex 重新执行任务
  • 拒绝任务:关闭任务,不合并任何改动
审查要点:
• 确认逻辑正确性,不只看测试是否通过
• 检查边界情况和异常处理
• 验证未修改的周边代码未被意外影响
Ask Mode vs Agent Mode
模式行为适用场景
Ask Mode只解释,不修改文件理解代码、排查思路、询问最佳实践
Agent Mode自主执行,修改文件实际修复、实现功能、重构代码
Ask Mode 示例提问:
"Why does the user session expire
 unexpectedly? Explain the auth flow
 in auth/middleware.ts"

"What's the performance bottleneck
 in the database query in user.py?"
04 / 高级设置
Setup Instructions — 环境配置
告诉 Codex 如何初始化运行环境,每次任务启动时自动执行。
# Python 项目示例
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python manage.py migrate

# Node.js 项目示例
npm install
cp .env.example .env
npm run db:seed

# Go 项目示例
go mod download
make build
支持多行 shell 命令;执行失败会在 Timeline 中显示错误
AGENTS.md — 项目级指令
放置于仓库根目录,Codex 执行任何任务前会优先读取。
# AGENTS.md 示例

## 代码风格
- 使用 4 空格缩进,不用 Tab
- 所有函数必须有 JSDoc 注释
- 变量命名使用 camelCase

## 测试要求
- 新功能必须有对应单元测试
- 使用 Jest,覆盖率不低于 80%

## 禁止操作
- 不得修改 config/prod.json
- 不得删除 /legacy 目录下文件

## 分支策略
- feature/* 用于新功能
- fix/* 用于 Bug 修复
Task Templates — 任务模板
保存常用任务描述格式,快速发起标准化任务。
Bug 修复模板:
Fix the bug described in Issue #{{issue_number}}.
Steps to reproduce: {{steps}}
Expected: {{expected}}
Actual: {{actual}}
Add a regression test to prevent recurrence.
功能实现模板:
Implement {{feature_name}} in {{file_path}}.
Requirements: {{requirements}}
Follow the existing code style.
Add unit tests with >80% coverage.
Integration Webhooks
集成方式说明
GitHub Issues直接粘贴 Issue URL,自动读取问题描述
Slack通过 Slack 触发任务,接收任务完成通知
Webhook任务状态变化时推送 HTTP 事件
API通过 REST API 程序化创建和管理任务
CI/CD集成到 GitHub Actions 工作流
Webhook 事件类型:task.started / task.completed / task.failed / task.needs_review
05 / 使用范例
范例 1 — 修复 GitHub Issue
  • 1在 GitHub 上复制 Issue 链接:https://github.com/org/repo/issues/142
  • 2在 Codex 新建任务,粘贴链接:
    "Fix issue: https://github.com/org/repo/issues/142"
  • 3Codex 自动读取 Issue 标题、描述、评论,定位相关代码文件
  • 4在 Timeline 观察 Codex 的分析路径:读文件 → 定位 Bug → 修改 → 测试
  • 5查看 Diff,确认修复逻辑正确,点击 Approve 合并
  • 6PR 自动关联 Issue,合并后 Issue 自动关闭
预期结果:Bug 修复 PR 创建完成,含完整 commit message 和测试用例
范例 2 — 添加新功能
任务描述示例:
"Add user avatar upload feature to
 the profile settings page.

Requirements:
- Accept JPG/PNG, max 2MB
- Resize to 200x200px on server
- Store in /uploads/avatars/
- Update the User model with
  avatar_url field
- Add API endpoint PUT /api/profile/avatar
- Show preview before upload in UI"
  • 1Codex 读取现有的 User 模型和 API 路由结构
  • 2实现文件上传逻辑(multer/sharp 或同等库)
  • 3添加数据库迁移脚本(migration)
  • 4实现前端预览组件,创建 PR
预期结果:完整功能实现,含迁移脚本、后端 API、前端组件、单元测试
范例 3 — 补全单元测试
任务描述:
"Improve test coverage for
 src/services/payment.js from 40%
 to at least 85%.
 Use Jest. Cover edge cases:
 - Payment failure handling
 - Refund logic
 - Concurrent transaction conflicts"
BEFORE
覆盖率
40%
Statements: 40%
Branches: 28%
Functions: 55%
AFTER
覆盖率
85%
Statements: 85%
Branches: 79%
Functions: 91%
范例 4 — 代码重构
任务描述:
"Refactor all callback-style async
 code in src/api/ to use async/await.
 Maintain identical behavior.
 Update all related tests."
BEFORE — 回调风格
getUser(id, function(err, user) {
  if (err) {
    return cb(err);
  }
  getOrders(user.id,
    function(err, orders) {
      if (err) return cb(err);
      cb(null, orders);
    });
});
AFTER — async/await
async function getUserOrders(id) {
  try {
    const user = await getUser(id);
    const orders =
      await getOrders(user.id);
    return orders;
  } catch (err) {
    throw err;
  }
}
范例 5 — Debug 复杂 Bug
任务描述示例(含错误信息):
"Fix this production error.
 Error occurs when users submit
 large forms (>50 fields).

Stack trace:
  TypeError: Cannot read properties
  of undefined (reading 'validate')
    at FormValidator.validate
      (src/utils/validator.js:142)
    at POST /api/forms/submit
      (src/routes/forms.js:87)

Repro: Submit form with 51+ fields.
Expected: Form submits successfully.
Actual: 500 Internal Server Error."
Codex 调试过程(Timeline 记录):
  • 1读取 validator.js:142 前后代码,确认 undefined 来源
  • 2追溯调用栈,发现 rules 数组超过 50 项时 slice 逻辑错误
  • 3修复边界条件:rules.slice(0, limit)rules.slice(0)
  • 4添加回归测试:构造 51 字段表单提交,验证通过
  • 5检查同类代码,修复其他潜在相同问题
  • 6运行完整测试套件,无回归,创建 PR
预期结果:Bug 根因已修复,包含回归测试,相关边界情况全部覆盖
// OpenAI Codex Complete Guide  ·  codex.com  ·  2025