Skip to content

Codex 最有价值的用法不是"一次性问答助手",而是一个你持续配置、持续改进的编程搭档。本文从 8 个维度讲如何让 Codex 在大型代码库里持续产出高质量结果:写好 Prompt 四要素、用 AGENTS.md 沉淀规则、统一配置、加测试验证、用 MCP 接入外部系统、把重复流程变成 Skills、自动化稳定任务、高效管理会话。

OpenAI Codex 最佳实践

Codex 和其他 AI 工具最大的区别:它值得你去配置、去持续改进,而不是只用来做一次性问答。

把它当成队友:先给对的上下文,用 AGENTS.md 写下持久规则,用 Skills 打包重复流程,用自动化跑稳定任务。


一、好 Prompt 的四要素

Codex 足够强,模糊的 Prompt 也能给出不错的结果。但清晰的指令能让结果更可靠——尤其是在大型代码库或高风险任务里。

在 Prompt 里包含这四样东西

  1. 目标(Goal):你要做什么改动或构建什么?
  2. 上下文(Context):哪些文件、目录、文档、报错信息与这个任务有关?可以用 @ 引用文件
  3. 约束(Constraints):有什么规范、架构、安全要求或约定 Codex 必须遵守?
  4. 完成标准(Done when):什么状态算完成?测试通过?行为改变?Bug 不再复现?

这四要素帮 Codex 锁定范围、少做假设、产出更容易 review 的代码。

选对推理强度

  • 低(Low):快速、范围明确的任务
  • 中/高(Medium/High):复杂改动或调试
  • 超高(Extra High):长时间运行的、推理密集的 agent 任务

试试在 Codex App 里用语音输入指令,比手打快很多。


二、复杂任务先规划

任务复杂、模糊或难以描述时,让 Codex 先规划,再动手写代码。

三种规划方式

Plan 模式:大多数人最简单的选择。Codex 先收集上下文、问清楚问题、做好计划再动手。在 Codex CLI 里用 /planShift+Tab 切换。

让 Codex 先问你:如果你有个大概想法但说不清楚,让 Codex 先质疑你的假设,把模糊想法变成可操作的需求:

text
在写任何代码之前,先问我足够多的问题,让你能完全理解我的需求。帮我把这个模糊的想法变得具体。

用 PLANS.md 模板:对于多步骤的长期工作,配置 Codex 遵循 PLANS.md 执行计划模板。


三、把有效的规则沉淀到 AGENTS.md

一个 Prompt 模式有效之后,下一步是把它固化——不要反复手动输入。这就是 AGENTS.md 的价值。

AGENTS.md 当成一个面向 AI 的 README:它自动加载到上下文,是告诉 Codex 你和团队希望怎么工作的最佳位置。

一个好的 AGENTS.md 应该包含

  • 仓库目录结构和关键目录
  • 如何启动项目
  • 构建、测试、lint 命令
  • 工程规范和 PR 要求
  • 约束和禁止事项
  • "完成"意味着什么,如何验证工作

用 CLI 的 /init 命令可以快速生成一个起点 AGENTS.md,然后手动编辑成你们团队真实的工作方式。

分层管理

  • ~/.codex/AGENTS.md:个人全局默认值
  • 仓库根目录 AGENTS.md:团队共享规范
  • 子目录 AGENTS.md:局部专项规则(靠近工作目录的文件优先级更高)

保持简洁:简短准确的 AGENTS.md 比冗长的规则文件更有效。遇到问题先加规则,不要预先猜测所有可能情况。

当 Codex 犯了同样的错误两次,让它做一次复盘并更新 AGENTS.md。基于真实摩擦更新规则,保持实用性。


四、统一 Codex 配置

配置是让 Codex 在不同会话和接入方式里保持一致行为的关键。可以配置的内容包括:模型选择、推理强度、沙箱模式、审批策略、Profiles 和 MCP 设置。

推荐的配置分层

  • 个人默认值放 ~/.codex/config.toml(或在 Codex App 里进 Settings → Configuration → Open config.toml)
  • 仓库专属行为放 .codex/config.toml
  • 只用命令行参数覆盖一次性情况

沙箱和审批权限:Codex 内置沙箱机制,有两个核心控制点:

  • 审批模式(Approval mode):Codex 什么时候需要你批准才能运行命令
  • 沙箱模式(Sandbox mode):Codex 能读写哪些文件和目录

如果你刚开始用 coding agent,从默认权限开始。了解清楚工作流之后,再针对可信仓库或特定工作流适当放开权限。

早点把 Codex 配置到你的真实环境。很多质量问题其实是配置问题:工作目录错了、写入权限不够、模型默认值不对、工具或连接器缺失。


五、用测试和 Review 提升可靠性

不要只让 Codex 做改动,要让它同时写测试、跑检查、确认结果、review 改动

Codex 能帮你完成这整个循环,但前提是它知道"好"是什么样。这个标准可以来自 Prompt 或 AGENTS.md

可以要求 Codex:

  • 为改动写或更新测试
  • 跑对应的测试套件
  • 检查 lint、格式化或类型检查
  • 确认最终行为符合需求
  • 检查 diff 中的 Bug、退化或风险模式

/review 命令做代码审查:

text
/review                              # 审查未提交改动
/review Focus on edge cases and security issues  # 自定义关注点

支持多种模式:

  • 对比基础分支做 PR 风格的 review
  • 审查未提交改动
  • 审查某个 commit
  • 自定义 review 指令

如果你用 GitHub Cloud,可以配置 Codex 自动为 PR 做 code review,或者在 PR 里 @codex 触发审查。


六、用 MCP 接入外部系统

当 Codex 需要的上下文在代码仓库之外时,用 MCP 接入。

适合用 MCP 的情况

  • 需要的数据在仓库外(issue tracker、设计工具、文档系统)
  • 数据频繁变化,不适合手动复制粘贴
  • 需要 Codex 直接调用工具,而不是依赖粘贴的指令
  • 需要在多个用户或项目之间复用同一个集成

在 Codex App 里:Settings → MCP servers,可以看到内置推荐的服务端,也可以直接让 Codex 帮你安装。CLI 里用 codex mcp add 命令添加自定义服务端。

只在 MCP 能真正解锁某个工作流时才加。不要一开始就接入所有工具。先选 1~2 个能明显减少手动操作的工具,再逐步扩展。


七、把重复工作变成 Skills

一旦某个工作流可以重复,停止依赖长 Prompt 或反复来回沟通。用 Skill 把指令、上下文和辅助逻辑打包成 SKILL.md 文件。

什么时候该做成 Skill

  • 日志分类
  • Release notes 起草
  • 按 checklist 做 PR review
  • 迁移规划
  • 遥测或故障摘要
  • 标准化调试流程

$skill-creator 开始,用内置的 skill 创建工具生成第一个版本。先在本地迭代,稳定后再打包成 Plugin 分享给更多人。

每个 Skill 只做一件事。从 2~3 个具体用例出发,定义清晰的输入输出,写好 description(说明 Skill 做什么、什么时候触发)。

个人 Skills 放在 $HOME/.agents/skills,团队 Skills 签入到仓库的 .agents/skills,非常适合新成员入职使用。


八、自动化稳定的工作流

工作流稳定之后,可以安排 Codex 在后台定期跑。在 Codex App 的 Automations 标签里,选择项目、Prompt(可以调用 Skills)和执行频率。

适合自动化的任务

  • 汇总最近的 commits
  • 扫描潜在 Bug
  • 起草 Release notes
  • 检查 CI 失败
  • 生成 standup 摘要
  • 定期运行分析工作流

原则:Skills 定义方法,Automations 定义节奏。一个工作流还需要大量引导时,先做成 Skill;可预测了,再自动化。

用自动化做反思和维护,而不只是执行。定期回顾会话、汇总重复的摩擦点,持续改进 Prompt、指令或工作流配置。


九、管理长期工作会话

Codex 会话不只是聊天记录,它是积累了上下文、决策和行动的工作线程。管理好会话对输出质量影响很大。

常用的 CLI slash 命令

命令作用
/plan切换 Plan 模式
/resume恢复已保存的会话
/fork新建线程,保留原始记录
/compact压缩上下文(Codex 也会自动做)
/agent在多个并行 agent 线程之间切换
/review代码审查
/status检查当前会话状态

每个工作单元开一个线程。同一个问题的延续就在同一个线程里聊,保留完整推理链。只在工作真正分叉时才 fork 新线程。

Subagents 把有边界的工作从主线程剥离出去:让主 agent 专注于核心问题,把探索、测试、分类等工作交给子代理。


常见错误

  • 把持久化规则堆在 Prompt 里,而不是移到 AGENTS.md 或 Skill
  • 不告诉 agent 怎么跑构建和测试命令,让它看不到自己的工作效果
  • 多步骤复杂任务跳过规划
  • 在理解工作流之前就给了 Codex 太多权限
  • 在同一批文件上同时跑多个线程,没用 git worktrees 隔离
  • 工作流还不稳定就设置自动化
  • 把 Codex 当成需要盯着看的工具,而不是并行工作的队友
  • 一个项目只开一个线程,导致上下文越来越臃肿、质量越来越差

常见问题

Q: AGENTS.md 写多长合适?

A: 越短越好,以能准确描述项目规范为准。太长的 AGENTS.md 会占用更多上下文窗口,并且规则越多 Codex 越容易混淆。从基础开始(构建/测试命令、核心约定),遇到反复出现的问题再添加对应规则。

Q: MCP 和 Skills 都能做外部集成,应该用哪个?

A: 两者互补:MCP 负责实时连接和调用外部系统(拉取 Linear issue、查 Figma 设计);Skills 负责封装工作流程(定义一套 PR review 的步骤)。通常是 Skill 定义流程,在流程里调用 MCP 工具。

Q: 自动化任务失败了怎么办?

A: 先把工作流做成稳定的 Skill 手动验证,确认可预测之后再自动化。自动化任务出问题通常说明这个工作流还需要更多引导,还没到自动化的时机。