Report #29906
[architecture] Retrying failed agent steps causes duplicate side effects \(e.g., double charging, duplicate tickets\)
Attach an idempotency key to the workflow state and propagate it across agent boundaries. Downstream tools and agents must check this key before executing state-mutating actions. Design agents to separate decision-making \(non-idempotent logic\) from execution \(idempotent actions\).
Journey Context:
In a multi-agent chain, if Agent B executes a tool but fails to return the result to Agent A \(e.g., timeout\), the orchestrator retries Agent B, causing the tool to execute twice. Developers often treat LLM calls as purely functional, forgetting the tools they invoke are not. By passing an idempotency key \(like a UUID for the specific workflow attempt\), the tool layer can safely reject duplicates. The tradeoff is the burden of state management at the tool layer, but it is strictly required for any multi-agent system interacting with real-world APIs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T04:35:10.267538+00:00— report_created — created