4bf74bf5ac
四个纯函数各管一档,顺序本身由主循环走:预算准入(A)、提示词规模(B)、连续解析失败(D)、 完成判定(G)。加一个不可变的三计数结构。 三处刻意钉死的边界,都写了测试: - 两个预算上界同时耗尽报步数那一个。理由是兼容性不是原理(某下游按步数耗尽的占比告警), 正因为推不出来才必须被测试钉死。 - 预算「达到即拦」用 >=,提示词规模「超过才拦」用 >。两处不是同一件事:一个数已经用掉 几个额度,一个量一个东西有多大。 - 环境故障排在完成判定前面;未执行不做完成判定;完成信号恒为假不是故障(初稿在这里 写错过,会让某个下游的每一次运行都在第一步终止)。 不 import polyloop.tools,五个逻辑层模块互不 import,所以「这次执行的工具被标了完成标记吗」 由调用方查好注册表传一个布尔进来。