Learn

最佳实践

把官方最佳实践转成团队可执行的提示、验证和评审习惯。

如果您对 Codex 或一般编码代理不熟悉,本指南将帮助您更快地获得更好的结果。它涵盖了使 Codex 在 CLI、 IDE 扩展 Codex app 中更有效的核心习惯,从提示和计划到验证、MCP、技能和自动化。

Codex works best when you treat it less like a one-off assistant and more like a teammate you configure and improve over time.

思考这个问题的一个有用方法是:从正确的任务上下文开始,使用 AGENTS.md 提供持久指导,配置 Codex 以匹配您的工作流程,使用 MCP 连接外部系统,将重复的工作转化为技能,并自动化稳定的工作流程。

强烈的首次使用:上下文和提示

Codex is already strong enough to be useful even when your prompt isn’t perfect. You can often hand it a hard problem with minimal setup and still get a strong result. Clear prompting isn’t required to get value, but it does make results more reliable, especially in larger codebases or higher-stakes tasks.

如果您在大型或复杂的存储库中工作,最大的解锁就是为 Codex 提供正确的任务上下文和清晰的结构来完成您想要完成的任务。

一个好的默认设置是在提示中包含四件事:

目标:你想改变或建立什么?

上下文:哪些文件、文件夹、文档、示例或错误对于此任务很重要?您可以@提及某些文件作为上下文。

约束:Codex 应遵循哪些标准、架构、安全要求或约定?

完成时间:任务完成之前应该发生什么,例如测试通过、行为改变或不再重现错误?

这有助于 Codex 保持范围,减少假设,并生成更容易审查的工作。

根据任务的难度选择推理级别,并测试最适合您的工作流程的推理级别。不同的用户和任务在不同的设置下效果最佳。

低,用于更快的 well-scoped 任务

中或高用于更复杂的更改或调试

特高,适用于长期、代理、reasoning-heavy 任务

为了更快地提供上下文,请尝试在 Codex app 内使用语音听写来指示您希望 Codex 执行的操作,而不是键入它。

首先计划困难的任务

如果任务复杂、不明确或难以描述,请要求 Codex 在开始编码之前进行计划。

有几种方法效果很好:

使用计划模式:对于大多数用户来说,这是最简单且最有效的选项。计划模式让 Codex 收集背景信息、提出澄清问题并在实施之前制定更强有力的计划。使用 /plan 或 Shift+Tab 进行切换。

请 Codex 采访您:如果您大致了解自己想要什么,但不确定如何很好地描述它,请先请 Codex 向您提问。在编写代码之前,告诉它挑战您的假设并将模糊的想法变成具体的东西。

使用 PLANS.md 模板:对于更高级的工作流程,您可以将 Codex 配置为遵循 PLANS.md 或 execution-plan 模板来进行 longer-running 或 multi-step 工作。有关更多详细信息,请参阅 执行计划指南

使用 AGENTS.md 使指南可重复使用

一旦提示模式起作用,下一步就是停止手动重复它。这就是 AGENTS.md 的用武之地。

将 AGENTS.md 视为代理的 open-format README。它会自动加载到上下文中,并且是对您和您的团队希望 Codex 在存储库中工作的方式进行编码的最佳位置。

一个好的 AGENTS.md 涵盖:

仓库布局和重要目录

如何运行项目

构建、测试和 lint 命令

工程会议和公关期望

约束和 do-not 规则

完成意味着什么以及如何验证工作

CLI 中的 /init 斜线命令是 quick-start 命令,用于在当前目录中搭建启动器 AGENTS.md。这是一个很好的起点,但您应该编辑结果以匹配您的团队实际构建、测试、审查和发布代码的方式。

您可以在不同级别创建 AGENTS.md 文件:位于 ~/.codex 中的用于个人默认设置的全局 AGENTS.md、用于共享标准的 repo-level 文件以及用于本地规则的子目录中的更具体文件。如果有一个更具体的文件更接近您当前的目录,则该指南获胜。

保持实用。简短而准确的 AGENTS.md 比充满模糊规则的长文件更有用。从基础知识开始,只有在发现重复的错误后才添加新规则。

如果 AGENTS.md 开始变得太大,请保持主文件简洁,并参考 task-specific Markdown 文件进行规划、代码审查或架构等。

当Codex两次犯同样的错误时,要求其回顾并更新AGENTS.md。指导保持实用并基于真实的摩擦。

配置 Codex 以保持一致性

配置是使 Codex 在会话和表面上表现更加一致的主要方法之一。例如,您可以设置模型选择、推理工作、沙盒模式、批准策略、配置文件和 MCP 设置的默认值。

一个好的起始模式是:

保留 ~/.codex/config.toml 中的个人默认设置(设置 → 配置 → 从 Codex app 打开 config.toml)

将 repo-specific 行为保留在 .codex/config.toml 中

仅在 one-off 情况下使用 command-line 覆盖(如果您使用 CLI)

config.toml 是您定义持久首选项的位置,例如 MCP 服务器、multi-agent 设置和功能标志。 Profile-specific 覆盖单独的 $CODEX_HOME/profile-name.config.toml 文件中的实时内容。

Codex ships with operating level sandboxing and has two key knobs that you can control. Approval mode determines when Codex asks for your permission to run a command and sandbox mode determines if Codex can read or write in the directory and what files the agent can access.

如果您不熟悉编码代理,请从默认权限开始。默认情况下保持严格的审批和沙箱,然后在需求明确后仅放宽受信任的存储库或特定工作流程的权限。

请注意,CLI、IDE 和 Codex app 均共享相同的配置层。在示例配置页面上了解更多信息。

尽早为您的真实环境配置 Codex。许多质量问题实际上都是设置问题,例如错误的工作目录、缺少写入权限、错误的模型默认值或缺少工具和连接器。

通过测试和审查提高可靠性

不要停止要求 Codex 进行更改。要求它在需要时创建测试,运行相关检查,确认结果,并在接受之前审查工作。

Codex can do this loop for you, but only if it knows what “good” looks like. That guidance can come from either the prompt or AGENTS.md.

这可以包括:

为变更编写或更新测试

运行正确的测试套件

检查 lint、格式或类型检查

确认最终行为符合请求

检查差异是否存在错误、回归或风险模式

切换 Codex app 中的差异面板以直接在本地查看更改。单击特定行可提供反馈,该反馈将作为上下文提供给下一个 Codex 回合。

这里一个有用的选项是斜杠命令 /review,它为您提供了几种审查代码的方法:

针对 PR-style 审核的基础分支进行审核

审查未提交的更改

审查提交

使用自定义审核说明

如果您和您的团队拥有 code_review.md 文件并从 AGENTS.md 引用它,则 Codex 也可以在审核期间遵循该指南。对于希望审查行为在存储库和贡献者之间保持一致的团队来说,这是一个强大的模式。

Codex shouldn’t just generate code. With the right instructions, it can also help test it, check it, and review it.

如果您使用 GitHub Cloud,则可以设置 Codex 来为您的 PR 运行代码审查。在 OpenAI,Codex 审核了 100% 的 PR。您可以启用自动审核或在 @Codex 时让 Codex 进行反应性审核。

使用 MCP 作为外部上下文

当上下文 Codex 需要位于存储库之外时,请使用 MCP。它允许 Codex 连接到您已经使用的工具和系统,因此您不必不断将实时信息复制并粘贴到提示中。

Model Context Protocol 或 MCP 是用于将 Codex 连接到外部工具和系统的开放标准。

在以下情况下使用 MCP:

所需的上下文位于存储库之外

数据经常变化

您希望 Codex 使用工具而不是依赖粘贴的指令

您需要跨用户或项目的可重复集成

Codex supports both STDIO and Streamable HTTP servers with OAuth.

在 Codex App 中,前往“设置”→“MCP 服务器”以查看自定义和推荐的服务器。通常,Codex 可以帮助您安装所需的服务器。您所需要做的就是询问。您还可以在 CLI 中使用 codex mcp add 命令来添加自定义服务器及其名称、URL 和其他详细信息。

仅当工具解锁真正的工作流程时才添加工具。不要一开始就为您使用的每个工具接线。从一两个工具开始,这些工具可以清楚地消除您经常使用的手动循环,然后从那里进行扩展。

将可重复的工作转化为技能

一旦工作流程变得可重复,请停止依赖长提示或重复的 back-and-forth。使用 技能 将指令打包在 SKILL.md 文件中,上下文和支持逻辑 Codex 应一致应用。 技能 适用于 CLI、IDE 扩展和 Codex app。

让每项技能只适用于一项工作。从 2 到 3 个具体用例开始,定义清晰的输入和输出,并编写描述,以便说明该技能的作用以及何时使用它。包括用户实际会说的触发短语类型。

不要试图预先涵盖所有边缘情况。从一项代表性任务开始,让它顺利运行,然后将该工作流程转化为一项技能,并从那里开始改进。仅当脚本或额外资产提高可靠性时才包含它们。

一个好的经验法则:如果您不断重复使用相同的提示或纠正相同的工作流程,它可能应该成为一项技能。

技能对于重复性工作特别有用,例如:

日志分类

起草发行说明

根据清单进行公关审查

迁移规划

遥测或事件摘要

标准调试流程

$skill-creator 技能是开始构建技能第一个版本的最佳位置。迭代时将第一个版本保留在本地。当准备好广泛共享时,将其打包为 插件 。技能最重要的部分之一是描述。它应该说明该技能的作用以及何时使用它。

个人技能存储在 $HOME/.agents/skills 中,共享团队技能可以签入存储库内的 .agents/skills 中。这对于新队友的入职特别有帮助。

使用自动化进行重复工作

一旦工作流程稳定,您可以安排 Codex 在后台为您运行它。在 Codex app 中, 自动化 允许您为重复任务选择项目、提示、节奏和执行环境。

一旦任务变得重复,您可以在 Codex app 的“自动化”选项卡中创建自动化。您可以选择它在哪个项目中运行、它运行的提示(您可以调用技能)以及它将运行的节奏。您还可以选择自动化是在专用 git 工作树中运行还是在本地环境中运行。了解有关 git 工作树的更多信息。

好的候选人包括:

总结最近的提交

扫描可能的错误

起草发行说明

检查 CI 故障

制作站立摘要

按计划运行可重复的分析工作流程

一个有用的规则是技能定义方法,自动化定义时间表。如果工作流程仍然需要大量指导,请首先将其转变为技能。一旦可以预测,自动化就会成为力量倍增器。

使用自动化进行反思和维护,而不仅仅是执行。查看最近的会话,总结重复的摩擦,并随着时间的推移改进提示、说明或工作流程设置。

使用会话控制组织 long-running 工作

Codex sessions aren’t just chat history. They’re working threads that accumulate context, decisions, and actions over time, so managing them well has a big impact on quality.

Codex app UI 使线程管理变得最简单,因为您可以固定线程并创建工作树。如果您使用 CLI,这些 斜线命令 特别有用:

/experimental 切换实验性功能并添加到您的 config.toml

/resume 恢复保存的对话

/fork 创建一个新线程,同时保留原始记录

/compact 当线程变得很长并且您想要早期上下文的摘要版本时。请注意,Codex 会自动为您压缩对话

/agent 当您运行并行代理并希望在活动代理线程之间切换时

/theme 选择语法突出显示主题

/apps 直接在 Codex 中使用 ChatGPT 应用程序

/status 检查当前会话状态

每个连贯的工作单元保留一个线程。如果工作仍然是同一问题的一部分,那么留在同一个线程中通常会更好,因为它保留了推理线索。仅当工作真正分支时才进行分叉。

使用 Codex 的 子代理 工作流程从主线程卸载有界工作。让主代理专注于核心问题,并使用 子代理 执行探索、测试或分类等任务。

常见错误

首次使用 Codex 时要避免的一些常见错误:

使用持久规则重载提示,而不是将它们移至 AGENTS.md 或技能中

不提供有关如何最好地运行构建和测试命令的详细信息,不让代理看到其工作

跳过 multi-step 和复杂任务的规划

在了解工作流程之前,先授予 Codex 对计算机的完全权限

在不使用 git worktrees 的情况下在同一文件上运行实时线程

在手动执行可靠之前将重复执行的任务转变为自动化

将 Codex 视为您必须逐步观看的东西,而不是与您自己的工作并行使用它

每个项目使用一个线程,而不是每个任务一个线程。随着时间的推移,这会导致上下文臃肿和更糟糕的结果

站内延伸阅读