AI 编程的 Prompt 工程:我整理了 20 条铁律,每条都是踩坑换来的
先讲一个翻车故事
去年 11 月,我让 Cursor Agent 做一个"简单的"功能:给后台管理系统加上导出 Excel 的功能。
我的 prompt:"给用户列表加上导出 Excel 的功能。"
结果:Agent 安装了一个全新的 Excel 库(项目里本来就有),创建了一套独立的导出模块(和现有架构不兼容),导出的表头是英文(系统是中文的)。
修了三个小时。
后来我把 prompt 改成:"在 src/utils 下创建 export_excel.py,复用项目已有的 openpyxl 库。导出函数接收 User 列表,生成中文表头的 Excel 文件。在 /admin/users 页面添加导出按钮,点击调用 /api/users/export 接口。"
结果:10 分钟搞定。
这两个 prompt 的差距,就是这篇文章要讲的。
为什么 Prompt 工程对 AI 编程至关重要
AI 编程和 AI 聊天不一样。
聊天错了,笑笑就过了。代码错了,可能引入 bug、破坏架构、浪费几小时的 debug 时间。
AI 编程的 prompt 需要三个层次的精确:
1. 做什么:功能描述
2. 在哪做:文件路径、模块位置
3. 怎么做到位:技术约束、验收标准
20 条铁律
第一层:明确边界
铁律 1:指定文件路径
别说"改一下用户模块",说"改 src/modules/user/service.py 的 create_user 函数"。
铁律 2:指定技术栈
别说"优化数据库查询",说"用 Prisma ORM 优化 users 表的查询,加上索引和分页"。
铁律 3:指定不要改什么
"只改 user 模块,不要动 order 和 payment 模块"。
铁律 4:指定输出格式
"返回 JSON 格式:{code: 0, data: [...], message: 'success'}"。
第二层:提供上下文
铁律 5:引用现有代码
"参考 src/utils/email.py 的 send_email 函数风格,写一个 send_sms 函数"。
铁律 6:说明业务逻辑
"VIP 用户免运费,普通用户满 99 免运费,不满 99 收 10 元"。
铁律 7:给出边界条件
"当用户未登录时返回 401,订单不存在返回 404,库存不足返回 400"。
铁律 8:给出示例
"输入:{user_id: 123, items: [{sku: 'A001', qty: 2}]},输出:{order_id: 456, total: 198}"。
第三层:验收标准
铁律 9:要求测试通过
"确保所有现有测试仍然通过,新功能需要 80% 以上的代码覆盖率"。
铁律 10:要求代码规范
"遵循 PEP 8,函数不超过 30 行,类不超过 200 行"。
铁律 11:要求错误处理
"每个 API 都要 try/except,返回统一的错误格式"。
铁律 12:要求日志
"关键操作加上 logger.info,错误加上 logger.error"。
第四层:控制 Agent 行为
铁律 13:先计划再执行
"先列出修改计划,确认后再改代码"。
铁律 14:限制修改范围
"只改这一个文件,不要动其他文件"。
铁律 15:要求 diff 审查
"改完后展示 diff,不要直接 commit"。
铁律 16:指定 Agent 模式
"用 Ask 模式分析问题,用 Agent 模式修改代码"。
第五层:迭代优化
铁律 17:单次一个任务
"只做用户认证,不要顺便改其他东西"。
铁律 18:失败时给方案
"如果改不了,告诉我为什么,给出替代方案"。
铁律 19:保留原有逻辑
"在现有代码基础上增量修改,不要重写整个文件"。
铁律 20:确认理解
"在开始之前,复述你对这个任务的理解"。
实战模板
把这 20 条压缩成一个实战模板:
## 任务
[一句话描述]
## 文件
- 修改:src/path/to/file.py(第 X-Y 行)
- 参考:src/path/to/reference.py
## 约束
- 技术栈:[框架/库/版本]
- 不修改:[排除的模块/文件]
- 代码规范:[具体规范]
## 输入输出
- 输入:{...}
- 输出:{code: 0, data: {...}}
## 验收
- [ ] 现有测试通过
- [ ] 新功能测试通过
- [ ] 错误处理完备
- [ ] 日志记录完整
## 步骤
1. 先分析,列出修改计划
2. 确认后执行修改
3. 展示 diff 供审查把这个模板存成 snippet,每次用的时候填空。效率提升明显。
最后
Prompt 工程不是玄学。它就是把"你在脑子里想的东西"写清楚。
你在脑子里想的越模糊,AI 的输出就越随机。你在脑子里想的越精确,AI 的输出就越靠谱。
所以每次 prompt 写不好,不是 AI 的问题——是你还没想清楚。
#Prompt工程 #AI编程 #Cursor #开发效率
读者评论 4