Codex: Codex 基础入门

最后更新:2026-08-31

安装完成后,让我们开始实际使用 Codex。本节带你完成第一次任务提交,掌握基本操作流程。

📋 前置知识:已完成 Codex 安装与登录(见上一课)

1. 你将学到


2. 第一次运行

(1) 准备项目

BASH
# 创建测试项目
mkdir my-first-codex && cd my-first-codex

# 初始化一个简单的 Python 项目
echo 'def greet(name):\n    return f"Hello, {name}!"' > app.py

(2) 启动 Codex

BASH
codex

首次启动会看到欢迎界面,选择 Yes, continue 开始。

(3) 提交第一个任务

在输入框中输入:

TEXT 📖 仅展示
为 app.py 添加单元测试,使用 pytest 框架

Codex 的执行过程:

TEXT 📖 仅展示
1. Reading app.py...
2. Creating test_app.py with pytest test cases
3. Running: pytest test_app.py
4. All tests passed ✓

▶ 示例 1: Bob 的第一次使用

Bob 是一名后端开发者,他第一次使用 Codex:

BASH
cd bob-flask-api
codex

# Bob 输入:
# "为所有 API 端点添加输入验证,使用 marshmallow 库"

# Codex 输出:
# → Scanning 15 API endpoint files...
# → Installing marshmallow...
# → Creating schemas/ directory...
# → Adding validation to 15 endpoints...
# → Running tests: 34/34 passed ✓

3. 基本操作流程

(1) 完整工作流

100%
graph TB
    A[进入项目目录] --> B[启动 codex]
    B --> C[输入任务描述]
    C --> D[Codex 分析理解]
    D --> E[执行操作]
    E --> F[查看结果]
    F --> G{满意?}
    G -->|否| H[追加指令]
    H --> D
    G -->|是| I[结束会话]

(2) 任务提交格式

TEXT 📖 仅展示
# 好的任务描述
codex "修复 user.py 中的登录 bug,确保测试通过"
codex "将 utils.js 重构为 TypeScript,保持功能一致"
codex "为 orders API 添加分页功能,每页 20 条"

# 不好的任务描述
codex "帮我写代码"
codex "修复 bug"
codex "优化一下"

(3) 有效 Prompt 原则

原则 说明 示例
明确目标 说清楚要做什么 "添加 JWT 认证"而非"改下认证"
提供上下文 引用相关文件 "参考 auth.py 的风格"
包含验证 说明如何验证结果 "确保所有测试通过"
分步执行 复杂任务拆步骤 "第一步:创建模型;完成后告诉我"

4. 交互操作

(1) 常用操作

操作 说明
输入文字 提交新任务或追加指令
Y / N 确认或拒绝 Codex 的操作
Ctrl+C 中断当前操作
/help 查看帮助信息
/clear 清空对话历史
/new 开始新会话

(2) 追加指令

Codex 完成任务后,可以继续追加:

TEXT 📖 仅展示
# 第一次任务
> 为 app.py 添加日志功能

# 追加
> 把日志级别改为 DEBUG

# 继续追加
> 把日志输出到文件而非控制台

▶ 示例 2: Alice 的迭代式开发

TEXT 📖 仅展示
# Alice 逐步完善功能
> 创建一个 FastAPI 项目骨架
  ✓ Created main.py, routers/, models/

> 添加用户注册 API
  ✓ Created /api/register endpoint

> 为注册 API 添加邮箱验证
  ✓ Added email verification flow

> 写集成测试
  ✓ Created test_register.py, 5 tests passed

5. 查看与审查结果

(1) 审查代码变更

Codex 修改文件后,会显示 diff 视图:

DIFF
- def greet(name):
-     return f"Hello, {name}!"
+ def greet(name: str) -> str:
+     """Greet a person by name."""
+     if not name:
+         raise ValueError("Name cannot be empty")
+     return f"Hello, {name}!"

(2) 检查测试结果

BASH
# Codex 自动运行测试后显示结果
Running pytest test_app.py...
✓ test_greet_normal - PASSED
✓ test_greet_empty - PASSED
✓ test_greet_type_hint - PASSED

3 passed, 0 failed

(3) 确认或回滚


6. 多文件操作

▶ 示例 3: 项目级重构

TEXT 📖 仅展示
> 将 Express 项目迁移到 Fastify,替换所有路由定义,确保测试通过

# Codex 执行过程:
# → Scanning 45 files for Express patterns
# → Converting route definitions (32 routes)
# → Updating middleware (8 files)
# → Running test suite: 89/89 passed ✓
# → Updating package.json
# → Final test run: 89/89 passed ✓

7. 实用技巧

技巧 说明
git init 初始化项目 方便回滚 Codex 的修改
先跑测试再提交任务 确保基线正常
小步提交 一次只做一个任务
审查每一处修改 不要盲目接受
善用追加指令 迭代比一次到位更可靠

❓ 常见问题

Q Codex 修改了错误的文件怎么办?
A 使用 git checkout -- <file> 撤销特定文件,或 git checkout -- . 撤销所有修改。这就是为什么建议先用 git init 初始化项目。
Q 任务执行时间太长怎么办?
ACtrl+C 中断当前操作,然后用更具体的指令重新提交,或把大任务拆分为小步骤。
Q Codex 理解错了我的意图怎么办?
A 直接追加澄清指令,比如"我指的是 X 而不是 Y",Codex 会根据上下文修正。
Q 可以用中文和 Codex 交流吗?
A 可以,Codex 支持多语言。但英文通常效果更好,复杂任务建议用英文描述。
Q 每次都要从零开始解释项目吗?
A 不用。Codex 会自动读取项目文件作为上下文。同一会话内的历史对话也会保留。

📖 小节


📝 作业

  1. 基础题(难度⭐):创建一个简单项目,用 Codex 为其添加单元测试。
  2. 进阶题(难度⭐⭐):用迭代式方式完成一个功能:先创建骨架 → 添加功能 → 完善错误处理。
  3. 挑战题(难度⭐⭐⭐):故意给 Codex 一个模糊的指令,观察它如何理解,然后用追加指令修正结果,记录整个过程。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏