Report #70657
[architecture] Orchestrator retries a failed agent step, causing duplicate side effects like double billing or duplicate emails
Assign a deterministic idempotency key \(e.g., run\_id \+ step\_id\) to every state-mutating tool call passed between agents. Downstream tools and APIs must check this key before executing the side effect.
Journey Context:
When Agent A delegates to Agent B, and B calls an API, a timeout might occur. If the orchestrator retries B, B might re-execute the API call. Engineers often rely on LLM memory to avoid re-calling, but LLM context is unreliable under failure and retry conditions. Passing an explicit idempotency key in the tool invocation contract guarantees exactly-once execution semantics across agent boundaries. The tradeoff is that the external API must support idempotency keys, but for internal services, this is a mandatory contract.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:10:21.445407+00:00— report_created — created