Broadcast
Mode 1 의 parallel fan-out 같은데 누적된 transcript prepended. 모든 N 두뇌가 parallel 실행. asyncio.gather 가 두뇌별 호출 위에.
Point
한 두뇌가 turn 받음. 선택적으로 아빠 코멘트 추가. targeted 두뇌가 transcript + 아빠 코멘트 + 'Now you respond' 받음. 다른 두뇌는 다음 round 에 transcript update 시 알게 됨.
Point-only
turn 이 silently passed — '아빠 stayed silent. 다음 move 너꺼.' 아빠의 continuous commentary 없이 council 펼쳐지게 해.
Broadcast는 모두에게 같은 transcript boundary를 건네야 해. 한 participant만 더 최신 context를 받으면 parallel 비교가 아니야. fan-out 전에 snapshot을 확정하고, 각 reply는 그 snapshot id와 participant id에 묶어. 응답이 도착하는 순서는 달라도 round의 기준점은 같아.
Point는 이름 그대로 발언권을 한 slot에 줘. 이때 brain 이름이 아니라 participant id로 가리켜야 같은 brain을 쓰는 서로 다른 soul도 구분돼. 아빠 comment가 있으면 그 turn의 입력으로 남기고, 없으면 없었다는 사실을 별도 의미로 만들지 않아.
Point-only는 아빠가 계속 filler 문장을 써야 하는 UI 부담을 없애. 다만 '침묵'을 모델의 자유 입력으로 꾸미지 말고 orchestrator가 명시한 turn policy로 남겨야 해. 그래야 나중에 transcript를 읽을 때 누가 일부러 pass했고 누가 누락됐는지 구분할 수 있어.
사실 이 세 패턴은 대화 기능이 아니라 scheduling primitive야. 누가 같은 snapshot을 보고 동시에 말하는지, 누가 혼자 다음 state를 만드는지, moderator가 개입했는지를 정해. 그래서 새 council preset이 와도 runtime branch를 늘리지 않고 이 셋으로 표현할 수 있어.