Step-Back Prompting
Step-Back Prompting(Zheng et al., 2023c)是一种对 Chain-of-Thought(CoT,链式思维)的小改造:在进入具体推理之前,先“后退一步”提出并回答一个更抽象、更通用的高层问题(关于相关概念、原则、定理、约束、解题策略等),再回到原问题做具体推理与求解。
它的目的通常是:
- 先把适用的知识/原则激活出来(避免一上来就被题目细节带偏)
- 建立一个正确的解题框架,降低局部贪心推理导致的错误
- 对复杂问题提供“全局规划”,再做细节计算/推导
1) 它和普通 CoT 的区别
- 普通 CoT:直接从题目细节开始逐步推理。
- Step-Back:先问一个“泛化层”的问题(类似“这题考什么原则/用什么方法更合适?”),得到高层答案后,再用该答案指导后续具体推理。
你可以把它理解为:
先写“解题大纲/方法论”,再填“具体步骤与计算”。
2) 典型 Prompt 结构(模板)
模板 A:单轮 Step-Back(一个提示里完成)
你将使用 Step-Back Prompting。
- 先回答一个更高层的通用问题:为解决该问题需要哪些关键概念/定理/原则?(只给要点)
- 然后回到原问题,基于这些要点进行推理并给出答案。
原问题:{question}
模板 B:更明确的“两段输出”(工程上更可控)
Step-back(高层问题):这类问题一般应使用哪些概念、公式或策略?有哪些常见陷阱?
Answer Step-back:(要点列表)Now solve the original problem:{question}
Solution:…
Final answer:…
模板 C:和检索/RAG 结合(先确定要查什么)
Step-back:先列出为回答该问题需要确认的关键背景事实/定义/公式(作为检索要点)。
然后对这些要点进行检索与核实。
最后基于核实后的要点回答原问题。
3) 例子 1:数学/逻辑题(先激活方法再算)
原题:
已知函数在区间上单调递增,求不等式解集……
Step-back 高层问题可能是:
- 单调性与不等式等价变形规则是什么?
- 何时可以对两边同增函数取反函数?
- 常见陷阱:定义域、端点、是否严格单调等。
先把这些规则列出来,再进行具体代入与分类讨论,通常更不容易漏条件。
4) 例子 2:阅读理解/长文问答(先建“信息需求框架”)
原问题:
根据这篇文章,作者为什么反对某政策?请概括三点。
Step-back 问:
- “反对原因”通常来自哪些类型证据?(经济成本、伦理、执行难度、外部性、历史案例)
- 应该如何从文中定位“因果/论证”句子?(because/therefore/argues that)
然后再回原文找对应段落做三点概括,会更稳、更全。
5) 例子 3:编程/系统设计(先定原则再落地)
原问题:
设计一个高并发秒杀系统,要求防超卖、可扩展。
Step-back 问:
- 这类问题关键原则是什么?(削峰填谷、幂等、限流、库存一致性策略、读写分离、缓存与消息队列、监控与降级)
- 常见坑:缓存击穿、分布式锁粒度、事务边界、重复下单。
把“原则清单”先定下来,再给具体架构(Redis 预扣库存 + MQ 异步下单 + 数据库最终一致性等),回答通常更结构化、更少漏项。
6) 为什么它可能有效(直观解释)
很多推理错误不是“不会算”,而是:
- 一开始选错方法/忽略关键定理
- 被题目细节牵着走,没建立全局约束
- 没意识到边界条件/常见陷阱
Step-Back 通过先“抽象化”把相关知识与策略激活,相当于先做一次“规划”,再执行。
7) 使用注意事项
- 高层问题要“泛而有用”:太泛会变成空话(例如“请认真思考”没用);太具体又退化成直接解题。
- 控制长度:高层要点 5-8 条通常够用,否则会啰嗦。
- 适合复杂题:简单题可能没收益,反而增加 token。
- 可与其他方法组合:
- Step-Back + RE2:先再读题防漏条件,再提炼高层原则
- Step-Back + Self-Ask:先定需要哪些概念,再拆子问题
- Step-Back + RaR:先把问题改写清楚,再提炼原则
如果你给我一个具体题目/任务(数学题、长文问答、系统设计都行),我可以示范一份“Step-back 高层问题 + 高层要点 + 回到原题的解答”的完整输出,并帮你把提示词做成可复用模板。