前面的系列文章分别介绍了 Codex 的各个独立功能——exec 命令、Sandbox 模式、Hooks 钩子、MCP 集成等。但在真实开发场景中,这些功能从来不是孤立运行的。一个成熟的 AI 编程工作流,应该是将这些能力有机组合起来,形成一套可复用的、高效的操作模式。
本文将从实际开发场景出发,介绍四种典型的 Codex 工作流模式,涵盖从需求理解到代码提交的完整链路。
在开始之前,确保你已经通过 codex login 完成了认证,并在项目根目录下有一个基础的 AGENTS.md 配置文件和 codex.json 配置文件。
codex login
这是日常开发中最常用的场景之一——写完代码后,让 Codex 帮助审查、优化,并自动运行测试验证。
codex exec "审查 src/ 目录下本次 git 变更的代码,关注以下问题: 1. 潜在的安全漏洞 2. 性能瓶颈 3. 错误处理是否完善 4. 代码风格是否符合项目规范 请以列表形式输出每个问题及其建议修复方案"
审查结束后,你可以直接让 Codex 修复发现的问题:
codex exec "根据刚才审查发现的问题,逐一修复 src/ 目录下的代码。 修复完成后,运行 npm run lint 和 npm test 确保一切正常。"
结合 Sandbox 模式,让修复过程更加安全可控——所有代码变更先在沙箱中验证,确认无误后再应用到项目中。
{
"sandbox": {
"enabled": true,
"auto_approve": false
}
}
执行时指定沙箱模式:
codex exec --sandbox "修复 src/utils/validator.ts 中的 XSS 漏洞,并运行相关测试验证修复效果"
当你拿到一个新的功能需求时,可以用下面的工作流串联从需求分析到代码实现的全过程。
codex exec "阅读以下功能需求,将其拆解为可执行的任务列表,每个任务标注预估影响范围: <粘贴需求文档内容> 输出格式: - 任务1:[描述] - 影响文件:[预估文件列表] - 任务2:[描述] - 影响文件:[预估文件列表] ..."
codex exec "实现任务1:[描述]。 修改受影响的文件,确保: 1. 保持现有代码风格一致 2. 添加必要的类型定义 3. 不引入新的 lint 错误"
在 codex.json 中配置 hooks,让每次 exec 执行后自动运行测试和 lint:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "npm run lint -- --fix"
}
]
}
]
}
}
这样每次 Codex 修改文件后,都会自动运行 lint 检查,避免积累问题。
对于复杂的重构任务,单次 exec 往往难以完成。多轮对话式工作流更为有效。
codex exec "分析 src/services/userService.ts 的代码结构,输出: 1. 主要职责和功能列表 2. 依赖关系图(文字描述) 3. 当前设计存在的问题 不要修改任何代码"
codex exec "基于上一轮的分析结果,制定 userService.ts 的重构计划。 考虑: 1. 如何拆分为更小的模块 2. 如何降低耦合度 3. 如何提高可测试性 输出详细的重构步骤"
每轮只处理一个步骤,保持变更可控:
codex exec "执行重构计划的第一步:将 userService.ts 中的认证相关逻辑提取到独立文件 src/services/authService.ts。 保持所有现有测试通过,必要时更新测试文件。"
每步完成后运行测试确认,再进行下一步。
代码写完了,文档更新是很多开发者头疼的事。用 Codex 可以自动化这个过程。
codex exec "分析 src/api/routes/ 目录下的所有路由文件, 为每个端点生成 API 文档,包含: - 请求方法和路径 - 请求参数说明 - 响应格式示例 - 可能的错误码 将文档保存到 docs/api.md"
当项目功能发生变化时:
codex exec "根据最近 10 次 git commit 记录和 CHANGELOG.md,更新 README.md 中的功能特性列表和快速开始指南"
利用 git diff 生成结构化的变更日志:
codex exec "分析 `git log --oneline -20` 的输出,生成一份结构化的 CHANGELOG.md 条目, 按 Added / Changed / Fixed / Deprecated 分类"
将多个 Codex 命令写入 shell 脚本,实现一键执行:
#!/bin/bash # pr_check.sh - 提交 PR 前的全量检查 echo "=== 代码审查 ===" codex exec "审查整个 src/ 目录,关注安全漏洞和性能问题" echo "=== 自动修复 ===" codex exec --approve "修复审查中发现的问题" echo "=== 运行测试 ===" npm test echo "=== 生成变更摘要 ===" codex exec "根据 git diff origin/main...HEAD 生成 PR 描述"
在项目 AGENTS.md 中定义自定义斜杠命令,加快常用操作:
## Commands - `/review` - 审查当前所有未提交的改动 - `/fix` - 修复 lint 和类型错误 - `/changelog` - 根据 git 历史生成变更日志 - `/ship` - 执行完整的提交流程(审查、修复、测试)
使用时只需:
codex exec "/ship"
通过 MCP 服务器接入外部工具,扩展工作流能力。例如接入数据库工具后:
codex exec "查询订单表结构,分析是否存在索引缺失,输出优化建议和对应的 SQL 语句"
Codex 的每次 exec 调用是独立的,不会自动记住上一轮的上下文。如果你需要多轮对话的连续性,有以下几种方式:
在 AGENTS.md 中写明上下文:将关键信息写入 AGENTS.md,后续的 exec 会读取
在提示词中携带信息:将上一轮的输出手动粘贴到下一轮的提示词中
使用文件传递上下文:让 Codex 将中间结果写入文件,后续读取
codex exec "将分析结果保存到 .codex/analysis.md" codex exec "读取 .codex/analysis.md 中的分析结果,基于此制定重构计划"
--approve 标志会跳过确认步骤,适合信任度高的操作。但在生产环境或关键代码上建议谨慎使用。建议在以下场景使用:
过长的提示词可能导致关键信息被稀释。如果需求复杂,建议分步执行,每步聚焦一个问题。对于超过 500 字的提示词,考虑先让 Codex 帮你拆解任务。
Codex 的强大不在于单个功能有多厉害,而在于你能把这些功能串联成适合自己的工作流。本文介绍的四种工作流模式——代码审查自动化、需求驱动开发、多轮对话式重构、自动化文档维护——覆盖了日常开发的主要场景。
核心原则可以归纳为三点:
小步快跑:复杂任务拆成小步骤,每步验证后再继续
善用文件传递上下文:弥补 exec 无状态的特点
配置先行:把重复操作固化为 hooks、commands,减少手动干预
把这些工作流用熟了,你会发现自己不是在"用 AI 写代码",而是在"和 AI 一起编程"——这之间的体验差异是巨大的。