Files
CoreRasurae 55734cd512 feat(agents): add LLM agent retry mechanisms with exponential backoff
- Documents the retry feature implementation (issue #69, ADR-2032)

Introduce configurable retry mechanisms (ADR-2032) for all LLM agent
communications (main agent and pruning agent) with exponential backoff.

- New config fields: max_retries (default 7), max_retry_time (default 60s)
  -1 sentinel disables the corresponding guard (infinite retries/time)
- Exponential backoff: initial 0.5s, doubled each retry
- Termination: whichever comes first (max_retries or max_retry_time),
  with -1 disabling the respective check
- Counter and accumulated wait time reset on success
- Timeout ExecutionError includes URL, actor graph name, and retry stats
- Uniform scope: applies to both main agent and pruning agent
- Timeout raises ExecutionError(kind="timeout") with URL, actor graph
  name, retry count, and accumulated wait time in the message (D-7)
- Same client/connection reused across retries, no re-establishment (D-6)
- Uniform scope: applies to both main agent and pruning agent (D-5)
- Graph name threaded through state metadata and ContextVar for error
  reporting
- BDD tests (7 scenarios) for retry behaviour including -1 sentinel cases
- Reject max_retries/max_retry_time values < -1 with ConfigurationError
- Reset current_graph_name ContextVar after node execution
- Wrap no-tools astream() with per-chunk granular retry via call_with_retry
- Update ADR D-7 with symmetrical disabled-guard example
- Update CHANGELOG to reflect full feature scope

ISSUES CLOSED: #69
2026-07-03 16:00:11 +01:00
..
2026-05-26 22:13:33 +01:00