Report #7326
[agent\_craft] Agents retry failed tool calls with identical parameters causing infinite loops
Implement 'Error Memory': maintain a structured error log in context listing \`\(tool\_name, params\_hash, error\_message, attempt\_count\)\` and prompt the agent to check this log before any tool call; prohibit retries if \`attempt\_count > 0\` unless params have substantively changed
Journey Context:
Standard agent loops lack episodic memory of failures. When a tool fails \(e.g., 'FileNotFound'\), the agent receives the error, 'thinks' about it, and often issues the exact same call again, especially if the error message is vague or the agent hallucinates that the situation has changed. Common mistake is implementing simple 'while error: retry' loops without state tracking. Alternatives: Exponential backoff with jitter is for network resilience, not logical errors. The Error Memory pattern \(from Reflexion and Self-Debug papers\) explicitly tracks failure state. The structured format \`\(tool, params, count\)\` is crucial—natural language summaries get ignored by the LLM; structured data forces recognition. This prevents the 'groundhog day' loop where the agent tries \`read\_file\('config.txt'\)\` 10 times in a row without checking if the file exists or using a different path.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T02:21:24.427676+00:00— report_created — created