Notes · Field note ·
988 re-prompts: why my agent loop needed brakes
A plugin that keeps agents working is only useful if it can tell work from motion.
Agent sessions stop when nobody types "continue". I wrote a plugin that notices when a session goes idle with work still on its to-do list and sends the next prompt itself. The rule was simple: never stop while there's actionable work.
What happened
On September 15 it re-prompted one lane 988 times, 39 seconds apart, with the same to-do text. Two other lanes got 690 and 488. All of it was blocked work that could not move.
The cause was one character position. A blocked item read like "E1 ... BLOCKED: ...", and my check only looked for the word BLOCKED at the start of the line.
The fix
- Never disarm, but back off: after two stalls, wait 5 minutes; after five, wait 30.
- Reset the count only on real progress: a commit, a change in the next to-do, or a change in the task's progress record.
- Bookkeeping doesn't count. One lane was re-prompted 22 times because every turn appended a sync event that looked like progress.
- Every backoff decision writes a receipt, so the next surprise is visible.
Activity is not progress. Count what moved, not what was written.