如何编写有效的提示词
2026/5/29大约 3 分钟
如何编写有效的提示词
本指南是 提示词工程 的实战手册,帮助你在日常工作中系统性地编写高质量提示词。
明确指令的四个要素
一个结构清晰的提示词通常包含以下部分:
- 角色设定:告诉 LLM 以什么身份回答。例如"你是一位有 10 年经验的 Python 后端工程师",这会约束输出的风格和深度。
- 任务描述:用一句话说明你要什么,避免冗长铺垫。
- 输出格式:明确指定返回格式——Markdown 表格、JSON、分步骤列表等。不指定格式,LLM 会自行选择,结果往往不可控。
- 约束条件:限定范围、字数、语言、禁止事项。约束越具体,输出越可预测。
Few-shot 示例的选取原则
思维链(Chain of Thought) 证明示例的质量直接决定输出质量。选取原则:
- 代表性:示例应覆盖目标任务的典型场景,而非边缘情况
- 多样性:避免所有示例结构雷同,至少包含 2-3 种不同的输入模式
- 正确性:示例中的答案必须经过验证,错误示例会诱导 LLM 重复错误
- 数量控制:2-5 个示例即可,过多会占用上下文窗口且边际收益递减
复杂任务的拆解方法
面对复杂任务时,不要试图用一个提示词解决所有问题:
- 分步拆解:将大任务拆为 3-5 个子步骤,每步一个提示词,前一步的输出作为后一步的输入
- 先大纲后细节:先让 LLM 生成大纲或方案,确认方向后再逐段展开
- 角色分工:不同子任务使用不同的角色设定,例如"架构师"负责设计,"代码审查者"负责审查
常见反模式
| 反模式 | 问题 | 改进方法 |
|---|---|---|
| 模糊指令 | "帮我写个好的方案" | 明确方案的目标读者、篇幅、必须包含的章节 |
| 过度约束 | 同时限定风格、字数、结构、用词 | 只约束影响质量的关键维度 |
| 忽略边界情况 | 未说明空输入、异常值的处理方式 | 添加"如果输入为空则返回..."的兜底指令 |
| 假设上下文 | 认为 LLM 知道你的项目背景 | 每次提供必要的上下文信息 |
代码生成提示的最佳实践
- 指定语言和版本("Python 3.12"而非"Python")
- 提供函数签名和类型注解作为约束
- 要求包含错误处理和类型提示
- 明确说明是否需要注释、测试和文档字符串
- 对于大型功能,先让 LLM 生成接口设计,再逐个实现
调试和迭代提示的方法
提示词很少一次完美,系统化的迭代方法:
- 记录基线:保存初始提示词和输出,作为改进的参照
- 单变量调整:每次只改一个要素(角色、格式、约束),观察效果变化
- 分析失败模式:输出不对时,判断是理解问题(指令不清)还是能力问题(任务过难)
- 建立提示词库:将验证有效的提示词归类存档,团队共享复用