Roundtable Protocol¶
MCP Tools¶
| Tool | Purpose |
|---|---|
open |
Create a new roundtable session with topic and participant list |
join |
Agent enters the roundtable (required before speaking) |
speak |
Post a message to the roundtable (agent must have joined) |
listen |
Read all messages since last listen (or from start) |
cut |
Assistant ends current discussion thread, forces move to next |
leave |
Agent exits the roundtable |
close |
End the roundtable session, persist transcript to DB |
Discussion Flow¶
- Assistant opens roundtable with topic from Admin's directive
- Workers + Judge join — all call
join - Assistant posts the briefing question via
speak - Round 1: Workers
listenthenspeaktheir initial contributions (parallel) - Judge reviews: Judge
listens all round 1 contributions, posts corrections/redirects (or stays silent if clean) - Round 2+: Workers
listen(see others' contributions + Judge feedback), thenspeakresponses - Judge reviews again after each round
- Round ends when any termination signal fires (see below)
- Assistant collects:
listenfor full transcript, compresses into digest for Admin - Assistant closes roundtable
Round mechanics¶
- One round = every active worker speaks once + Judge evaluates
- Workers who say "I have nothing to add" sit out remaining rounds
- Judge posts between worker rounds, not during them
- Assistant does NOT monitor live — it acts only at open and close
Token Budget¶
- Default: 15,000 tokens per roundtable (from config.json)
- Hard ceiling: never exceed
roundtable.token_budgetfrom config - Assistant tracks running total of all
speakmessages - When 80% consumed: announce "Final round — make it count"
- When 100% consumed:
cutimmediately, no exceptions
Max Rounds¶
- Default: 10 rounds (from config.json)
- One round = every participant speaks once
- At max rounds:
cutregardless of progress
Termination Signals¶
A round ends when ANY of these fire:
- All workers signal done — every active worker said "I have nothing to add"
- Consensus reached — 3+ participants agree on approach, no dissent in last round
- Max rounds hit — reached
roundtable.max_roundsfrom config - Token budget hit — 80% consumed triggers "final round" announcement, 100% forces cut
- Judge calls convergence — Judge posts "CONVERGED: [reason]" when discussion is resolved
The Judge or Assistant can trigger termination. Workers cannot force-end a roundtable — they can only opt out of further rounds individually.
Judge Rules (live in chat)¶
- Post corrections between worker rounds, never during
- Be specific: name the worker, name the problem, name what's needed
- Stay silent when the round is clean — no feedback is good feedback
- If two workers deadlock: demand a third engage with the dispute
- If Naomi (Gemini) contradicts the group: protect the dissent — that's her value
- Never argue a position or contribute ideas — only redirect and correct
- Post "CONVERGED: [reason]" when the discussion has reached a natural conclusion
Assistant Rules (not live in chat)¶
- Opens and closes the roundtable — does not participate in discussion
- After close: compresses full transcript into a digest for Admin
- Names specific contributors in the digest ("Elena proposed X, Marcus countered with Y")
- Always includes dissenting views alongside majority in the digest