How to Answer
“Two separate decisions: what the system does, and what the agent sees. The system one first, because it’s the safety-critical half.
A timeout isn’t a failure — you don’t know whether the write landed. So for read tools, retry freely: two or three attempts, exponential backoff, jitter. For write tools, retry only if the call carried an idempotency key. If it didn’t, you must not retry; you check state or escalate.
What the agent sees is a structured error it can reason about, not an exception. ‘search_orders timed out after 5s. This may be transient. You have two retries left.’ Then the model can retry, switch tools, or tell the user — and which of those is right genuinely depends on the task.
Above all of it, a circuit breaker. If a tool has failed its last twenty calls, stop calling it: fail fast, tell the user that capability is degraded, page someone. Otherwise every request pays the full timeout and latency collapses across paths that have nothing to do with the broken tool.”