Replies: 1 comment
|
Intended, and it's the most important thing to understand about what LoopGain is telling you. There are two different terminal states that both look like "it stopped":
That distinction is the whole design. LoopGain decides when to stop; you decide whether the answer is good enough. It has no way to see the second thing. So check the result, don't just trust termination: result = lg.result
if result.outcome == "converged" and result.best_error <= my_threshold:
ship(result.best_output)
else:
escalate(result.best_output, result.best_error) # plateau, oscillation, or divergence
The sharper version of this problem, which the docs are explicit about: if your verifier reports zero errors on output that's actually wrong, LoopGain trusts it and stops with a clean Pair it with the strongest verifier you can afford: executable tests over a sampled subset, a schema check over a vibe, a held-out check the loop didn't optimize against. |
Intended, and it's the most important thing to understand about what LoopGain is telling you.
There are two different terminal states that both look like "it stopped":
TARGET_MET— observed error hit or dropped belowtarget_error. This is a clean success. The loop finished the job.STALLING(surfacing asoutcome == "stalled") — the error stopped moving in a statistically detectable way, two readings in a row, while still above your target. LoopGain is saying more iterations won't help, which is not the same as the answer is good. You've plateaued at, say, 2 failing tests and burning 15 more iterations won't clear them.That distinction is the whole design. LoopGain decides when to stop; y…