让大模型自己反思推理过程,效果可能不如把推理阶段彻底隔离开
让大模型自己反思推理过程,效果可能不如把推理阶段彻底隔离开

让大模型"自我反思"是最近两年很常见的做法。模型先给出一个答案,然后让它检查自己的推理过程,看有没有漏洞,再修正输出。思路听起来合理——既然模型能推理,那它也能审视自己的推理。
但实际使用中,这个方案的效果并不稳定。有时候模型确实能从自我修正中获益,更多时候它的修正只是把对的改成了错的。问题出在哪里?
自我反思的困境
一篇来自arXiv的新论文指出了这个问题的核心:自我反思的瓶颈不在模型能力,而在信息流的结构。当模型在同一个上下文窗口里完成"推理-检查-修正"的全过程时,不同阶段的信息会混合在一起。模型在修正阶段还能看到自己之前推理的完整上下文,这反而让它不容易真正跳出原来思路的框架。
论文将这个现象描述为:"要求模型明确陈述自己推导的规则,本身起不到太大作用。真正重要的是在推理阶段之间建立结构化的隔离。"
这个判断和很多开发者的实际体验一致。你在调试一个Agent任务时,如果让模型自己分析自己的错误,它经常给出的修正建议和原来的思路没有本质区别。不是因为模型不够聪明,而是因为它"站在原来的位置看问题"。
Hourglass Reasoning:四个阶段,一个瓶颈
论文提出的方案叫Hourglass Reasoning(沙漏推理),核心思路是把推理过程拆成四个严格隔离的阶段,阶段之间只允许传递压缩后的符号状态。
四个阶段的逻辑链是这样的:
第一阶段,归纳(Induction)。模型根据提供的样例,归纳出一个模式描述和一个临时的工作结构。这个阶段产生的只是中间表示,不涉及具体输出。
第二阶段,演绎(Deduction)。第一阶段的工作结构被丢弃,只保留模式描述。模型基于这个描述推导出明确的推理规则。关键操作是"丢弃中间结构"——前一阶段的工作痕迹不会带过来。
第三阶段,实现(Implementer)。基于规则和模式描述生成具体的产物,比如代码或逻辑表达。
第四阶段,修正(Refiner)。如果结果不理想,修正步骤只能修改规则和模式描述,然后重新从实现阶段开始。不能跳过、不能混入前一阶段的中间信息。
这意味着信息的流动被刻意压缩了:从归纳到演绎,丢弃了临时结构;从演绎到实现,只传递规则和描述;从实现到修正,反馈的是结果,不是过程。
实验结果表明这个设计是有效的。在ARC-AGI-2(一个视觉抽象推理基准)上,沙漏推理相比迭代式自我修正,准确率提升了14个百分点。在ChipBench(Verilog硬件合成)上,使用GPT-5.5时合成准确率从31%提升到了58%,几乎翻倍。
对Agent开发的启示
消融实验进一步确认,提升来自阶段之间信息隔离的质量,而不是提示词的写法或符号表达的形式。论文的原话写得很清楚:"驱动推理能力的,是信息如何流经推理过程,而不是用来表达推理的语言。"
这个结论对当前Agent开发有直接参考价值。很多Agent框架允许模型在一个大上下文里自由调用工具、观察结果、修正策略。这种灵活性的代价是信息混合——模型的下一步决策会受到它自己上一步输出的影响,有些影响是有益的,有些则会让它陷入局部最优。
一个更结构化的做法可能是:在Agent的不同操作阶段之间建立明确的上下文隔离,每个阶段的输入是上一阶段的"结论摘要",而不是原始输出。这和软件工程中"模块间通过接口通信,不共享内部状态"的思路类似。
关于维基框架
维基框架关注企业应用开发中的长期维护问题。在实际项目中,业务系统往往同时涉及权限、微服务、接口协议、部署环境等复杂因素,因此我们希望提供一套更容易扩展和维护的基础框架。
- 官网:https://framewiki.com
- Gitee:https://gitee.com/wiki-framework
- GitHub:https://github.com/wiki-framework
- 示例项目:https://gitee.com/cdkjframework/framewiki-example
- 📄 许可证:MulanPSL-2.0(木兰宽松许可证,第2版)