A provider 503 should not decide whether your agent repeats a tool call

Reddit r/AI_Agents News

Summary

This article discusses handling provider outages in AI agent systems by implementing failover, model fallback, circuit breakers, and idempotent retries to prevent pipeline stoppages and duplicate actions.

Your agent has one provider. It returns a 503 after the agent calls create_invoice. The customer is still waiting. You do not know whether the provider rejected the request, the tool call reached the invoice service, or the invoice was created before the timeout. A single provider turns that outage into a stopped pipeline. A blind retry can turn it into a duplicate invoice. Provider failover Keep a hot standby provider behind the same request interface. When the primary returns a 429, a 5xx, or a timeout, route the request through the next configured provider. The caller should not have to know which provider handled the request. Model fallback Model fallback covers the case where the requested model is unavailable. A chain such as gpt-4o -> Claude Sonnet -> Gemini is a starting point. Each model needs to pass the same contract for the workflow: tool calling, output schema, context limit, safety settings, latency ceiling, and cost limit. Only keep models in the chain after they pass that contract. Circuit breaker Stop sending traffic to an endpoint after a configured error rate and sample size. Leave it open for a cooldown, then allow a small recovery probe before it receives normal traffic again. This prevents one flaky endpoint from tying up every request. Retries need idempotency A timeout after a write leaves the operation state unknown. Treat it as unknown until you reconcile it. Persist the operation ID before the external call. Reuse that idempotency key if the request is retried or sent through a fallback provider. Otherwise, the first request can complete, the retry can complete, and the customer gets charged twice. We treat provider selection, breaker state, and retry policy as one routing-layer concern. The agent should not have to reason about a provider outage in the middle of a task. Fallback belongs in the infrastructure layer. Test the whole chain with a real tool call. A text-only health check does not prove that the fallback can complete the workflow. If a provider timeout lands after an external action, how does your system decide whether to retry, fail over, or stop?
Original Article

Similar Articles

Your agent's retry logic dies when the agent does

Reddit r/AI_Agents

The author shares lessons from putting an AI agent with write access into production, explaining that retry logic inside the agent loop fails when the process dies. They advocate for treating side-effectful tool calls as durable background jobs with idempotency keys.