Your ReAct Agent Is Wasting 90% of Its Retries — Here’s How to Stop It
This title could be clearer and more informative.Try out Clickbait Shieldfor free (5 uses left this month).
A benchmark analysis of ReAct-style LLM agents reveals that 90.8% of retries are wasted on hallucinated tool names — errors that can never succeed. The root cause is a single architectural pattern: letting the model choose tool names at runtime via TOOLS.get(). Three structural fixes are proposed: (1) classify errors before retrying so non-retryable errors skip the retry budget entirely, (2) replace global retry counters with per-tool circuit breakers, and (3) move tool routing into deterministic Python code so hallucinated tool names become structurally impossible. The controlled workflow achieves 0% wasted retries, 3× lower step variance, and 100% task success versus 89.5% for naive ReAct. Sensitivity analysis shows that even at a 5% hallucination rate, over half of retries are still wasted while success rate appears healthy — a form of dashboard blindness that masks degrading retry capacity.
Table of contents
TL;DRThe Law This Article Is Built OnThe One Line Silently Draining Your Retry BudgetThe Benchmark SetupWhat the Benchmark FoundThe Three Structural FixesThe Sensitivity Analysis: The 5% Result Is the Alarming OneLatency: What the CDF Reveals That Averages HideThree Diagnostic Questions for Your System Right NowImplementing This in Your Stack TodayBenchmark LimitationsFull MetricsReferencesDisclosureSort: