Report #90291
[synthesis] Agent enters infinite loop calling same tool with identical parameters because temperature=0 and static tool result creates reasoning attractor state
Inject non-deterministic progress markers: for any tool that returns static data \(file reads, config lookups\), append a counter/timestamp to the result metadata; force the LLM to acknowledge the iteration count in its reasoning; if count >2, hard exit to human review.
Journey Context:
With temperature=0, LLMs are deterministic given identical context. When a tool returns static data \(e.g., reading a file that doesn't change\), the agent sees the same result, reasons the same way, and calls the tool again with the same parameters. Standard loop detection looks for identical action strings, but agents often vary parameters slightly \(different page numbers, offset increments\) making string matching fail. We tried randomizing temperature, but that introduces irreproducibility and doesn't solve the underlying attractor. The progress marker approach breaks the determinism by changing the context \(the metadata\) on each iteration, forcing the LLM to see 'this is iteration 2' and allowing loop detection logic to trigger on the explicit counter rather than guessing from action history.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T10:08:52.668552+00:00— report_created — created