Codex: Codex 工作流模式
最后更新:2026-08-31
Codex 支持多种工作流模式,根据任务复杂度和自主程度选择合适的模式。
📋 前置知识:了解 Codex 基本操作
1. 你将学到
- 三种工作流模式
- 各模式的适用场景
- 模式切换方法
- 工作流设计原则
2. 三种工作流模式
| 模式 | 自主程度 | 人工参与 | 适用场景 |
|---|---|---|---|
| 提问模式 | 低 | 高 | 咨询、分析、学习 |
| 任务模式 | 中 | 中 | 具体开发任务 |
| Agent 模式 | 高 | 低 | 复杂多步骤任务 |
3. 提问模式
(1) 特点
- Codex 只回答问题,不修改代码
- 相当于智能搜索引擎 + 技术顾问
- 安全性最高
(2) 使用方式
TEXT
📖 仅展示
> 解释 React useEffect 的清理机制
> 这个正则表达式匹配什么?/\d{3}-\d{4}/
> TypeScript 中 type 和 interface 有什么区别?
> 如何在 Node.js 中实现优雅关闭?
▶ 示例 1: Alice 用提问模式学习
TEXT
📖 仅展示
# Alice 接手一个 Rust 项目,用提问模式快速理解
> 解释 src/parser/mod.rs 中的 AST 结构
> 这个项目用的是什么错误处理模式?
> 为什么这里用 Arc<Mutex<T>> 而不是 RefCell<T>?
> 给我画一个模块依赖关系图
4. 任务模式
(1) 特点
- Codex 执行具体任务,逐步确认
- 最常用的模式
- 平衡自主性与安全性
(2) 使用方式
TEXT
📖 仅展示
> 为 auth 模块添加 JWT 支持
> 修复 test_user_login 测试失败
> 将 this.state 转换为 React Hooks
> 为 API 添加请求限流
(3) 任务拆解原则
| 原则 | 说明 |
|---|---|
| 单一职责 | 一次只做一件事 |
| 明确边界 | 指定修改范围 |
| 包含验证 | 说明如何验证 |
| 参考已有 | 指定风格参考 |
▶ 示例 2: Bob 的任务拆解
TEXT
📖 仅展示
# Bob 需要添加用户注册功能,拆解为:
Step 1: "创建 User 模型,字段包含 email、password_hash、created_at"
Step 2: "实现注册 API 端点 POST /api/register,包含邮箱格式验证"
Step 3: "添加密码哈希,使用 bcrypt"
Step 4: "为注册流程写集成测试"
Step 5: "添加邮箱验证流程"
5. Agent 模式
(1) 特点
- Codex 自主规划并执行多步骤任务
- 人工只需审查最终结果
- 效率最高但风险也最高
(2) 使用方式
BASH
# Full Auto 模式
codex --full-auto "将整个项目从 JavaScript 迁移到 TypeScript"
# 或在对话中切换
/mode full-auto
(3) Agent 工作循环
graph TB
A[接收任务] --> B[分析理解]
B --> C[规划步骤]
C --> D[执行步骤 1]
D --> E[验证结果]
E --> F{成功?}
F -->|否| G[修正重试]
G --> D
F -->|是| H[执行步骤 2]
H --> I[继续...]
I --> J[汇总结果]
J --> K[汇报完成]
▶ 示例 3: Alice 的 Agent 模式
TEXT
📖 仅展示
# Alice 用 Agent 模式处理大型重构
> 将 Express 项目迁移到 Fastify:
> 1. 替换所有路由定义
> 2. 更新中间件语法
> 3. 修改启动脚本
> 4. 确保所有测试通过
> 5. 更新 package.json
# Codex 自主执行:
→ Scanning 45 files...
→ Converting routes (32 routes)...
→ Updating middleware (8 files)...
→ Test run: 89/89 passed ✓
→ Updating dependencies...
→ Final test: 89/89 passed ✓
→ Migration complete!
6. 模式选择策略
(1) 决策树
TEXT
📖 仅展示
任务类型?
├── 只需要信息 → 提问模式
├── 需要修改代码
│ ├── 单一明确任务 → 任务模式
│ └── 复杂多步骤任务
│ ├── 风险可控 → Agent 模式
│ └── 风险较高 → 任务模式(分步)
(2) 选择矩阵
| 任务 | 模式 | 原因 |
|---|---|---|
| 解释代码逻辑 | 提问 | 不需要修改 |
| 修复单个 Bug | 任务 | 单一明确 |
| 添加一个功能 | 任务 | 需要逐步确认 |
| 全项目重构 | Agent | 步骤多但有规律 |
| 数据库迁移 | 任务 | 风险高需逐步确认 |
| 批量生成测试 | Agent | 重复性工作 |
7. 混合工作流
实际工作中,三种模式常常混合使用:
TEXT
📖 仅展示
# Alice 的混合工作流
1. [提问] "这个项目的认证架构是怎样的?"
2. [提问] "JWT 刷新令牌的最佳实践是什么?"
3. [任务] "添加 JWT 刷新令牌端点"
4. [任务] "为刷新令牌写单元测试"
5. [Agent] "审查整个 auth 模块,修复所有安全问题"
❓ 常见问题
Q 可以在一次会话中切换模式吗?
A 可以。使用
/mode 命令或直接调整交互方式——提问式交互就是提问模式,任务式交互就是任务模式。Q Agent 模式安全吗?
A 取决于任务风险和审批策略。建议配合 Git 安全网——操作前先 commit,出错可回滚。高风险任务建议用任务模式。
Q 如何判断任务是否适合 Agent 模式?
A 问自己三个问题:1) 步骤是否可预见?2) 错误是否可回滚?3) 是否需要人工判断?都是 → Agent;否 → 任务模式。
Q 提问模式会消耗上下文吗?
A 会。每个问题和回答都占用上下文窗口。大量提问后建议
/compact 或 /new。Q 哪种模式最省 token?
A 提问模式最省,因为不执行操作只输出文字。Agent 模式最费,因为需要多轮执行和验证。
📖 小节
- 三种模式:提问(安全)/ 任务(平衡)/ Agent(高效)
- 提问模式:咨询分析、不修改代码
- 任务模式:逐步确认、单一职责
- Agent 模式:自主执行、需配合 Git 安全网
- 混合使用效果最佳
📝 作业
- 基础题(难度⭐):分别用三种模式完成同一个主题的不同任务,记录体验差异。
- 进阶题(难度⭐⭐):用任务模式完成一个中等复杂度功能,练习任务拆解。
- 挑战题(难度⭐⭐⭐):设计一个混合工作流——先用提问模式分析,再用任务模式实现,最后用 Agent 模式审查。