7.1 为什么"会问"比"问什么"更重要
新手最常掉的坑是:以为自己跟 Codex 的对话失败了,是 Codex 不够智能。
不是。90% 的"AI 不好用",本质是"问得不够好"。
让我用一个例子说明。同一个需求,两种问法,结果天差地别。
糟糕的问法:
帮我整理一下文件
Codex 一脸懵:哪个文件?什么意思的"整理"?整理到哪儿?什么标准?它要么反问你,要么自己脑补一个执行——结果大概率不是你想要的。
好的问法:
读取 ~/Downloads/ 里所有 PDF 文件,
按"账单 / 合同 / 学习资料 / 其他"四类分到对应子文件夹。
分类依据:文件名 + 文件内容前 500 字。
分不清的归到"其他",并在 unclassified.txt 里列出文件名让我手动确认。
完成后给我一份分类报告。
Codex 一看就明白:明确的目标、明确的输入、明确的分类规则、明确的兜底方案、明确的输出。它会高效执行,结果接近你的期望。
这就是"对话的艺术"。
7.2 四要素法
OpenAI 官方文档总结过一个 prompt 框架,叫"四要素法"。这是这本书最值得你抄下来的内容之一。
四要素
| 要素 | 含义 | 例子 |
|---|---|---|
| Goal(目标) | 你想要它做什么 / 想要的结果 | "整理我的下载文件夹" |
| Context(上下文) | 相关的文件、背景信息、历史 | "里面主要是 PDF 和图片,混着账单和学习资料" |
| Constraints(约束) | 限制、规范、不能做的事 | "不要删除任何文件;图片不要动" |
| Done When(完成标准) | 怎么算"完成了" | "每个文件有归属、生成报告、unclassified.txt 列出疑难" |
套用模板
[目标]
[上下文]
[约束]
[完成标准]
试一下:
[目标]
帮我整理 ~/Downloads/ 里的 PDF 文件,按用途分类。
[上下文]
里面大概有 200 个 PDF,混着账单、合同、电子书、PPT 讲义。
我用 macOS,文件都是 2024 年以来下载的。
[约束]
- 不要删除任何文件,只移动到子文件夹
- 子文件夹用中文名:账单、合同、学习资料、其他
- 移动前先检查目标位置是否有同名文件,有就跳过
[完成标准]
- 所有 PDF 都被移动到了某个子文件夹
- 生成 classification_report.md,包含每个文件的归属和理由
- unclassified.txt 列出所有归到"其他"的文件
这种 prompt 看起来啰嗦,但 Codex 看完一目了然,几乎不会出岔子。
7.3 什么时候要拆任务
不是所有任务都该一次性塞给 Codex。下面三种情况,强烈建议拆开:
情况 1:步骤多于 5 步的任务
比如"做一个完整的网站"——拆成"先设计页面结构 → 再做首页 → 再做关于页 → 再做联系表单 → 最后部署"。每步独立给 Codex 做、审核、再下一步。
情况 2:依赖前一步结果的任务
比如"先抓数据,再分析数据"——必须先确认抓到的数据格式对,再让它去分析。否则一旦第一步错了,后面全乱。
情况 3:第一次做的复杂任务
比如"用 Codex 做一个微信公众号自动回复机器人"——你自己都不确定步骤,让 Codex 一次做完风险太大。先让它列计划,你看,调整,再让它一步步执行。
让 Codex 自己拆任务
懒人技巧:让它自己拆。
我想做一个家庭账本网页,让我老婆和我都能用。
你先不要写代码,先列一个分阶段的计划,
每个阶段做什么、产出什么。
我看完确认后,我们再一起一步步做。
它会列一份清单,你审核,然后说:
好的,先做第一阶段:搭建基础页面框架。
这样既保证方向不偏,又把大任务拆成可控的小任务。
7.4 何时让 Codex 先列计划
OpenAI 的 Codex 内置了 "Plan Mode"(计划模式),适用场景:
- 任务复杂、步骤多
- 你自己也不太清楚怎么做
- 涉及多个文件 / 模块的修改
- 风险高,不容许试错
怎么触发 Plan Mode
桌面版有一个按钮叫 "Plan",点了之后 Codex 会先出方案再执行。
CLI 版可以直接说:
先制定一个计划,我审核后再执行。
或者用斜杠命令:
/plan
Plan Mode 的输出长什么样
Codex 会给你一份结构化的计划:
# 任务:家庭账本网页
## 阶段 1:需求确认(10 分钟)
- 询问:是否需要登录?
- 询问:数据存哪里(本地还是云端)?
- 询问:是否需要月度报表?
## 阶段 2:项目搭建(30 分钟)
- 用 Vite + React + Tailwind 搭骨架
- 配置 ESLint、Prettier
- 创建基础目录结构
## 阶段 3:核心功能(2 小时)
- 添加交易记录表单
- 交易列表展示
- 月度汇总
## 阶段 4:数据持久化(30 分钟)
- 用 LocalStorage 实现
- 添加导入/导出 JSON 功能
## 阶段 5:UI 优化与测试(1 小时)
- 响应式布局
- 在 Chrome、Safari、移动端测试
## 风险点
- 移动端体验需要单独适配
- 多人共用需要登录系统(暂未包含)
你审核:
阶段 1 的两个问题我先回答你:暂时不需要登录,数据存本地够了。 报表先不要月度的,要按"分类"和"时间范围"两种维度。
然后让它执行:
按调整后的计划,开始阶段 2。
7.5 上下文:让 Codex"看见"它需要看见的
Codex 不是全知全能的——它只能基于你给它的"上下文"做判断。上下文不够,它就猜;猜得不准,结果就崩。
提供上下文的几种方式
方式 1:直接说
我用的是 Mac,Python 版本 3.12,已经装了 pandas 和 numpy。
方式 2:让它读文件
读一下 README.md 了解项目背景,再开始。
方式 3:让它先扫描目录
先 ls 看一下当前目录有什么,再决定怎么做。
方式 4:贴报错或截图
我跑你之前写的脚本,报这个错(贴 traceback)。
方式 5:用 AGENTS.md 持久化上下文(第十章详讲)
把项目的常用上下文写到 AGENTS.md 里,每次会话自动加载。
上下文也不是越多越好
塞太多上下文,反而让 Codex 抓不住重点。原则是:
- 必要的,全说——技术栈、版本、目录结构
- 可有可无的,少说——历史曲折、个人感受
- 能让它自己读的,让它读——不要把整个文件粘贴到对话框,让它读文件
7.6 图片输入:截图比描述更准
人靠语言描述很啰嗦,但截图一目了然。Codex 桌面版和 CLI 都支持图片输入。
桌面版
直接拖图片到对话框(macOS 要按 Shift),或者粘贴剪贴板里的截图。
CLI
codex -i screenshot.png "看一下这个报错怎么修"
或者在交互模式里:
> 我截了图,路径是 ~/Desktop/error.png,看一下
截图的几种典型用法
用法 1:终端报错
跑了你给的命令报错了,截图给你看,怎么改?
Codex 直接读屏幕里的报错文字,不用你手抄。
用法 2:UI 设计参考
我想做的页面参考这张图(design.png),帮我用 React + Tailwind 实现。
它能识别布局、颜色、字体、间距。
用法 3:数据图表识别
这是一份柱状图截图(chart.png),把数据提取成 CSV。
它能 OCR 出图里的数字。
用法 4:手写笔记数字化
我的会议笔记是手写的(notes.jpg),整理成结构化文档。
它能识别中文手写体。
7.7 斜杠命令:会用的人比不会用的快 3 倍
Codex CLI 和桌面版都支持"斜杠命令"——以 / 开头的快捷指令。掌握十来个,效率翻倍。
高频斜杠命令清单
| 命令 | 作用 | 何时用 |
|---|---|---|
/new |
开新会话 | 切换主题时 |
/model |
切换模型 | 简单任务用快的,难任务用强的 |
/approvals |
切换权限模式 | 第八章详讲 |
/memory |
查看 / 编辑长期记忆 | 第九章详讲 |
/resume |
恢复上次会话 | 关掉了想继续 |
/plan |
强制进入计划模式 | 复杂任务先规划 |
/clear |
清屏 | 屏幕乱了 |
/exit |
退出 | 不用了 |
/help |
显示所有命令 | 忘了用啥 |
/agents |
查看 / 编辑 AGENTS.md | 第十章详讲 |
/skills |
列出可用的 Skills | 第十一章详讲 |
/model 怎么选
Codex 提供多个模型,常见的:
| 模型 | 特点 | 适用 |
|---|---|---|
| GPT-5.4 | 通用最强、慢一点 | 复杂任务、需要推理 |
| GPT-5.4 Medium | 平衡 | 大多数日常任务 |
| GPT-5.4 Fast | 快 | 简单问答、补全 |
| GPT-5.3-Codex | 专门优化代码 | 写代码、改 bug |
| GPT-5.3-Codex High | 深度推理代码 | 大重构、复杂调试 |
简单建议:
- 日常用 GPT-5.4 Medium
- 写代码切 GPT-5.3-Codex
- 卡壳了用 High(注意有限额)
7.8 三个让回答质量提升的小技巧
技巧 1:要求"先解释,再执行"
你打算怎么做这件事?先告诉我思路,我同意了再动手。
这一招避免它跑偏。
技巧 2:要求"分步走"
这个任务分几个步骤?每步完成后停下来确认,再继续下一步。
这一招特别适合不可逆操作(删除、迁移、改数据库)。
技巧 3:要求"给我反例"
做完后告诉我有什么风险、什么场景可能失败、什么我没考虑到。
这一招让 Codex 当"魔鬼代言人",帮你查漏补缺。
7.9 对话失败时怎么办
有时候 Codex 就是不按你想的来。试这几招:
招 1:用更具体的语言
把"整理一下"改成"按 XX 标准移动到 XX 文件夹"。
招 2:给反例
不是这样的格式,我要的是:[贴一个例子]
招 3:让它自己反思
你刚才的输出有什么问题?换一种思路再试。
招 4:换模型
如果 GPT-5.4 Fast 答得很糟,切到 GPT-5.4 / GPT-5.3-Codex High。
招 5:开新会话
有时候会话被前面的"错误上下文"污染,开新会话从头来比纠结半天有效。
/new
7.10 三个反模式(千万别这么用)
反模式 1:把 Codex 当搜索引擎
什么是 React? ← 这种问题应该问 ChatGPT 或 Google
Codex 是 Agent,不是百科。问知识性问题,让它"动手"才是浪费。
反模式 2:让它"自由发挥"
帮我做一个网站
没有任何约束,它做出来 99% 不是你想要的。永远给约束。
反模式 3:一开始就用"全通过"
/approvals -> auto-approve all
新手用全通过 = 给一个不熟的人你家所有钥匙。默认权限就好,等你信任它了再开放。
7.11 本章小结
- 90% 的"AI 不好用"是 prompt 不好用
- 四要素法:Goal / Context / Constraints / Done When
- 复杂任务先拆 / 先列计划
- 上下文用截图、文件、AGENTS.md 比纯描述更准
- 高频斜杠命令背下来:
/new/model/plan/approvals/memory - 失败了换语言、给反例、换模型、开新会话
- 千万别"自由发挥",永远给约束
下一章讲怎么管"权限"——既要让 Codex 干活,又不能让它误删你的文件。第八章 · 安全模式与权限。