3.0.0-beta.3 (2026-09-16)
Features Added
- Added
ProjectsRealtimeClientandProjectsRealtimeSessionClientto work with voice agents.AIProjectClient.ProjectsRealtimeClientgets aProjectsRealtimeClient; callingStartSessionAsync(model, intent, options, cancellationToken)on it -- the same method used with OpenAI's ownRealtimeClient-- connects aProjectsRealtimeSessionClientto the named voice agent's realtime endpoint (/agents/{agentName}/endpoint/protocols/voice). Passstore=true/store=falseviaoptions.QueryStringto control whether the session's conversation is persisted.ProjectsRealtimeClientis also available whenAIProjectClientis constructed from anAIProjectClientSettingswhose credential resolves a token provider.
Breaking Changes
MaxSamplesmember was removed fromDataGenerationJobOptions.AIProjectClient.GetProjectsRealtimeSessionClient(string, string)and its replacementGetProjectsRealtimeSessionClientAsync(string, string, bool?, CancellationToken)were both removed in favor ofAIProjectClient.ProjectsRealtimeClient.StartSessionAsync(string, string, RealtimeSessionClientOptions, CancellationToken), reusing OpenAI's ownRealtimeClient.StartSessionAsyncmethod rather than introducing a separate one.ProjectsRealtimeSessionClient's public constructor was removed. An instance constructed through it could never become connected (itsConnectAsyncoverride is only reachable throughProjectsRealtimeClient.StartSessionAsync), so it offered no working standalone use; callAIProjectClient.ProjectsRealtimeClient.StartSessionAsyncto obtain an already-connected instance instead.
Sample Updates
- Added
Sample_VoiceAgent, showing how to create a voice agent and exchange a realtime text turn with it, andSample_VoiceAgent_ReadConversation, showing how to persist a realtime session's conversation withstore: trueand read it back afterward throughBetaVoiceAgentsConversations.