指令复述(首尾各说一遍)
在长提示里,把关键约束在开头与结尾各出现一次,内容完全一致,用来提高约束遵守率。中间夹着几百字资料时,模型对结尾附近的指令更敏感,首尾呼应能明显减少格式跑偏。使用边界也很明确:只复述硬约束(输出格式、必须项、禁忌项),不复述全部要求。
基本信息
| 适用 | 长提示(含大段资料或示例)中的格式与硬约束 |
|---|---|
| 复述范围 | 只复述硬约束,措辞必须与开头完全一致 |
| 位置 | 提示开头 + 数据区之后、输入之前 |
| 注意 | 措辞不一致等于引入第三种解读 |
典型使用场景
- 长文档摘要:结尾重申只输出 JSON 且字段固定
- 批量抽取:在长输入之后重申必填字段与缺失写法
- 多轮对话收尾:重申本轮的输出格式要求
- 代码生成:重申语言版本与不得引入外部依赖
- 审核类任务:重申禁止输出原文未提及的信息
首尾复述示例
首尾复述示例
# 开头
输出必须是一个 JSON 对象,含 3 个字段:
title / risk / action
# 中间:几百字的资料正文
<doc>……</doc>
# 结尾(措辞与开头一致)
再次确认输出要求:仅输出一个 JSON 对象,
字段为 title / risk / action,不要输出任何其他文字。复述要点与边界
| 项目 | 做法 | 反例 |
|---|---|---|
| 复述对象 | 格式、必填字段、禁忌项 | 把全部业务规则再抄一遍 |
| 措辞 | 与开头逐字一致 | 开头说必填,结尾说尽量包含 |
| 位置 | 数据区之后、输入之前 | 夹在资料段落中间被淹没 |
| 成本 | 提示变长,短提示收益低于成本 | 20 行的短提示里也做首尾复述 |
复述只是提高遵守率的概率手段,不是保证。关键字段仍要在程序侧做校验,把「模型可能不听」当成常态来设计。
复述措辞必须一致。开头写「必须是 JSON」、结尾写「尽量用 JSON」时,模型会随机取一个执行,反而比只写一遍更不稳定。