Cycles participants in insertion order, forever (each full pass is a "round"). The simplest fair policy — good for chat, brainstorming, or any turn-taking where everyone gets equal time.
ExAgent.Session.start_link(
shared_state: %{},
policy: :round_robin,
participants: [Participant.new(id: "a"), Participant.new(id: "b")]
)
Summary
Types
@type t() :: %ExAgent.Session.TurnPolicy.RoundRobin{ current: term() | nil, ids: [term()], index: non_neg_integer() }