最后核验:2026-10-23
先看结论
官方的态度很明确:Codex 已经足够强,提示不完美也能用,但在大型代码库或高风险任务里,清晰的提示能让结果更可靠。官方给的默认写法是在提示里包含四样东西:
- Goal(目标):你要改什么、做什么。
- Context(上下文):哪些文件、目录、文档、示例或报错相关。可以用
@提及具体文件。 - Constraints(约束):要遵守的规范、架构、安全要求或约定。
- Done when(完成标准):做到什么程度算完成,例如测试通过、行为改变、bug 不再复现。
这样 Codex 更不容易跑偏,少做假设,产出也更容易审。任务复杂或说不清时,先规划再动手。内容整理自 OpenAI 官方文档,核验日期 2026-10-23;界面与命令以你当前版本为准。
四要素逐个说
目标:写结果,不只写动作。 官方 Prompting 页的建议是从你想要的结果开始,而不是罗列一长串步骤;只有当过程本身重要时才描述过程,否则给 Codex 留出自己搜索、比较和调整的空间。
上下文:只给会改变结果的信息。 指出哪些文件、目录、文档、示例或报错重要,并用 @ 提及文件。官方在 Prompting 页还提醒:只加真正有关的来源,并说明想从每个来源里拿到什么。
约束:写会造成真实麻烦的那一两条。 比如“保持现有行为不变”“不要新增生产依赖”“不要改公开接口”。官方在 Prompting 页的说法是,约束只关注最重要的一两条,不需要控制它的每一步。
完成标准:让它能自己验证。 这是新手最容易漏的一条。写上测试要通过、某个行为要变化、某个 bug 要不再复现,Codex 才知道什么时候该停、该检查什么。
差版到好版
官方长任务文档(Long-running work)里有一个现成例子,正好覆盖了其中三项。先看一个新手常写的差版(编者示例):
把这个项目改成 TypeScript。
再看官方文档里的写法:
Migrate this codebase from JavaScript to TypeScript. Preserve existing behavior,
compile in strict mode without explicit `any` types, and make the full test suite pass.
对照四要素:
- 目标:把代码库从 JavaScript 迁到 TypeScript。
- 约束:保持现有行为;在严格模式下编译,不使用显式
any。 - 完成标准:完整测试套件通过。
- 上下文:这个例子没写。真实任务里应补上,例如用
@指出先动哪个目录、哪些模块有特殊约定(编者补充)。
官方在这页的说法是:目标要写得让 Codex 能验证自己的进度,适用时包含结果、约束、验证三样。
一个可复用的模板
官方只给出四要素,没有规定固定格式。下面是编者整理的起步模板,按需删减:
目标:……(要改什么、做出什么结果)
上下文:@相关文件或目录;相关文档、示例或报错信息
约束:必须遵守的规范、架构或安全要求;不要碰的部分
完成标准:测试通过 / 行为变化 / bug 不再复现
如果每次都要写同样的约束,那就不该放在提示里:官方把“把长期规则塞进提示词”列为新手常见错误,应该移到 AGENTS.md 或 Skill,详见Codex 新手常见的 8 个错误和AGENTS.md 怎么写才有用。
先规划,再动手
任务复杂、含糊或不好描述时,让 Codex 先规划。官方列了三种做法:
- Plan mode:对多数用户最简单有效。Codex 会先收集上下文、问澄清问题,再形成方案。用
/plan或Shift+Tab切换。 - 让 Codex 采访你:你有个大致想法但不知道怎么描述时,让它先提问,挑战你的假设,把模糊的想法变成具体的东西再写代码。
PLANS.md模板:更进阶的长任务,可以配置 Codex 遵循PLANS.md或执行计划模板,官方 Cookbook 有执行计划指南。
目标本身不清楚时,官方长任务文档的建议也一样:先用 /plan,让它采访你、找出约束,再把结果整理成带可衡量成功标准的目标,然后用 /goal 启动。长任务的写法见Codex 长任务工作流。
推理强度怎么配
官方的起步建议:使用账号和客户端里可用的 GPT-6.1 Sol,推理强度先用客户端默认值;GPT-6 Luna 从 High 起步,GPT-6 Astra 从 Light(配置里写 low)起步,再根据任务和结果调整:
- Low:更快、边界清晰的任务。
- Medium 或 High:更复杂的改动或调试。
- Extra High:长时间、需要智能体能力、重推理的任务。
模型本身的取舍见GPT-6 系列怎么选;可用模型和强度以官方 Models 页为准。
提交之后:引导与排队
Codex 工作时你仍可以继续发消息,有两种行为:
- 引导(steer):把消息加入当前这一轮,用来改方向、补漏掉的细节、给新信息。
- 排队(queue):把消息留给下一轮,用于要等当前工作做完再处理的跟进。
在 Codex CLI 里,工作中按 Enter 是引导,按 Tab 是排队。桌面应用里在 Settings > General > Follow-up behavior 选默认行为,排队的消息会显示在输入框上方,可以编辑、重排、发送或删除。
第一条提示不需要完美:看结果,再提出具体的改动,比如“开头更直接,保留证据,把建议移到背景之前”。官方对重要工作的建议是让它做一次最终检查,例如确认每个行动项都有负责人和日期,然后你自己复查再使用。
想少打字: 官方提到桌面应用里可以用语音听写来描述任务,而不是手打。
检查清单
提交前花十秒确认:
- 目标写的是结果,而不只是动作吗?
- 相关文件、目录或报错,用
@或文字给到了吗? - 约束是最重要的那一两条,而且不是每次都重复的长期规则吗?
- 完成标准能被 Codex 自己验证吗(测试、行为、复现)?
- 任务复杂或含糊时,先
/plan了吗?
和 ChatGPT 对话里的提示有什么不同
官方 Prompting 页面面向 ChatGPT 对话与 Work 的通用提示,建议包含的是目标、上下文、输出、边界四项,并强调只用有帮助的部分、没有固定格式。Codex 的最佳实践把后两项换成了更偏工程的约束与完成标准。思路一致:说清做什么、依据什么、怎样算好。
面向日常对话和办公的写法,见ChatGPT 提示词怎么写才好用。
官方来源
- Best practices:四要素、推理强度、规划、
AGENTS.md、测试与审查 - Prompting:从结果开始、边界、引导与排队、语音听写
- Long-running work:目标由结果、约束、验证组成,以及上面的 TypeScript 迁移示例
- Models:可用模型与推理强度
- Execution plans guide:
PLANS.md与执行计划
核验日期:2026-10-23。