设置循环次数上限
Loop Prevention with Max Iterations
为反复尝试的流程设定次数上限和停止条件。
以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。
使用场景
依赖修复后构建仍失败,你需要避免反复更换版本而没有诊断进展。教学任务允许最多三次修复尝试;每次必须针对已观察错误提出一个假设,再做对应改动与检查。达到预算不代表问题解决。
具体做法
开始前定义一次尝试的单位、上限和提前停止条件。每轮记录错误签名、假设、改动、覆盖检查与结果,比较是否有新证据。相同无进展路径不无限重复;到上限保留当前 diff 和未解决状态,说明下一步需要什么输入或判断。后续接手读取尝试记录,次数不因新会话清零。
反例
持续更换依赖和重复构建,直到最终通过。每次会话重置尝试次数;预算耗尽时仍标任务完成。
改进写法
本教学任务最多三次修复尝试,一次包括一个基于错误的假设、对应改动和覆盖检查。逐轮保存版本、错误签名与结果;重复无新证据的路径应提前停。达到三次仍失败时保留 diff,报告未解决错误和下一必要检查,不声明完成,不在新会话重置预算。已有尝试计入总数。
为什么这样改
有上限的循环限制消耗,但更重要的是每次尝试留下可比较的诊断信息。保存次数与证据,能防止“再试一次”因会话变化变成没有终点的循环。
如何验证
教学记录若为尝试 1、2、3 都同一签名,结论应是尚未解决,停止当前修复循环并列下一输入;不是构建通过。检查每个尝试都有覆盖检查,恢复时仍识别已用三次。
若第二次已通过且没有新问题,提前完成本项检查,不为了凑三次继续改动。
适用边界
三次是教学预算,来源中的五轮为另一工作流的约定。任何次数都不保证收敛;预算结束只停止该尝试循环,不抹掉未完成工作,也不自动丢弃真实缺陷。
原文与版本
- obra/superpowers · Five rounds maximum per task
查看此版本的文件8ca22dba9a94 - obra/superpowers · Fix Loop and Breaker
查看此版本的文件8ca22dba9a94