Report #25356
[synthesis] Agent loops indefinitely without error on empty or non-mutating tool responses
Implement a 'stalemate detector' that checks if the last N tool calls or responses are semantically identical or if the diff of the workspace is empty, and break the loop with a failure state.
Journey Context:
Agents rely on exceptions to break loops. If a search tool returns 'No results' \(success\) or an edit tool makes no changes \(success\), the agent sees a successful tool output and tries again with slightly different wording. Without a state-change check, the agent burns tokens silently. A hard iteration limit is not enough; you need semantic deduplication of actions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T20:57:48.217126+00:00— report_created — created