OptionalAvatarA live avatar the session asks the model to render. A driver renders it only where its model and endpoint can; anywhere else the session runs audio-only and the driver logs why (RealtimeAvatarUnavailableReason). Absent means no avatar.
OptionalConfigOptional open, provider-specific configuration bag (e.g. voice, language, turn-taking
settings, or per-conversation override fields). Typed as a JSON object rather than any
so it stays serializable and inspectable.
OptionalHasOptional boolean indicating that the SystemPrompt already provides its own tool framing (e.g. from BuildRealtimeAgentFraming in co-agent sessions). When true, drivers MUST NOT append their own standalone delegation policy. When false or omitted, drivers may fall back to heuristic substring sniffing or default policy compilation.
OptionalInitialOptional initial context to seed the conversation (e.g. the prior conversation history and retrieved memory) so the model starts with the same context a loop agent assembles.
OptionalMaxOptional server-authoritative hard ceiling on the session's wall-clock duration, in seconds.
Set for abuse-sensitive deployments (e.g. a public web-widget guest's VoiceMaxSessionMinutes).
Drivers that support a provider-side session-duration / token-expiry bound SHOULD apply
min(providerDefault, MaxSessionSeconds) so the provider drops the connection at the cap;
drivers that don't simply ignore it. Independently, the server stamps the absolute deadline on
the session and the session janitor hard-closes (finalizing runs) at the cap regardless of
driver support, so this is enforced server-side even when the provider can't be told.
When unset (undefined/null) there is NO MJ-imposed duration cap: drivers apply no min(...)
bound and the janitor stamps no extra deadline, so the session runs under the provider's own
default session/token limits and MJ's normal session lifecycle (manual end, disconnect, idle
cleanup). This is the default for authenticated/internal sessions, which don't need an abuse cap.
The API name of the realtime model to use (the MJ: AI Model Vendors API name for the
driver's provider).
The system prompt that establishes the model's persona and behavior for the session.
OptionalToolsOptional set of tools to register at session start. Equivalent to calling IRealtimeSession.RegisterTools immediately after the session opens; drivers may register these eagerly when the provider accepts tool schemas at session start.
OptionalUserOptional ID of the user requesting or owning the realtime session. Used for auditing, rate limiting, and proxy ticket attribution.
OptionalZeroWhether the session model is served under zero data retention: its effective catalog
configuration declares Privacy.ZeroDataRetention: true. Drivers must not turn on provider
features that store session content when this is true. Gemini Live session resumption keeps
resumable session state on Google's side, so the Gemini driver leaves it off and such a
session ends at the provider's connection limit instead. Absent or false means "not declared".
Parameters used to open a IRealtimeSession via BaseRealtimeModel.StartSession.