Skip to article
← BACK TO DISPATCH
A deep circular groove worn into a flat surface with three phantom geometric stamp outlines — circle, square, triangle — hovering at distinct arc positions, all echoing the same worn circle below.

Your loop detector is measuring the wrong thing

It was 2am and my agent had burned 40k tokens reverting the same file four times. The logs scrolled, new patches, new reasoning, new diffs. It looked busy. It was getting nowhere.

The part that got under my skin: my loop detector said everything was fine. It hashed each action to a string and halted if the same string showed up twice. Across seven attempts it never fired once, and it was technically correct, which is the worst kind of correct. "Change the timeout from 30 to 60." "Set the timeout to 60 seconds." "Apply the same value at the call site." Three different strings, three different hashes, one unchanged bug.

My detector measured whether the words moved. The only thing I cared about was whether the situation moved. Those are not the same question, and I had been treating them as if they were.

The fix is to fingerprint what the agent is actually doing, not how it described it: the kind of action, the files it touched, the state of the world, the error with the line numbers stripped out. Hash that. It holds still under rephrasing and only moves when something real moves. And if the state of the world has not changed between two actions, nothing the agent did had any effect. That is not a hint. It is proof.

If your agent can spend 40k tokens looking productive while standing still, your loop detector is measuring the wrong thing, and it will keep lying to you politely until you teach it to look underneath the words.

Full writeup: Semantic Loop Detection

Get the next dispatch when it drops.

SUBSCRIBE FOR THE NEXT DROP MORE ARTICLES