If every companion answers every message, the room becomes repetitive, expensive, and difficult to follow. If selection is random, direct questions can miss their intended recipient.
Routing uses the current tab, name cues, participation rules, and safety eligibility. A companion can be present without speaking on every turn, which makes the shared room feel coordinated instead of like five independent API calls.
What was actually going wrong
Broadcasting the same turn to all companions created duplicate ideas and weakened individual voices.
What I tried
- Having every companion answer in a fixed order
- Choosing a speaker randomly with no name detection
- Letting generated text decide who it was after the call
The application resolves eligible speakers before generation and applies companion-specific context to each selected turn.
Why it worked
Routing decisions remain deterministic, inspectable, and enforce safety before text is generated.
A multi-companion room needs turn orchestration as much as character prompts.
Where EACI uses this today
Together mode coordinates Caelum, Chad, Natalia, Atreus, Luna, Roxy, and Cael on Main.
This journal covers real engineering on EACI Companion / The Veil. Companions include Caelum, Chad, Natalia, Atreus, Luna, Roxy, and Cael. Journal articles stay family-safe in content. See Privacy and Ethics.