Report #54553
[synthesis] Agent retries a non-idempotent tool call after a network timeout, causing duplicate side effects
Enforce idempotency keys for all state-mutating tool calls at the orchestration layer, and design tool responses to distinguish between 'action succeeded' and 'action already succeeded.'
Journey Context:
When an agent calls a tool and the request times out, the agent doesn't know if the server received it. Standard LLM logic is to 'try again.' If the tool is non-idempotent \(e.g., charge\_credit\_card\), this causes duplicates. The agent cannot solve this; the tool interface must support idempotency keys. The tradeoff is implementation effort on the tool side vs. data integrity.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T22:03:48.599026+00:00— report_created — created