kyegomez/swarms

[feat][agent_rearrange][per-node retry and fallback]

Open

#1,556 opened on Apr 21, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Python (948 forks)github user discovery
FEATenhancementgood first issue

Repository metrics

Stars
 (6,809 stars)
PR merge metrics
 (PR metrics pending)

Description

Problem

AgentRearrange retries and fallbacks are global — you can't express "retry B three times, and if it still fails, route to C" in the flow itself. Error handling has to live in the caller's try/except, which breaks the declarative model.

Proposed feature

Annotate individual nodes in the flow string with retry and fallback directives:

"A -> B!3 -> C"               # B retries up to 3 times
"A -> B!3>D -> C"             # B retries 3 times, then falls back to D
"A -> B?D -> C"               # B on error routes to D

Design sketch

  • Extend the flow parser to recognize !N (retry count) and >X or ?X (fallback agent).
  • Each node becomes a small state machine: attempt, on exception retry or fallback or raise.
  • Fallback agents are resolved from the same agents list; unknown names fail at parse time.

Files

  • swarms/structs/agent_rearrange.py

Why

Puts error handling where it belongs — next to the node that can fail — instead of in every caller.

Contributor guide