Home / Function/ calculate_delay() — langchain Function Reference

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

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