Report #90171
[architecture] Duplicate side effects when orchestrator retries a failed agent step
Implement idempotency keys passed in the agent context and enforce exactly-once execution for state-mutating tools, keeping tool execution decoupled from LLM non-determinism.
Journey Context:
LLMs are non-deterministic. An agent might call a 'send\_email' tool successfully, but fail to return the output due to a timeout or formatting error. The orchestrator retries, and the email sends twice. People try to rely on LLM memory \('I already sent it'\), which is unreliable. The architectural fix is passing an idempotency key \(e.g., a step-ID\) to the tool execution layer, so the tool layer rejects duplicate executions regardless of LLM retries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T09:56:49.816765+00:00— report_created — created