ExecutionConfig retry settings re-run retryable tool failures and guardrail validation errors with exponential backoff and jitter.
Quick Start
ExecutionConfig:
How It Works
Total attempts =1 + max_retry_limit. Default max_retry_limit=2 → up to 3 attempts.
Delay: min(initial_delay × factor^(attempt−1), 60s) + random(0, jitter × base).
Choosing Your Settings
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
max_retry_limit | int | 2 | Max retries after the first attempt |
retry_initial_delay | float | 1.0 | First retry delay (seconds) |
retry_backoff_factor | float | 2.0 | Exponential multiplier per attempt |
retry_jitter | float | 0.1 | Jitter fraction of base delay |
For per-tool
RetryPolicy overrides, see Tool Retry Policy.What Gets Retried
| Outcome | Retried? |
|---|---|
| Tool timeouts | ✅ |
| Circuit breaker open | ✅ |
Unexpected exceptions (not ValueError / TypeError / AttributeError) | ✅ |
| Guardrail validation failures | ✅ |
Tool returns {"error": ...} without timeout / circuit_open | ❌ |
Programming errors (ValueError, TypeError, AttributeError) | ❌ |
Common Patterns
Disable retries:Best Practices
Set jitter for parallel agents
Set jitter for parallel agents
Jitter spreads retry timing across agents and reduces thundering-herd spikes on shared APIs.
Don't retry programming errors
Don't retry programming errors
ValueError, TypeError, and AttributeError are treated as code bugs and are not retried.Backoff is capped at 60s
Backoff is capped at 60s
Very large backoff factors cannot exceed a 60-second base delay per attempt.
Guardrails share these settings
Guardrails share these settings
Related
ExecutionConfig
Full execution configuration reference
Guardrails
Input and output validation
Loop Guardrails
Cap tool calls per turn
Structured LLM Errors
LLM-level retry and error handling

