Reference

clientConfiguration fields (per-session agent config)

← Back to Wire Protocol

The server sends clientConfiguration once per connect. The SDK keeps it and exposes it read-only as session.clientConfig. These are the fields the SDK reads:

Field Example What the SDK does with it
isTapToTalk false Push-to-talk vs open-mic. A fixed, per-agent choice, not a live toggle. Read as capabilities.tapToTalk. startTapToTalk() and endTapToTalk() throw capability_disabled when it is false (see the tapToTalkStart/tapToTalkEnd row in the events catalog for why mixing modes is unsafe).
interruptionsEnabled true Read as capabilities.interruptions. false means the user can't talk over the avatar.
isWebSearchEnabled false Read as capabilities.webSearch. Web-search tools produce tool/tool_response deltas only when it is true. When false, the agent can still say it will "look that up", but no tool segment fires.
isScreenShareEnabled false Read as capabilities.screenShare. startScreenShare() and sendScreenShot() throw capability_disabled when it is false. It becomes true when the agent's screenShare setting is on.
isCameraAnalysisEnabled false Read as capabilities.cameraAnalysis.

The payload also carries languageCode, showTranscription, audioMode, phoneMode, pauseConversationEnabled, shouldAggregateCurrentTurn, initialHtml, youtubeUrl, visualPhotos, visualVideos, agentPersonaName, userName, configuration and nluFeatures. The SDK passes them through on session.clientConfig and does not act on them.

Structured experiences (force_experience + unisphere-tool)

Scope: the structured-experience behavior below is what you get on the HTTP /assistant/converse path (headless/text integrations). The live avatar socket does not produce flashcards or summarization. See Two delivery paths.

force_experience on converse (e.g. "flashcards") is a hint, not a guarantee. The agent decides which structured widget(s) to emit based on the prompt and its intellect (the agent's configuration: prompts, tools and capabilities). Each comes back as unisphere-tool segments. The first carries metadata:{ widgetName, runtimeName }, then the content streams as a YAML-ish block (e.g. title: / questions:). For example:

Doc Covers
Wire Protocol · Events Catalog The join/clientConfiguration events these fields ride on
Wire Protocol Back to the index
Click to talk with Nova — she knows this whole SDK.
Nova AI assistant — knows this whole site

Nova is an AI assistant and can make mistakes. Check important details in the docs. Reloading starts a fresh chat.