Report #72521
[agent\_craft] Infinite retry loops when a tool fails with identical parameters \(e.g., file not found, permission denied\)
Implement a stateful retry policy: attempt 1 \(original\), attempt 2 \(mutate parameters: try parent dir if ENOENT, sudo if EPERM\), attempt 3 \(escalate to user with specific error categorization\); hard stop after 2 failures
Journey Context:
Naive agents retry the exact same \`read\_file\` call on a non-existent path, burning tokens. Robust agents categorize exit codes: for 'File not found', the recovery is \`ls\` parent or \`find\`; for 'Permission denied', try \`sudo\` or check ownership; for syntax errors in generated code, truncate context. The key is 'parameter mutation' rather than repetition. After 2 failures, switch to 'analysis mode' \(ask user\) rather than 'action mode' to prevent runaway costs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T04:18:58.771595+00:00— report_created — created