Codex: Codex 提示词最佳实践

最后更新:2026-08-31

Prompt 是你与 Codex 沟通的桥梁。好的 Prompt 让 Codex 一次到位,差的 Prompt 则需要反复修正。

📋 前置知识:了解 Codex 基本操作

1. 你将学到


2. 核心原则

(1) CLEAR 原则

原则 说明 示例
Context 提供上下文 "参考 auth.py 的风格"
Limit 限定范围 "只修改 src/api/ 目录"
Example 给出示例 "输出格式参照 types.ts"
Assert 包含验证 "确保 npm test 通过"
Reason 说明原因 "因为需要支持 Unicode"

(2) 好与差的对比

TEXT 📖 仅展示
# 差的 Prompt
"帮我写个函数"

# 好的 Prompt
"在 src/utils/date.ts 中创建 formatDate 函数,
输入 Date 对象和 locale 字符串,
输出本地化日期字符串,
参考同文件中 formatNumber 的风格,
包含空值处理和单元测试。"

3. 结构化描述

(1) 标准结构

TEXT 📖 仅展示
[目标]:要完成什么
[范围]:修改哪些文件/目录
[参考]:参考哪些已有代码
[约束]:需要遵循什么规则
[验证]:如何验证完成

▶ 示例 1: Alice 的结构化 Prompt

TEXT 📖 仅展示
[目标] 添加用户密码重置功能
[范围] src/auth/reset.ts, src/api/reset.ts
[参考] src/auth/login.ts 的代码风格
[约束] 使用 bcrypt 哈希,令牌有效期 1 小时
[验证] npm test -- --grep "reset" 全部通过

(2) 分步指令

对于复杂任务,分步描述:

TEXT 📖 仅展示
第一步:创建 PasswordReset 模型,包含 token、expires_at、user_id 字段
完成后告诉我,我会确认再继续。

第二步:实现 POST /api/auth/reset-request 端点
第三步:实现 POST /api/auth/reset-confirm 端点
第四步:为所有端点写集成测试

4. 上下文提供技巧

(1) 精准引用

TEXT 📖 仅展示
# 好的做法:引用具体文件
> 参考 src/models/user.ts 的 User 类型定义,添加 Profile 类型

# 差的做法:笼统描述
> 参考已有的模型,添加新的

(2) 附件补充

TEXT 📖 仅展示
# 在 App 中附加图片
> 参照截图中的 UI 布局,实现这个页面

# 引用错误日志
> cat error.log 的输出如下:
> TypeError: Cannot read property 'id' of undefined
> 修复这个错误

(3) 环境说明

TEXT 📖 仅展示
> 项目使用 Next.js 14 + App Router + TypeScript
> 数据库用 Prisma ORM + PostgreSQL
> 测试框架是 Vitest
> 为新页面添加 CRUD 功能

5. 验证指令

(1) 测试验证

TEXT 📖 仅展示
# 要求运行测试
> 确保 npm test 通过
> 运行 pytest,修复所有失败用例
> 测试覆盖率不低于 80%

(2) 类型检查

TEXT 📖 仅展示
> 确保 tsc --noEmit 无错误
> 添加完整的 TypeScript 类型注解

(3) Lint 检查

TEXT 📖 仅展示
> 确保 eslint 无错误
> 修复所有 lint 警告

▶ 示例 2: Bob 的完整验证

TEXT 📖 仅展示
为 orders API 添加分页功能:
1. 修改 GET /api/orders 端点
2. 支持 page 和 pageSize 查询参数
3. 返回分页元数据
4. 确保 tsc --noEmit 无错误
5. 确保 eslint 无错误
6. npm test 全部通过
7. 新增测试覆盖分页逻辑

6. 常见 Prompt 模板

(1) 修复 Bug

TEXT 📖 仅展示
修复 <文件> 中的 <Bug描述>。
错误信息:<粘贴错误日志>
期望行为:<正确行为>
确保 <验证命令> 通过。

(2) 添加功能

TEXT 📖 仅展示
在 <模块> 添加 <功能>。
参考 <已有文件> 的代码风格。
包含输入验证和错误处理。
编写单元测试,确保 <验证命令> 通过。

(3) 重构代码

TEXT 📖 仅展示
将 <旧实现> 重构为 <新实现>。
保持对外接口不变。
确保所有现有测试通过。
添加新测试覆盖新实现。

(4) 代码审查

TEXT 📖 仅展示
审查 <文件/PR>,关注:
1. 安全漏洞(SQL注入、XSS等)
2. 性能问题(N+1查询、内存泄漏等)
3. 代码风格一致性
4. 错误处理完整性
5. 测试覆盖率

(5) 文档生成

TEXT 📖 仅展示
为 <模块/API> 生成文档:
- API 接口文档(Markdown 格式)
- 使用示例(包含 curl 命令)
- 参数说明表格
- 错误码列表

7. 高级技巧

(1) 角色设定

TEXT 📖 仅展示
你是一个资深安全工程师,专注于 Web 安全。
审查以下代码中的安全漏洞,按 OWASP Top 10 分类。

(2) 输出格式控制

TEXT 📖 仅展示
按以下格式输出:
1. 每个问题一行
2. 格式:[严重程度] 文件:行号 - 问题描述
3. 严重程度:🔴严重 🟡中等 🟢低
4. 最后给出修复优先级排序

(3) 约束条件

TEXT 📖 仅展示
只使用项目已有的依赖,不要安装新包。
不要修改 .env 文件。
不要删除现有测试。
所有新函数必须有 TypeScript 类型注解。

❓ 常见问题

Q Prompt 用中文还是英文?
A Codex 支持多语言,但英文效果通常更好。复杂任务建议用英文,简单任务中文即可。
Q Prompt 太长会不会影响效果?
A 不会。详细描述比简短描述效果好。但要注意不要超出上下文窗口。
Q 可以一次性给多个任务吗?
A 可以,但建议按优先级排列,或明确分步执行。一次性太多任务可能导致 Codex 遗漏。
Q 如何让 Codex 遵循特定代码风格?
A 在 AGENTS.md 中定义风格规则,或在 Prompt 中引用风格参考文件。也可以引用 ESLint/Prettier 配置。
Q Prompt 中可以引用 URL 吗?
A Codex 无法直接访问 URL,但你可以把 URL 中的关键内容复制粘贴到 Prompt 中。

📖 小节


📝 作业

  1. 基础题(难度⭐):用 CLEAR 原则写 3 个不同场景的 Prompt。
  2. 进阶题(难度⭐⭐):创建你自己的 Prompt 模板库,覆盖 5 种常见场景。
  3. 挑战题(难度⭐⭐⭐):对比同一个任务用"好的 Prompt"和"差的 Prompt"的执行效果差异,写一份分析报告。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏