No.313
怎样写好一个 Prompt?有哪些基本原则?
一句话回答
把模型当成一个聪明但不了解情况的新同事,说清任务、背景、约束和输出格式。常用原则有:用分隔符或 XML 标签把指令和数据分开;给一两个示例;正面说明要做什么,而不只是说不要做什么;复杂任务让模型先分析再给结论。角色设定能帮助定调,但起决定作用的是具体要求;写完要用一批真实输入测试,根据结果迭代。
详细解析
说清四件事
| 要素 | 要回答的问题 | 例子 |
|---|---|---|
| 任务 | 要做什么,产出是什么 | 把用户评论分成好评、中评、差评 |
| 背景 | 为什么做、给谁看、有哪些相关信息 | 结果用于让客服优先处理差评 |
| 约束 | 范围、长度、语气,以及不能做的事 | 只根据评论内容判断,不要推测用户身份 |
| 输出格式 | 结构、字段、示例 | 只输出类别名,不要解释 |
约束最好附上原因。比如"回答会被语音朗读,所以不要使用列表和表格",模型理解了原因,遇到没写到的情况也能做出合理的判断。
常用原则
- 具体、可检查:把"简短一点""专业一点"换成"不超过 3 句话""使用规范术语,面向有经验的工程师"
- 分开指令和数据:用
"""、###或 XML 标签包住要处理的文章、用户消息,避免数据里的文字被当成指令,也方便在指令里指代("<article>中的文章")。这能减少误解,也能降低提示注入的风险,但不能完全防住,见 Prompt 注入 - 给示例:一个示例往往比一段描述更清楚,但示例要多样,否则模型会照抄,见 Few-shot 和思维链提示
- 正面描述:只说"别写得太技术化",模型不知道该写成什么样;说"用产品经理能听懂的话解释,术语第一次出现时用一句话说明"更有效
- 先分析再结论:模型从前往后生成,先写结论就用不上后面的分析。复杂判断要求先列依据、再给结论;输出 JSON 时把分析字段放在结论字段前面
- 给退路:允许回答"信息不足"或"不知道",减少编造,见 幻觉
- 角色只是辅助:"你是资深的法律顾问"能调整语气和关注点,但不能替代具体要求;"你是世界顶级专家"这类夸张的说法帮助不大
改写前后对比
改写前:
文本
帮我总结一下这篇文章,写得专业一点。
(文章内容)
问题:不知道给谁看、写多长、侧重什么,"专业"没法检查,文章和指令混在一起。
改写后:
Markdown
你在帮一个前端团队整理每周的技术阅读清单。读者是前端工程师,时间有限,只想知道这篇文章值不值得细读。
请阅读 <article> 标签中的文章,按下面的格式输出:
**一句话概括**:文章解决了什么问题。
**关键要点**:3~5 条,每条一句话,保留文中的技术名词和数据。
**是否值得细读**:值得 / 一般 / 不值得,并用一句话说明理由。
要求:
- 只根据文章内容总结,文章没提到的内容不要补充
- 文章和前端开发关系不大时,在"是否值得细读"中直接说明
<article>
{文章内容}
</article>
改写后,读者、用途、长度、格式和边界情况都明确了,输出可以直接贴进周报,也便于逐条检查。
写完之后:测试和迭代
- 准备一批真实输入,包括边界情况:超长、空内容、和任务无关的内容、夹带指令的内容
- 逐条看输出,把失败的情况归类后针对性地修改;每次只改一处,才能判断是哪处修改起了作用
- Prompt 和代码一样做版本管理,改动后跑回归测试,见 回归测试
面试官可能追问
Prompt 是不是写得越长、越详细越好?
不是。必要的背景和约束要写全,但无关的细节会分散注意力、增加成本,规则太多还可能互相冲突。判断标准是:删掉某段内容后效果有没有变差,没有变差就删掉。
XML 标签和 Markdown 分隔符哪个更好?
都可以,关键是边界清晰、全文统一。XML 标签有明确的开始和结束,可以按名字指代("根据 <contract> 中的条款"),也方便程序从输出中提取内容。有的厂商在文档里明确推荐用 XML 标签组织 Prompt。
用英文写 Prompt 会比中文效果好吗?
没有定论,取决于模型和任务。输入和输出都是中文时,用中文写指令更自然,也能避免模型在回答里中英混杂。拿不准就用同一批测试数据对比。
同一个 Prompt 换了模型,效果变差了,为什么?
不同模型的训练数据和偏好不同,对同一种写法的反应也不同,比如有的模型对格式要求更敏感,有的更容易过度执行某条规则。换模型要重新跑评测,针对失败的样本调整,不要依赖只对某个模型有效的技巧。
易错点
- 只写角色、不写具体要求
- 用"简洁""专业"这类模糊的词,代替可以检查的标准
- 指令和数据混在一起,数据里的话被模型当成指令执行
- 只拿一两个例子试过就上线
AI 模拟面试官
用自己的话回答,AI 对照参考答案打分、指出遗漏,再追问,最多 3 轮
登录后就可以和 AI 面试官对练,面试记录也会保存下来。登录
这道题你掌握了吗?
选一个最接近的状态,没掌握的题会出现在"我的进度 · 待复习"里。
学习记录暂存在本机浏览器。登录后自动同步到账号,换设备也能看到。