Skip to main content

RunConfig

All runner behaviour is controlled through RunConfig:

Concurrency

aevyra-verdict runs requests concurrently at two levels:
  • max_workers — concurrent requests per model (default: 10)
  • max_model_workers — models evaluated at the same time (default: 4)
So with 3 models and max_workers=10, up to 30 API calls can be in-flight simultaneously. If you’re hitting rate limits, lower max_workers first:

Rate limit handling

Rate-limit errors (HTTP 429) are automatically retried with exponential backoff and jitter. The delay before retry n is:
With the defaults (base_delay=1.0, max_delay=60.0, jitter=0.25), the sequence is roughly: 1s → 2s → 4s → 8s → 16s → 32s → 60s (capped). Jitter adds ±25% randomness to prevent multiple concurrent workers from retrying in sync.
Auth errors (401, 403) and bad requests (400) are surfaced immediately without retrying — there’s no point burning retry budget on errors that won’t resolve themselves.

Tuning for large datasets

For large datasets (1000+ samples), these settings tend to work well:

CLI tuning