Report #11960
[gotcha] Agent enters infinite tool-call loop when tool results lack clear completion or failure signals
Design every tool result to include explicit status signals: a 'status' field \(success\|partial\|error\), a 'hasMore' boolean for paginated data, and a concise human-readable summary of what was found or done. Set a hard max-iteration limit \(e.g., 10 tool calls per subtask\) in the agent loop as a safety net.
Journey Context:
When a tool returns raw data without context, the model may not recognize the result answers its question and calls the same or a similar tool again with slightly different parameters. This is especially common with search/query tools — the model gets results, doesn't find exactly what it expected, reformulates the query, and loops indefinitely. The root cause is that the model lacks a clear termination signal. Adding structured status fields gives the model a definitive signal to stop or pivot. The max-iteration limit is a defense-in-depth measure for cases where the model can't self-correct even with status signals. Without both, an agent can burn through an entire API rate limit in a single loop.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T14:45:17.247206+00:00— report_created — created