Skip to contents

Implements a round-robin turn-taking mechanism among participants. The moderator is typically handled by the `FocusGroup`'s phase logic, so this flow focuses on cycling through non-moderator agents.

Super class

FocusGroup::ConversationFlow -> RoundRobinFlow

Public fields

current_participant_index

Integer. Current position in the rotation of participants.

Methods

Inherited methods


Method new()

Initialize RoundRobinFlow.

Usage

RoundRobinFlow$new(agents, moderator_id)

Arguments

agents

A named list of `FGAgent` objects.

moderator_id

Character. The ID of the moderator agent.


Method select_next_speaker()

Selects the next participant in round-robin order.

Usage

RoundRobinFlow$select_next_speaker(focus_group)

Arguments

focus_group

The `FocusGroup` object.

Returns

The selected `FGAgent` (a participant), or `NULL` if no participants.


Method clone()

The objects of this class are cloneable with this method.

Usage

RoundRobinFlow$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.