Skip to content

feat: configurable max API retries + stream retries with smarter backoff #5570

@iRonin

Description

@iRonin

Configurable Two-Layer Retry Strategy

Configuration

```yaml

~/.hermes/config.yaml

agent:
max_api_retries: 10 # Outer loop: full API call retries
max_stream_retries: 10 # Inner loop: stream/connection retries
```

Retry behavior

Outer loop (max_api_retries, default 3):

  • Respects Retry-After header from API response (capped at 5 min)
  • Rate limits: exponential 5s * 2^n with +/-20% jitter, cap 5 min
  • Other errors: exponential 2^n, cap 60s

Inner loop (max_stream_retries, default 2):

  • Retries streaming request with fresh connection on ReadTimeout/connection drops
  • Rebuilds the primary OpenAI client to purge dead pool connections

Links

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havearea/configConfig system, migrations, profilescomp/agentCore agent loop, run_agent.py, prompt buildertype/featureNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions