Skip to content

提示工程

编写高效的 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. 请求解释

在修改代码之前,先解释:

  1. 当前代码在做什么
  2. 存在什么问题
  3. 你打算如何修复

## 常见场景

### 代码审查

请审查这个 Pull Request,关注:

  1. 代码正确性
  2. 潜在 bug
  3. 性能问题
  4. 安全漏洞

请用温和、建设性的语气提出建议。


### Debugging

这个测试失败了:[粘贴错误信息]

相关代码:[粘贴代码]

请帮我:

  1. 分析失败原因
  2. 提供修复方案
  3. 解释为什么这个修复有效

### 重构

重构这个函数以提高可读性:

  • 提取复杂逻辑到独立函数
  • 使用更有意义的变量名
  • 减少嵌套层级
  • 添加必要的注释

保持现有功能不变。


### 生成测试

为这个函数编写单元测试:

  • 覆盖正常情况
  • 覆盖边界情况
  • 覆盖错误情况

使用 Jest 框架,遵循项目的测试风格。


## 避免的陷阱

| 陷阱 | 改进 |
|------|------|
| 太模糊 | 具体说明需求 |
| 缺少上下文 | 提供相关代码和背景 |
| 多重问题 | 一次问一个问题 |
| 假设太多 | 明确说明前提条件 |

## 提示模板

### Bug 修复

[Bug 描述]

错误信息: [粘贴错误日志]

复现步骤:

  1. [步骤 1]
  2. [步骤 2]

相关代码: [粘贴代码]

请找出原因并修复。


### 新功能开发

需求:[功能描述]

输入:[输入数据/参数] 输出:[期望结果]

约束:

  • [约束 1]
  • [约束 2]

请先设计接口,再实现功能。


### 代码解释

请解释这段代码在做什么:

[粘贴代码]

请说明:

  1. 整体功能
  2. 关键逻辑
  3. 潜在的改进点

## 下一步

- [记忆功能](/memories) - 让 Codex 记住上下文
- [规则](/rules) - 定义行为准则
- [最佳实践](/learn/best-practices) - 更多技巧

基于 OpenAI Codex 官方文档翻译