calculate_delay() — langchain Function Reference
Architecture documentation for the calculate_delay() function in _retry.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 8b99e01d_1081_849d_9a3a_c0143fcd045d["calculate_delay()"] 9decc8a1_63f4_b789_d19f_e00296bc741d["_retry.py"] 8b99e01d_1081_849d_9a3a_c0143fcd045d -->|defined in| 9decc8a1_63f4_b789_d19f_e00296bc741d style 8b99e01d_1081_849d_9a3a_c0143fcd045d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/langchain/agents/middleware/_retry.py lines 85–123
def calculate_delay(
retry_number: int,
*,
backoff_factor: float,
initial_delay: float,
max_delay: float,
jitter: bool,
) -> float:
"""Calculate delay for a retry attempt with exponential backoff and optional jitter.
Args:
retry_number: The retry attempt number (0-indexed).
backoff_factor: Multiplier for exponential backoff.
Set to `0.0` for constant delay.
initial_delay: Initial delay in seconds before first retry.
max_delay: Maximum delay in seconds between retries.
Caps exponential backoff growth.
jitter: Whether to add random jitter to delay to avoid thundering herd.
Returns:
Delay in seconds before next retry.
"""
if backoff_factor == 0.0:
delay = initial_delay
else:
delay = initial_delay * (backoff_factor**retry_number)
# Cap at max_delay
delay = min(delay, max_delay)
if jitter and delay > 0:
jitter_amount = delay * 0.25 # ±25% jitter
delay += random.uniform(-jitter_amount, jitter_amount) # noqa: S311
# Ensure delay is not negative after jitter
delay = max(0, delay)
return delay
Domain
Subdomains
Source
Frequently Asked Questions
What does calculate_delay() do?
calculate_delay() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/_retry.py.
Where is calculate_delay() defined?
calculate_delay() is defined in libs/langchain_v1/langchain/agents/middleware/_retry.py at line 85.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free