前几天,团队里有个同事跟我抱怨:“Codex 不是挺厉害的吗?为什么我每次用它改代码,还是得反复对话好几轮,改出来的东西也不对?”
说实话,我一开始也踩过不少坑。
Codex CLI 是 OpenAI 开源的终端 AI 编程助手,功能确实强大——它能读懂整个项目、自主修改代码、跑测试验证结果。但如果你只是把它当成"聊天机器人"来用,那基本上只发挥了它 10% 的能力。
这篇文章总结了我在实际项目中摸索出来的 Codex 使用技巧,从 AGENTS.md 配置、Plan 模式、沙盒策略到多 Agent 协作,每一条都是实战验证过的。
⚠️适用人群:已经安装 Codex CLI,但觉得效率不够高,或者想解锁更多玩法的开发者。
问题根源:你可能一直在"错误地"使用 Codex
用 Codex 写代码时,你大概率遇到过这些情况:
- 每次都要花很长时间解释项目结构和代码规范
- AI 改出来的代码风格跟项目不一致
- 改一个文件,结果影响到其他地方
- 复杂任务做到一半就跑偏,不得不重新开始
根本原因很简单:你没有给 Codex 足够的"上下文",也没有用对正确的模式。
传统做法就是把需求扔给 AI,让它自己去猜。但项目越大、逻辑越复杂,猜错的概率就越高。结果就是来回修改、效率低下、Token 浪费严重。
不过,掌握了下面这些技巧之后,情况会完全不同。
技巧一:AGENTS.md——你的项目"说明书"
这是 Codex 最强大但最容易被忽略的功能。
什么是 AGENTS.md?
AGENTS.md 是一个放在项目根目录的 Markdown 文件,它相当于给 Codex 写了一份"项目使用手册"。Codex 每次启动时都会自动读取它,里面的指令会直接影响 AI 的行为方式。
实际效果有多明显?
| 对比项 | 没有 AGENTS.md | 有 AGENTS.md | 改善幅度 |
|---|---|---|---|
| 每次解释项目规范 | 需要反复说明 | 自动读取 | 省 100% |
| 代码风格一致性 | 经常不一致 | 严格遵循 | ✅ |
| 修改影响范围 | 容易误伤 | 精准控制 | ✅ |
| Token 消耗 | 大量重复说明 | 一次配置 | 降低 30-50% |
怎么写一个高质量的 AGENTS.md?
# 项目规范 ## 技术栈 - 后端:Node.js + Express + TypeScript - 数据库:PostgreSQL + Prisma ORM - 测试:Jest + Supertest ## 代码风格 - 使用函数式编程风格,避免 class - 变量命名:camelCase - 常量命名:UPPER_SNAKE_CASE - 文件命名:kebab-case.ts ## 目录结构 - src/routes/ - API 路由 - src/services/ - 业务逻辑 - src/models/ - 数据模型 - src/utils/ - 工具函数 ## 测试规范 - 每个 service 必须有对应的单元测试 - API 路由必须有集成测试 - 运行测试命令:npm test⚠️ AGENTS.md 的作用域规则
这一点非常关键:
- 根目录的 AGENTS.md:对整个项目生效
- 子目录的 AGENTS.md:只对该目录及其子目录生效
- 嵌套冲突时:更深层的 AGENTS.md 优先级更高
这意味着你可以针对不同模块设置不同的规范:
项目根目录/ ├── AGENTS.md # 全局规范 ├── src/ │ ├── frontend/ │ │ └── AGENTS.md # 前端专属规范(React 组件规范等) │ └── backend/ │ └── AGENTS.md # 后端专属规范(API 规范等)💡小技巧:把npm test、npm run lint这些命令写进 AGENTS.md,Codex 会自动在修改代码后运行验证。
技巧二:善用 Plan 模式,复杂任务不再跑偏
你有没有遇到过这种情况:让 Codex 做一个复杂功能,做到一半它就开始"自由发挥",偏离了你的预期?
Plan 模式的正确打开方式
Codex 支持多种协作模式,其中Plan 模式特别适合复杂任务。在 Plan 模式下,Codex 会先列出执行计划,等你确认后再动手。
在提示词中明确要求:
请用 Plan 模式帮我完成以下任务: 1. 为 /api/users 接口添加分页功能 2. 添加对应的单元测试 3. 更新 API 文档Codex 会生成一个可视化的步骤列表:
□ 分析现有 /api/users 路由实现 □ 添加分页参数(page, limit)解析 □ 修改 Service 层查询逻辑 □ 编写分页单元测试 □ 更新 Swagger 文档你可以:
- ✅ 逐条确认或修改计划
- ✅ 调整步骤顺序
- ✅ 补充遗漏的步骤
- ✅ 确认后再执行
什么时候该用 Plan 模式?
| 场景 | 推荐模式 | 原因 |
|---|---|---|
| 修改单个文件的小 bug | 默认模式 | 简单直接 |
| 添加一个新功能模块 | Plan 模式 | 需要多步协调 |
| 重构项目架构 | Plan 模式 | 影响范围大 |
| 快速查询代码逻辑 | 默认模式 | 不需要修改 |
| 修复测试失败 | 默认模式 | 目标明确 |
技巧三:沙盒权限——安全与效率的平衡点
Codex 提供了精细的沙盒权限控制,很多开发者要么完全放开(有安全风险),要么限制太死(效率低下)。
三种沙盒模式对比
| 模式 | 安全性 | 自由度 | 适用场景 |
|---|---|---|---|
| Workspace Only | 🔴 最高 | ⚠️ 最低 | 只允许修改工作区文件 |
| Suggest | 🟡 中等 | 🟡 中等 | 需要审批才能执行命令 |
| Full Access | ⚠️ 最低 | ✅ 最高 | 信任环境,追求效率 |
我的实战建议
开发环境:使用 Full Access,让 Codex 自由运行测试、安装依赖
生产环境或共享服务器:使用 Suggest 模式,每次执行命令前确认
# 以 suggest 模式启动codex --approval-mode suggest# 以 full access 模式启动(仅限可信环境)codex --approval-mode full-auto💡小技巧:如果你发现 Codex 总是反复请求确认,把常用命令(如npm test、npm run lint)加入自动批准前缀列表,效率会显著提升。
技巧四:多 Agent 协作——让 Codex 自己"分身"
这是 Codex 最被低估的能力之一。
场景:同时处理多个子任务
假设你有一个大需求:为电商项目添加优惠券系统。这个任务涉及:
- 数据库模型设计
- API 接口开发
- 前端页面开发
- 单元测试编写
传统做法是一个一个来,但 Codex 可以同时启动多个子任务并行处理:
请帮我实现优惠券系统,包含以下子任务: 1. 创建优惠券数据模型和数据库迁移 2. 实现 CRUD API 接口 3. 编写管理后台前端页面 4. 添加完整的测试覆盖Codex 会自动拆分任务,必要时创建独立的工作线程(Thread),每个子任务在自己的上下文中执行,互不干扰。
线程管理技巧
# 查看当前所有任务线程 列出所有线程 # 查看特定线程的进度 查看线程 [threadId] 的最新状态 # 等待某个线程完成 等待线程 [threadId] 完成技巧五:提示词工程——让 Codex 一次就做对
提示词的质量直接决定了 Codex 的输出质量。以下是我总结的高效提示词模板。
❌ 低效提示词
帮我加个搜索功能✅ 高效提示词
在 src/services/user.service.ts 的 findAll 方法中添加搜索功能: 1. 支持按 name 和 email 模糊搜索 2. 搜索参数为空时返回全部结果 3. 使用 Prisma 的 contains 操作符 4. 添加对应的单元测试,覆盖搜索和空参数两种情况 5. 确保测试命令是 npm test提示词黄金公式
目标 + 位置 + 约束 + 验证方式| 要素 | 说明 | 示例 |
|---|---|---|
| 目标 | 具体要做什么 | 添加用户搜索功能 |
| 位置 | 改哪个文件/模块 | src/services/user.service.ts |
| 约束 | 技术限制或规范 | 使用 Prisma contains,支持模糊搜索 |
| 验证 | 如何确认完成 | 运行 npm test 且全部通过 |
技巧六:上下文管理——避免 Token 爆炸
跟前面提到的 OpenClaw QMD 类似,Codex 也有上下文管理的问题。
Token 消耗对比
| 场景 | 不优化 | 优化后 | 节省比例 |
|---|---|---|---|
| 大型项目全量上下文 | 50K+ tokens | 精准引用 2K tokens | 96% |
| 跨文件修改 | 20K+ tokens | 逐文件处理 5K tokens | 75% |
| 长对话累积 | 100K+ tokens | 定期总结 10K tokens | 90% |
实用策略
1. 精确指定文件范围
# ❌ 不要这样说 帮我看看项目里哪里有问题 # ✅ 应该这样说 检查 src/routes/auth.ts 和 src/services/auth.service.ts 中的错误处理逻辑2. 利用 AGENTS.md 减少重复说明
把项目规范、技术栈、常用命令写进 AGENTS.md,避免每次对话都要重新解释。
3. 复杂任务分步执行
不要一次性让 Codex 改 10 个文件。把大任务拆成小任务,每步完成后验证,再进行下一步。
技巧七:自动化工作流——让 Codex 持续运转
Codex 支持自动化(Automation)功能,可以设置定时任务、监控和跟进。
实用自动化场景
场景一:每日代码质量检查
每天早上 9 点自动运行以下检查: 1. npm run lint 检查代码规范 2. npm test 运行全部测试 3. 如果有失败,生成修复建议场景二:依赖更新监控
每周一检查 package.json 中的依赖是否有安全漏洞: 1. 运行 npm audit 2. 如果有高危漏洞,生成升级方案 3. 将报告发送到飞书群场景三:文档自动同步
当 API 路由文件发生变化时: 1. 自动更新 Swagger 文档 2. 生成 changelog全面对比:掌握技巧前后
| 维度 | 使用前 | 使用后 | 改善幅度 |
|---|---|---|---|
| 单次任务完成率 | 40-60% | 85-95% | ⬆️ 2 倍 |
| 平均对话轮数 | 5-8 轮 | 1-3 轮 | ⬇️ 70% |
| Token 消耗 | 50K+/次 | 5-15K/次 | ⬇️ 70-90% |
| 代码风格一致性 | 随机 | 严格一致 | ✅ |
| 复杂任务成功率 | 经常跑偏 | 按计划执行 | ✅ |
| 开发效率 | 提升有限 | 效率翻 5-10 倍 | ⬆️ 5-10 倍 |
常见问题
Q:AGENTS.md 会不会被提交到 Git 仓库?
A:建议提交。这样团队所有人使用 Codex 时都能共享同一套规范。如果包含敏感信息,可以在.gitignore中排除。
Q:Plan 模式下可以中途修改计划吗?
A:可以。Plan 模式的计划列表是动态的,你可以随时调整步骤、添加新步骤或删除不需要的步骤。
Q:多 Agent 模式会不会互相冲突?
A:不会。每个子任务在独立的工作线程中运行,有自己的上下文。Codex 会自动处理文件冲突——如果两个子任务修改了同一个文件,会提示你合并。
Q:Codex 支持哪些编程语言?
A:理论上支持所有主流编程语言。它对 TypeScript、Python、Go、Rust 等强类型语言的支持最好,因为这些语言的类型信息能帮助 AI 更准确地理解代码。
Q:如何查看 Codex 的 Token 消耗?
A:可以在对话中直接询问,Codex 会返回当前会话的 Token 使用情况。也可以通过--token-budget参数设置单次会话的 Token 上限。
Q:Codex 和 Cursor/Copilot 有什么区别?
A:最大的区别是自主性。Cursor 和 Copilot 主要是"补全"和"对话"模式,而 Codex 可以自主阅读代码、修改文件、运行命令、验证结果——它是一个完整的编程 Agent,不只是辅助工具。
总结
Codex CLI 的核心价值不在于"帮你写几行代码",而在于它能自主完成复杂的编程任务。
⚠️关键提醒:
- ✅AGENTS.md 是基石——花时间写好它,后面每次使用都在省钱
- ✅Plan 模式是利器——复杂任务一定要先规划再执行
- ✅提示词决定质量——用"目标+位置+约束+验证"公式
- ✅分步执行是保障——大任务拆小步,步步验证
- ✅自动化是未来——让 Codex 持续运转,而不是一次性使用
掌握这些技巧后,你会发现 Codex 不再只是一个"代码补全工具",而是一个真正能帮你干活的 AI 编程伙伴。