prompt优化 || 为什么你的Prompt总翻车?因为模型不会读心术(内带优化关键点列表)
网上一搜prompt优化,全是一样的内容,都是说角色、表达清晰等等。这些基础都人人皆知,但是到底如何优化,还是很少人讲。所以这里把自己的经验总结一下。
之前写过的两篇总结更详细,背景也写上了:
如何让大模型“听懂”你的潜规则?一份Prompt优化实战笔记-CSDN博客https://blog.csdn.net/weixin_51159944/article/details/162792160?spm=1001.2014.3001.5501
PROMPT设计中的“边界感”:从一句规则说到三层对齐-CSDN博客https://blog.csdn.net/weixin_51159944/article/details/162367405?spm=1001.2014.3001.5501
一、结构先行:用层级标题搭建信息骨架
原则:将Prompt按信息层级拆分为独立模块,每个模块单一职责。
通用结构模板:
开头段(角色定位 + 核心任务 + 底线约束)### 核心任务 ### 关键要求 / 边界说明 ### 必须覆盖的全部子项 ### 生成维度 + 维度定义 + 示例 ### 多样性要求 ### 硬性禁止项 ### 输出格式 ### 正确示例 + 反面示例 ### 输出前强制校验
要点:示例紧跟定义之后,正反成对出现,末尾放自检清单。
二、关键信息前置:按注意力权重分配位置
模型对不同位置的注意力不同——开头最重,结尾次之,中间最轻。按此原则分配信息:
| 位置 | 权重 | 放置内容 |
|---|---|---|
| 开头第一句 | 最高 | 角色定位 + 核心约束 |
| 段落首句 | 高 | 该段核心要求 |
| 列表第一条 | 中高 | 最易忽略的约束 |
| 示例区域 | 中 | 格式参照、正反对比 |
| 自检清单 | 中 | 输出前校验 |
| 段落中部 | 低 | 辅助说明 |
技巧:最怕模型忘的放开头;最怕模型违反的用符号标记(如🔴、✗、✅);禁止项用“反例+后果”强化。
三、正反示例成对出现
原则:正确示例告诉模型“要什么”,反面示例告诉模型“不能怎么做”。两者边界清晰,模型才能准确识别约束范围。
正例展示能力,反例界定边界——二者缺一不可。
反例需覆盖的典型错误类型:
偏离核心意图
边界不明确/跨域
过度泛化
表达生硬/不符合使用习惯
四、抽象规则必须配具象约束
规则如果只停留在抽象层面,容易被模型过度执行或错误执行。
核心方法:每条抽象规则都应配套明确的底线约束和边界条件,包括“不能省略到什么程度”“必须保留哪些要素”等。
规则本身没问题,但缺少兜底条件时,模型会按最省力的方式执行。
五、增加自检机制
模型生成长文本时容易“写着写着就忘了”。在Prompt末尾嵌入强制自检列表,要求模型逐条确认后再输出。
自检维度清单:
| 检查维度 | 核心问题 |
|---|---|
| 数量 | 每个子项是否都生成了全部维度的内容? |
| 全覆盖 | 所有子项是否都被覆盖? |
| 强相关 | 每条内容与对应子项是否匹配? |
| 维度符合 | 每条内容是否满足所标记维度的要求? |
| 边界明确 | 是否清晰声明所属边界,无跨域、无省略? |
| 发散度 | 内容与示例是否有足够差异? |
| 格式规范 | 是否存在违禁符号? |
| 核心意图 | 是否清晰表达核心意图? |
| 泛化程度 | 是否符合使用习惯,不过度泛化? |
技巧:用[ ]格式给模型“待办清单”暗示;每一条均可量化判断,避免模糊表述;自检放在输出前,形成“校验→输出”闭环。
六、示例按场景注入
多场景任务中,示例分开维护,每个场景仅注入当前场景的示例。避免模型看到A场景示例却在生成B场景时模仿A的结构或句式。
七、规则直接写明,不依赖示例推导
需要模型做到的事直接写成规则,而非指望它从示例里“悟出来”。示例是辅助理解规则的工具,不是替代规则本身。
八、迭代验证的方法论
每次发现模型输出偏差,按以下流程处理:
定位异常输出——发现不符合预期的结果
追溯根因——分析是“规则没写清楚”还是“写了但没被遵守”
补充约束——前者改表述使其更明确,后者加强约束位置或加符号标记
验证修复——用新Prompt重新生成,确认问题不复现
核心逻辑一句话总结
Prompt优化的本质是“预期对齐”——把你脑子里的隐含假设逐条转化为模型可执行的显式规则。边界越清晰,输出越稳定。
Prompt优化关键点清单⭐
模块化结构:用标题拆分信息,每个模块只讲一件事,末尾放自检清单。
关键信息前置:开头第一句锁定角色+核心约束,段落首句放核心要求——模型注意力开头最重,中间最轻。
正反示例成对出现:正例给“要什么”,反例给“不要什么”——边界由错误定义,而非由正确定义。
抽象规则配具象约束:规则说明“可以做什么”,底线说明“不能做到什么程度”——两者缺一不可。
输出前自检:让模型逐条确认数量、全覆盖、强相关、边界明确、发散度等维度后再输出,形成“校验→输出”闭环。
规则直接写明,不依赖示例推导:示例是辅助理解,不是替代规则——需要模型做的事,直接写成白纸黑字。
迭代验证闭环:发现异常→追溯根因(没写清楚还是写了没听)→补充约束→验证修复,循环迭代。