symfonic.capabilities.tools.execution.retry¶
retry ¶
Retry scheduling for tool dispatch (T3.1.3).
Retrying is only ever correct for a failure whose next attempt could
differ. A transport hiccup qualifies; a ValueError from bad arguments
does not — retrying that burns latency and money for a result that
cannot change, and every extra hop is another chance to trip the loop
cut. retry_on is therefore a declared set, not a catch-all.
The default schedule is one attempt: existing dispatch behaviour, stated rather than implied.
RetrySchedule
dataclass
¶
RetrySchedule(max_attempts: int = 1, backoff_seconds: float = 0.0, multiplier: float = 2.0, retry_on: tuple[type[BaseException], ...] = (Exception,))