Re-reading

prompt提示词2026年6月7日4

RE2(Re-reading,Xu et al., 2023)的做法非常简单:让模型“再读一遍题”。具体实现通常是:

  • 在提示词中加入一句触发语:Read the question again:(或中文“再读一遍问题:”)
  • 并把问题重复一次(有时还会把关键信息/条件再呈现一遍)

直觉上,它相当于让模型进行一次“二次注意力分配”:第一次读题得到大意,第二次读题更容易抓住约束、边界条件、否定词、单位、例外情况,从而减少“漏条件/看错题”。


1) 适用场景(什么时候用 RE2 最划算)

RE2 常见在这些容易“读错/漏条件”的任务上起作用:

  • 复杂推理题:多条件、嵌套条件、需要分类讨论
  • 含否定/例外:not/except/至少/至多/不超过/必须不……
  • 数学/逻辑/文字题:单位换算、边界条件、隐含前提
  • 长问题:题干很长、信息密度大、容易遗漏细节
  • 代码理解题:题目描述中有版本、输入输出格式、限制条件

它的成本极低:几乎只增加一点 token,但可能带来更稳定的“条件覆盖”。


2) Prompt 写法模板(可复制)

模板 A:最简 RE2(单轮)

{原问题}

Read the question again:
{原问题}

模板 B:RE2 + 条件核对(更稳,仍然很短)

你将回答一个复杂问题。
第一步:再读一遍问题,列出所有关键条件/约束(不要求解)。
第二步:基于这些条件给出最终答案。

问题:{原问题}

Read the question again:
{原问题}

工程建议:如果你不希望模型输出“列条件”的中间过程,可以要求它把条件核对放在“内部草稿”,只输出最终答案;或者用结构化字段输出条件清单(便于你做自动评测)。

模板 C:RE2 + 结构化输出(适合做题/评测)

问题:{原问题}
Read the question again: {原问题}

请按 JSON 输出:
{
"constraints": ["..."],
"answer": "..."
}


3) 应用场景例子 1:含“except/不包括”的选择题

原题:

以下哪一项不属于哺乳动物?A 海豚 B 蝙蝠 C 企鹅 D 猫

不加 RE2 的常见错误:模型可能直接按“哪个是哺乳动物”去选,忽略“不属于”。

RE2 Prompt:

以下哪一项不属于哺乳动物?A 海豚 B 蝙蝠 C 企鹅 D 猫
Read the question again: 以下哪一项不属于哺乳动物?A 海豚 B 蝙蝠 C 企鹅 D 猫

更稳的输出倾向:强调“不属于”,答案 C 企鹅,并解释其为鸟类。


4) 应用场景例子 2:数学题里“至少/至多/边界条件”

原题:

一个数 x 满足 0 < x ≤ 1。求 1/x 的取值范围。

模型容易漏掉等号或边界。

RE2 + 条件核对 Prompt:

第一步再读题并列出约束;第二步回答。
问题:一个数 x 满足 0 < x ≤ 1。求 1/x 的取值范围。
Read the question again: 一个数 x 满足 0 < x ≤ 1。求 1/x 的取值范围。

典型更稳的回答:

  • 约束:x 正且不超过 1;当 x=1 时 1/x=1;当 x→0+ 时 1/x→+∞
  • 范围:[1, +∞)

5) 应用场景例子 3:工程需求里容易漏“禁止项/必须项”

原始需求:

写一个接口:支持按 userId 查询订单;必须分页;不能返回用户手机号;默认按创建时间倒序;超时 200ms 以内。

模型经常漏“不能返回手机号”或“默认倒序”。

RE2 Prompt:

写一个接口设计说明:支持按 userId 查询订单;必须分页;不能返回用户手机号;默认按创建时间倒序;超时 200ms 以内。
Read the question again: 写一个接口设计说明:支持按 userId 查询订单;必须分页;不能返回用户手机号;默认按创建时间倒序;超时 200ms 以内。

输出:接口路径、请求参数、响应字段(明确不含手机号)、分页方案、默认排序、性能/缓存建议。

通常会明显减少“遗漏约束”。


6) RE2 的组合用法(常见搭配)

  • RE2 + RaR:先“再读一遍题”,再“改写成更明确的问题并回答”。适合题干长且含糊的情况。
  • RE2 + Self-check(自检清单):第二遍读题后,输出前对照检查“每个条件是否满足”。

7) 注意事项

  • RE2 不是万能:它主要减少“看漏条件”的错误,对需要外部知识或深层推理的提升有限。
  • 问题太长时,重复会增加 token 成本;可改成“重复关键段落/关键约束”而不是全文重复。
  • 如果你在做自动评测,建议把“条件清单 constraints”结构化输出,便于你程序比对是否漏项。

如果你给我一个你现在觉得“模型老是读错/漏条件”的真实题目或需求(贴一段即可),我可以帮你把它改写成 RE2 最省 token 的版本 和 RE2+核对清单的更稳版本,并说明为什么能减少错误。