Report #46110
[frontier] Agent retry loops cause duplicate side effects \(double billing, duplicate tickets\) when tool calls lack idempotency guarantees
Enforce idempotent tool design: require deterministic idempotency keys \(UUIDv5 based on operation semantics\) for all state-changing tool calls, and implement deduplication middleware in tool servers using request ID tracking
Journey Context:
Agents encountering transient errors \(rate limits, timeouts\) retry aggressively. If 'create\_invoice\(\)' lacks idempotency, a loop creates 50 invoices. Traditional APIs use random idempotency keys, but agents regenerate UUIDs on retry. Frontier teams use 'semantic idempotency keys': UUIDv5\(namespace, canonical\_op\_string \+ params\). The agent can retry infinitely, generating the same key, and the tool server deduplicates via KV store. This requires 'tool contracts' that mandate idempotency. Tradeoff: requires infrastructure; mitigate with middleware.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T07:52:16.755207+00:00— report_created — created