2.11.0 (2026-11-13)
Features Added
- Voice Agents are generally available through
.voice_agents.realtime,.voice_agents.conversations, and the existing binding, call, transfer-target, and call-job operations on.voice_agents.telephony. Agent generation is now available through.agents.create_from_prompt(). GPT Live, inline subagent handoff, SIP, post-call delivery, and campaigns remain in preview. - External Agents are generally available. Creating agents with
ExternalAgentDefinitionno longer requiresallow_preview=True. - Agent Insights are generally available through
.agent_insight_monitors, withAgentInsightPriorities,AgentInsightPrioritiesRead,AgentInsightRunInputs, andAgentInsightSummary. - Added skill optimization through
SkillOptimizationConfiguration, with trace-based learning, skill references, optional evaluation, and typed execution, validation, and result models. AddedAgentTracesOptimizationContext,SkillReferencesOptimizationContext, andSkillOptimizationEvaluationConfiguration. - Added optimization trace selection through
AgentOptimizationFixedTraceWindow,AgentOptimizationTraceIdsTraceWindow, andAgentOptimizationAppInsightsTraceConnectionConfiguration. - Added
.agents.download_optimization_job_file()andAgentOptimizationCandidateFilefor downloading optimization artifacts. Added optionalerror,execution_summary,files, andresolved_contextproperties onAgentOptimizationCandidate, andAgentOptimizationCandidateStatus.SKIPPED. - Added shared
JobStatus.SKIPPEDfor Agent Insights runs, agent optimization, data generation, evaluator generation, and telephony campaign operations. Agent optimization job and Agent Insights run status filters also accept this value. - Added quality and safety rubric generation through
EvaluatorGenerationCategory, Boolean and Likert scoring throughRubricScoringandRubricScoringMode, and optionalDimension.allowedand read-onlyDimension.generated_weight.Dimension.weightis now optional. - Added optional
category,dimensions,pass_threshold, andscoringproperties onEvaluatorGenerationInputsandEvaluatorGenerationJob.EvaluatorGenerationInputs.modelis now optional for safety generation. Added optionalTracesEvaluatorGenerationJobSource.trace_idsandRubricBasedEvaluatorDefinition.scoring. - Added preview
.beta.evaluators.list_diagnostics()for evaluator publication lineage and diagnostics, with actor, change, and health metric models. - Added optional
EndpointBasedEvaluatorDefinition.schema_versionandEndpointEvaluatorSchemaVersionfor selecting an endpoint evaluator contract version. - Added scheduled dataset and trace evaluations through
DatasetEvaluationRuleActionandTraceEvaluationRuleAction.EvaluationRulenow exposes optionalschedule,provisioning_status, anderrorproperties, andEvaluationRuleEventTypeincludesTIMER_TRIGGER. - Added typed evaluation input sources for JSONL, CSV, stored completions, target completions, conversation simulation, and agent traces, including
CreateEvalJsonlRunDataSource,CsvEvalRunDataSource,TargetCompletionEvalRunDataSource,UserConversationSimulationEvalRunDataSource,TraceSourceEvalRunDataSource, andTraceSourcePreviewEvalRunDataSource. Evaluation-rule annotations and theDatasetEvaluationSourceandTraceEvaluationSourceunions use these model names; wire discriminator values are unchanged. - Added
DataGenerationJobType.CONVERSATIONS,UserConversationSimulationDefaultConfiguration, and optionalTracesDataGenerationJobConfiguration.generate_test_case_rubric.DataGenerationJobResult.warningsnow exposesDataGenerationWarningandDataGenerationWarningCode. DailyRecurrenceSchedule.hoursis now optional; when omitted, the service uses the current UTC hour at schedule creation.- Added optional
MCPToolboxTool.request_header_bindings, withMCPToolboxRequestHeaderBindingandMCPToolboxRequestHeaderBindingSource, for forwarding client-supplied headers to an MCP server. - Added preview GPT Live sessions through
.beta.voice_agents.live.connect()andVoiceAgentLiveDefinition, with typed configuration, session updates, text and audio input, lifecycle and usage events, and Responses backend tools. - Added GPT Live delegation through
VoiceAgentLiveResponsesDelegation,VoiceAgentLiveClientDelegation, andVoiceAgentLiveManagedAgentDelegationfor Responses backends, application-managed work, and same-project prompt agents. - Added
.beta.voice_agents.live_conversationsfor managing stored Live conversations and retrieving conversation items and audio. - Added optional preview
VoiceAgentDefinition.post_callwithVoiceAgentPostCallConfig,VoiceAgentEventGridPostCallDestination, andVoiceAgentRoutinePostCallDestinationfor post-call transcript and optional audio delivery. - Added preview SIP telephony through
TelephonyProvider.SIP,SipTelephonyBinding, andSipTelephonyBindingListItem. Added optionalUpdateTelephonyBindingRequest.allowed_calling_numbers. - Added
.voice_agents.telephony.list_call_jobs()and.voice_agents.telephony.delete_call_job(). - Added preview outbound campaign operations on
.beta.voice_agents.telephony, including long-running creation, cancellation, and deletion, listing and retrieval, validation errors, operation status, and ETag match conditions. - Added campaign configuration, scheduling, and progress models, including
TelephonyCampaign,TelephonyRecipient,ImmediateSchedule,AtTimeSchedule,PerRecipientSchedule, andTelephonyCampaignProgress. Added optionalTelephonyCampaignDatasetReference.versionand read-onlyTelephonyCallJob.campaign_name. - Added preview inline Voice Agent subagents and handoff through
VoiceAgentInlineSubagentConfig,InlineVoiceSubagent, andVoiceAgentHandoffPolicy, with handoff lifecycle events and optionalVoiceAgentSessionResponseConfig.handoff. - Added Voice Agent system tools
VoiceAgentTransferSystemTool,VoiceAgentSendDtmfSystemTool,VoiceAgentSendSmsSystemTool,VoiceAgentCollectDtmfSystemTool,VoiceAgentCollectSmsSystemTool,VoiceAgentDigitRecognitionSystemTool, andVoiceAgentLanguageDetectionSystemTool, with transfer targets and routing models. Added optionalVoiceAgentSystemTool.timeout. - Added realtime system-tool items, argument-streaming events, and input-collection events through
VoiceAgentSystemToolItem,VoiceAgentServerEventSystemToolArgumentsDelta,VoiceAgentServerEventSystemToolArgumentsDone, andVoiceAgentServerEventInputCollectionStatus. - Added
VoiceAgentBaseDefinition,VoiceAgentVoiceConfig, andVoiceAgentSubProtocolfor shared Realtime and Live configuration, with voice-specific tool, greeting, conversation-engine, and event-discriminator enums. - Added optional
MisalignmentErrorDetailsResource.review_targetandRealtimeResponseStatusDetailsError.message. - Expanded known-value annotations on
ImageGenTool.modelfor thegpt-image-2.5-sunburstandgpt-image-2.5-flarefamilies and onImageGenTool.qualityforxhighandmax. - Added explicit recursive typing for nested
CompoundFilterinstances inCompoundFilter.filters, while retaining support for arbitrary values.
Breaking Changes
Breaking changes in beta methods:
- Moved
.beta.agents.create_from_prompt()to.agents.create_from_prompt(), and.beta.voice_agents.realtime,.beta.voice_agents.conversations, and the existing binding, call, transfer-target, and call-job operations on.beta.voice_agents.telephonyto.voice_agents. GPT Live and campaign management remain under.beta.voice_agents. - Renamed argument
telephony_bindingtobindingon the promoted.voice_agents.telephony.create_binding()method. Its typed body now acceptsTelephonyBindinginstead ofCreateTelephonyBindingRequest. - Renamed argument
bodytojobon the promoted.voice_agents.telephony.create_call_job()method. Its typed body now acceptsTelephonyCallJobCreateinstead ofCreateTelephonyCallJobRequest. - Removed the
statusfilter from the promoted.voice_agents.telephony.list_bindings()method. - Moved
.beta.agent_insight_monitorsto.agent_insight_monitors, and renamedBetaAgentInsightMonitorsOperationstoAgentInsightMonitorsOperations. - Agent Insights
create(),update(),begin_create_run(), andupdate_insight()now accept flattened keyword arguments or JSON bodies instead of typed request models. Positional body argumentsmonitor,run, andupdateare now namedbody. - Renamed Agent Insights
list_insights()filterscategory,severity, andstatustocategories,severities, andstatuses, respectively; they now accept lists instead of single values.
Breaking changes in beta classes:
- Renamed
BetaRealtime,BetaRealtimeConnection, andBetaRealtimeConnectionManagertoRealtime,RealtimeConnection, andRealtimeConnectionManager, respectively, with corresponding asynchronous class renames. The old exports were removed. - Removed
AgentInsightMonitorCreate,AgentInsightMonitorUpdate,AgentInsightRunCreate, andAgentInsightUpdate; use flattened operation arguments or JSON bodies.AgentInsightRun.inputsnow usesAgentInsightRunInputs. - Removed
AgentInsightOverviewSource,AgentInsightsOverview,AgentInsightsOverviewOverride, andAgentInsightMonitor.overview. UseAgentInsightMonitor.agent_summaryandpriorities. - Removed
CreateTelephonyBindingRequest,CreateTeamsPhoneExtensibilityTelephonyBindingRequest, andCreateTwilioTelephonyBindingRequest. UseTelephonyBinding,TeamsPhoneExtensibilityTelephonyBinding, andTwilioTelephonyBinding, respectively. - Renamed
CreateTelephonyCallJobRequesttoTelephonyCallJobCreateandTelephonyOutboundFixedIntervalRetryPolicytoFixedIntervalRetryPolicy. - Removed
TelephonyOutboundDestinationandTelephonyOutboundDestinationType; useTelephonyAddressandTelephonyAddressType. Call-jobsourceanddestinationnow useTelephonyAddress;sourceno longer accepts a plain string. - Removed
TelephonyTransferDestination,PSTNTelephonyTransferDestination,SipTelephonyTransferDestination,TeamsTelephonyTransferDestination, andTelephonyTransferDestinationKind.TelephonyTransferTarget.destinationnow usesTelephonyAddress, withPhoneNumber,SipAddress, andTeamsAddressvariants. The discriminator istypeinstead ofkind, and the PSTN value isphone_numberinstead ofpstn. - Removed
TelephonyBindingStatusand thestatusproperty from bindings, binding list items, their provider-specific subclasses, andUpdateTelephonyBindingRequest. TelephonyBinding.idandincoming_call_urlare now read-only. RemovedTelephonyCallJob.object; its service-managed identity, status, cancellation, retry, revision, and timestamp properties are now read-only.VoiceAgentSubagentConfigis now a polymorphic base requiringsubagent_typeinstead ofsubagents. UseVoiceAgentDelegateSubagentConfigfor referenced agents orVoiceAgentInlineSubagentConfigfor inline subagents.- Renamed
VoiceAgentSubagent.invoke_timeout_secondstoinvoke_timeout. The wire name is unchanged. VoiceAgentResponseCreateParams.inputnow uses dedicated response-input models instead ofRealtimeConversationItem.- Constructor argument
timestamp_typeonVoiceAgentServerEventResponseAudioTimestampDeltais now required; useVoiceAgentAudioTimestampType.WORD. Constructor argumentsleftandrightonVoiceRecordingChannelLayoutare now required; useVoiceAudioRole.USERandVoiceAudioRole.AGENT. - Renamed
VoiceAgentInputTranscriptionModel.GPT4_O_TRANSCRIBE,GPT4_O_MINI_TRANSCRIBE,GPT4_O_TRANSCRIBE_DIARIZE, andWHISPER1toGPT_4_O_TRANSCRIBE,GPT_4_O_MINI_TRANSCRIBE,GPT_4_O_TRANSCRIBE_DIARIZE, andWHISPER_1, respectively. Wire values are unchanged.
Bugs Fixed
- Fixed the GPT Live sample helper to enforce the overall event-wait deadline when sending silence audio. Stalled audio sends are now cancelled and raise
TimeoutErrorinstead of hanging indefinitely.
Dependency update
- Added Python 3.15 to the package's supported-version classifiers. The minimum Python version remains 3.10.
Sample updates
- Added
sample_voice_agent_campaign.pydemonstrating future-scheduled outbound campaign creation, polling, cancellation, and deletion. - Added
sample_voice_agent_live_read_conversation.pydemonstrating stored GPT Live conversation, transcript, and audio retrieval. - Added
sample_voice_agent_read_generated_audio.pydemonstrating retrieval of generated audio from an interrupted Realtime reply. - Added GPT Live examples demonstrating session lifecycle and settings updates, text and audio conversations, function tools, and same-project managed-agent delegation, with shared audio and event helpers.
- Added a Realtime interruption example demonstrating response cancellation and conversation-item truncation.
- Added
sample_dataset_generation_job_traces_for_evaluation_with_test_case_rubric.pydemonstrating evaluation-dataset generation with test-case rubric dimensions from agent conversation traces. - Added
sample_audio_conversation_evaluation.pydemonstrating grading existing voice conversations with built-in audio evaluators. - Added
sample_voice_agent_simulation_evaluation.pydemonstrating simulated voice conversations graded with audio evaluators. - Added
sample_dataset_evaluation_rule.pydemonstrating scheduled evaluation against a fixed query dataset, andsample_trace_evaluation_rule.pydemonstrating scheduled evaluation of Application Insights traces. - Added
sample_endpoint_evaluator.pydemonstrating endpoint-evaluator registration through a project connection and inline-data evaluation, andsample_endpoint_evaluator_schema_0_0_1.pydemonstrating the older endpoint contract. Removed the separate API-key and Entra ID samples after consolidating their scenarios. - Updated rubric examples for Likert, Boolean, and safety scoring, pass thresholds, allowed dimension values, and generated weights.
- Updated Agent Insights examples for the GA client and flattened operation arguments, and External Agent and Voice Agent examples for GA paths and preview opt-in requirements.
- Updated optimization polling examples to handle skipped jobs as terminal outcomes with no optimization result.
- Updated Realtime audio, conversation, logging, and configuration examples. Consolidated the synchronous Realtime text-conversation example into the asynchronous example, moved the function-tool example to an asynchronous sample, and removed the separate basic asynchronous Voice Agent sample.
- Updated installation instructions in samples added or modified for this release to require
azure-ai-projects>=2.11.0, and refreshed the datasets and evaluations sample READMEs.