提示工程
编写高效的 Codex 提示
概述
提示工程是与 Codex 有效沟通的艺术。好的提示可以获得更准确、更有用的回答。
基本原则
1. 明确具体
不好: "修复这个 bug"
好: "修复 login.js 第 42 行的空指针异常,当用户名为空时抛出错误"
2. 提供上下文
不好: "这个函数有问题"
好: "在 src/auth.js 的 validateUser 函数中,当数据库返回 null 时没有处理,导致后续代码抛出异常"
3. 指定输出格式
示例:
请用以下格式回答:
1. 问题描述
2. 根本原因
3. 修复方案
4. 修改后的代码提示结构
推荐结构
[角色/背景] + [任务描述] + [约束条件] + [输出要求]示例
你是一个资深 Python 开发者。请审查这个 Django 视图函数,
找出潜在的安全问题,并提供修复建议。
只关注 SQL 注入和 XSS 漏洞,忽略性能问题。
用表格形式列出问题和对应的修复代码。高级技巧
1. 分步思考
让 Codex 展示思考过程:
请一步步分析这个问题:
1. 首先理解代码的当前行为
2. 然后找出与预期行为的差异
3. 最后提出修复方案2. 提供示例
按照以下格式编写文档:
## 函数名
简要描述
### 参数
- param1: 类型 - 说明
### 返回值
类型 - 说明
### 示例
```python
# 代码示例
### 3. 设置约束- 只修改必要的代码,保持其他部分不变
- 不要添加新的依赖
- 保持现有的代码风格
- 所有修改必须向后兼容
### 4. 请求解释在修改代码之前,先解释:
- 当前代码在做什么
- 存在什么问题
- 你打算如何修复
## 常见场景
### 代码审查请审查这个 Pull Request,关注:
- 代码正确性
- 潜在 bug
- 性能问题
- 安全漏洞
请用温和、建设性的语气提出建议。
### Debugging这个测试失败了:[粘贴错误信息]
相关代码:[粘贴代码]
请帮我:
- 分析失败原因
- 提供修复方案
- 解释为什么这个修复有效
### 重构重构这个函数以提高可读性:
- 提取复杂逻辑到独立函数
- 使用更有意义的变量名
- 减少嵌套层级
- 添加必要的注释
保持现有功能不变。
### 生成测试为这个函数编写单元测试:
- 覆盖正常情况
- 覆盖边界情况
- 覆盖错误情况
使用 Jest 框架,遵循项目的测试风格。
## 避免的陷阱
| 陷阱 | 改进 |
|------|------|
| 太模糊 | 具体说明需求 |
| 缺少上下文 | 提供相关代码和背景 |
| 多重问题 | 一次问一个问题 |
| 假设太多 | 明确说明前提条件 |
## 提示模板
### Bug 修复[Bug 描述]
错误信息: [粘贴错误日志]
复现步骤:
- [步骤 1]
- [步骤 2]
相关代码: [粘贴代码]
请找出原因并修复。
### 新功能开发需求:[功能描述]
输入:[输入数据/参数] 输出:[期望结果]
约束:
- [约束 1]
- [约束 2]
请先设计接口,再实现功能。
### 代码解释请解释这段代码在做什么:
[粘贴代码]
请说明:
- 整体功能
- 关键逻辑
- 潜在的改进点
## 下一步
- [记忆功能](/memories) - 让 Codex 记住上下文
- [规则](/rules) - 定义行为准则
- [最佳实践](/learn/best-practices) - 更多技巧