Report #59207
[frontier] Agent tool calls being retried on transient network errors causing duplicate charges, emails, or database writes
Require all agent tool schemas to accept an \`idempotency\_key: string\` \(UUIDv4\) generated once per logical operation at the conversation start. Tool implementations must check key against a store \(Redis/DynamoDB with TTL=24h\) before executing side effects, returning cached result if key exists.
Journey Context:
LLM agents often hallucinate or retry aggressively on timeouts. Without idempotency, 'transfer $100' executed twice is catastrophic. This applies Stripe's battle-tested API pattern to agent tools. Alternative: making all tools naturally idempotent \(DELETE vs POST\) is architecturally pure but impractical for legacy integration; idempotency keys work with existing CRUD APIs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T05:52:16.176431+00:00— report_created — created