做完再检查
大约 1 分钟
做完再检查
Reflection 的角色怎么分?
一个角色负责产出,一个角色负责挑错,然后产出者按意见改。两个角色可以是两次调用,甚至两个提示,不要在同一次生成里既写答案又宣布自己检查过了。
检查要有对象。代码任务看的是能否满足需求和测试,问答任务看的是有没有依据、有没有漏约束。只说「请再想想」不会稳定变好。
上一轮的问题怎么留下来?
放进记忆,而不是指望模型还记得自己刚才被批评过。每轮至少留下:原始任务、上一版产出、具体反馈。下一轮生成时把这三样一起给它。
反馈要指到位置,例如「这一步用了未返回的数字」,而不是「不够好」。否则修订只会换一种说法。
什么时候不值得再查一轮?
检查本身也是一次或多次模型调用,还会把轨迹拉长。出现这些情况就停:
- 任务一步就能验证,例如计算结果可以靠程序判断对错,不必再请模型发表意见。
- 反馈连续两轮没有新信息,说明检查提示本身是空的。
- 延迟和费用已经超过把结果交给人看的成本。
- 检查者与生成者共享同一个错误前提,例如两个人都没看见工具结果,第二轮只会互相确认幻觉。
Reflection 适合产出可以对照标准修订的任务。它不是所有循环的默认最后一步。