Prompt 常见错误 Top 10

开发者在 Prompt Engineering 中最常犯的 10 个错误,以及如何避免和修复它们。

错误 1:指令模糊不具体

问题:使用「写得好一点」「详细一些」等模糊指令。

错误示例:帮我改进这段代码。

正确做法:明确指定改进的维度和标准。

正确示例:请从以下三个方面优化这段 Python 代码:1) 将时间复杂度从 O(n^2) 降低到 O(n log n);2) 添加类型注解;3) 添加错误处理。保持函数签名不变。

错误 2:一次塞入太多任务

问题:在一个 Prompt 中要求模型同时完成多个不相关的任务。

错误示例:分析这篇文章的情感,翻译成英文,然后写一个摘要,再给出 SEO 建议。

正确做法:将复杂任务拆分为多个独立的 Prompt,使用 Prompt Chaining。每个 Prompt 聚焦一个任务,质量更高。

错误 3:忽略输出格式定义

问题:不指定输出格式,导致每次调用返回不同结构的结果,程序无法稳定解析。

错误示例:分析这个用户评论。

正确做法:明确定义输出的 JSON Schema 或格式模板,包括字段名、类型和边界情况处理。

错误 4:Few-shot 示例质量差

问题:示例不具代表性、格式不一致、或包含错误。

常见问题:
- 所有示例都是同一类别
- 示例之间格式不统一
- 示例中包含事实错误

正确做法:确保示例覆盖不同类别和边界情况,格式完全一致,内容准确无误。

错误 5:不考虑模型差异

问题:将为一个模型优化的 Prompt 直接用于另一个模型,不做适配。

常见问题:
- GPT 的 Prompt 直接用于 Claude(缺少 XML 标签)
- 忽略不同模型的上下文窗口限制
- 不了解模型特有的功能(如 Claude 的 prefill)

正确做法:了解目标模型的特性,针对性地调整 Prompt 格式和策略。

错误 6:System Prompt 过长

问题:将所有可能的指令都塞入 System Prompt,导致关键指令被稀释。

正确做法:System Prompt 保持精简(500-1000 字),只包含核心行为定义。将详细的任务指令放在 User 消息中。使用优先级标注重要程度。

错误 7:忽略温度参数

问题:所有任务使用默认温度,不根据场景调整。

正确做法:
- 数据提取、代码生成:temperature = 0
- 通用对话:temperature = 0.3-0.5
- 创意写作:temperature = 0.7-0.9

不同任务需要不同的确定性水平。

错误 8:不做 Prompt 测试

问题:写完 Prompt 就上线,不进行系统化测试。

正确做法:
- 构建至少 30-50 条测试用例
- 覆盖正常情况和边界情况
- 使用自动化评估(LLM-as-Judge)
- 记录每次修改的效果变化

错误 9:忽略安全防护

问题:不考虑 Prompt 注入和越狱攻击,直接将用户输入拼接到 Prompt 中。

正确做法:
- 将用户输入用特殊标记包裹
- 添加注入检测逻辑
- 设置行为边界和身份锚定
- 定期进行红队测试

错误 10:不做成本优化

问题:不关注 Token 使用量,导致 API 成本失控。

正确做法:
- 监控每次调用的 Token 消耗
- 使用缓存减少重复调用
- 根据任务复杂度选择合适的模型
- 优化 Prompt 长度,去除冗余内容
- 使用 Prompt 压缩技术