The endpoint address — a meeting join URL/ID (meetings) or a phone number (telephony).
OptionalAgentThe voicing agent's MJ: AI Agents id — used only to attribute this agent's transcript lines.
OptionalAgentThe names/aliases this agent answers to — the moderator's roster entry + the addressed-only fallback.
OptionalAgentA short role/description of the voiced agent — context the moderator uses to judge relevance.
OptionalAgentThe voiced agent's MJ: AI Agent Runs id — tied to each moderator prompt run for observability.
The MJ: AI Agent Sessions row this bridge attaches to (the session IS the existing session).
OptionalBindOptional per-session override for binding the driver's SDK factory, applied to the resolved driver
just before Connect. When supplied it takes precedence over the BridgeNativeSdkRegistry
default — use it to choose a non-default binding for a provider that has more than one (e.g. Zoom's
RTMS receive-only binding instead of the native two-way default) or to inject a fake in a test.
When omitted, the engine applies the provider's registered native binding (if any).
OptionalChannelOptional server-side channel-plane host (Part A — the generic channel wiring). When supplied,
the engine starts the session's channels through it at connect, constructs a Meeting Controls
channel from the driver's BaseRealtimeBridge.GetMeetingControlsEventSource (when the
driver contributes one), feeds the realtime session's SendContextNote perception sink into the
channel context, and surfaces the contributed server tools + executor onto the returned
ActiveBridgeSession so the runner-constructing layer binds them to
RealtimeSessionRunner.ServerChannelTools / ExecuteServerChannelTool.
Additive and optional: IRealtimeSession-only callers (no channel plane) keep working untouched.
In production this is an adapter (in @memberjunction/ai-agents, which owns RealtimeChannelServerHost)
over the channel host; here the engine depends only on the IBridgeChannelHost interface so
it takes no heavy dependency on the agents package.
OptionalConfigurationPer-session bridge configuration (resolved credential refs, region, …) passed to the driver.
OptionalContextThe MJ user the bridge session runs as; every session is owned + audited by a user.
OptionalDirectionConnection direction. Defaults to 'Outbound'.
OptionalDisableMulti-agent meeting mode. When true, the realtime model's blind auto-response was disabled at
session start (the agent layer set disableAutoResponse on the model session), so the BRIDGE is the
sole speech trigger: on a Speak turn decision the engine issues exactly one RequestSpokenUpdate.
When false/absent the model auto-responds and the engine must NOT also trigger (it would double-fire).
Must agree with what the session was opened with. See plans/realtime/multi-agent-meeting-turn-taking.md.
OptionalJoinHow the agent connected. Defaults to 'OnDemand'.
OptionalMetadataThe request-scoped metadata provider for all entity operations (multi-provider safe).
OptionalParticipationThis agent's participation style in a MULTI-agent room, surfaced to the room turn moderator:
'proactive' (default) may jump in unaddressed when judged relevant; 'addressed-only' speaks only
when directly addressed. Ignored in single-agent rooms.
The bridge provider to transport through (resolved to its DriverClass for ClassFactory).
The live realtime session the bridge media plane wires to. Injected (not constructed here) so the engine never depends on a concrete realtime provider — the transport seam is the only coupling, and it is to the IRealtimeSession interface.
OptionalTargetThe TARGET agent this co-agent voices (the role/identity the user hears — e.g. Sage), when distinct from StartBridgeSessionParams.AgentID (the generic co-agent). The moderator resolves the agent's role
turnTaking.mode from this agent's config.OptionalTurnThe addressed-matcher for Passive/Hybrid turn-taking (e.g. a RegexAddressedMatcher built from the agent's name + aliases). Required for Passive/Hybrid to ever speak.
OptionalTurnTurn-taking mode for the session. Defaults to 'Passive' (speak only when addressed). The
engine builds a TurnTakingPolicy from this and StartBridgeSessionParams.TurnMatcher/
StartBridgeSessionParams.TurnScorer.
OptionalTurnThe "worth saying" scorer for Active/Hybrid turn-taking.
OptionalTurnOptional extra turn-taking tuning (silence window, throttle, score threshold, clock).
Parameters for AIBridgeEngine.StartBridgeSession.
The engine does NOT construct the realtime model — the caller injects the already-open IRealtimeSession (or a session factory) so the engine stays testable without a real provider and so the realtime model's lifecycle stays owned by the agent/session layer above.