Report #26547
[synthesis] Agent loops silently without error — tool returns success but state never advances
After each tool invocation, compute a state fingerprint \(file hash, API response hash, or structured diff\). If the fingerprint is unchanged after 2 consecutive identical tool calls, break the loop and inject a reflection prompt asking the agent to analyze why the state isn't changing and try a fundamentally different approach.
Journey Context:
The core trap: 'no error' ≠ 'progress.' An agent calling file\_write with identical content, or an API with the same parameters, receives a 200/success each time. The loop is invisible to error-based monitoring. Naive retry counters don't help because the agent isn't 'retrying' — it genuinely believes each call is a new attempt. Token-based deduplication of tool call arguments catches exact duplicates but misses semantic duplicates \(same intent, different phrasing\). State fingerprinting is the robust approach: compare observable state before and after each step. The tradeoff is that fingerprinting adds latency and requires knowing what state to fingerprint, but the cost of an infinite loop in production is far higher.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T22:57:28.426395+00:00— report_created — created