github Azure/azure-sdk-for-python azure-ai-projects_2.9.0

3 hours ago

2.9.0 (2026-10-16)

Features Added

  • Added experimental Voice Agents REST and realtime tracing through AIProjectInstrumentor, including correlated session, connection and response spans, tool/lifecycle events, aggregate audio sizes and existing GenAI response metrics. Existing tracing and content-recording settings apply; message content is not captured by default.
  • Added an optional transport keyword on synchronous and asynchronous realtime connect() using VoiceAgentTransport.WEBSOCKET or VoiceAgentTransport.WEBRTC. The SDK constructs the transport wire query internally.
  • Added preview Microsoft Copilot managed harness and toolset support for prompt agents.

Breaking Changes

All breaking changes affect preview APIs.

Breaking changes in preview classes:

  • Renamed CreateTeamsPhoneExtensionTelephonyBindingRequest, TeamsPhoneExtensionTelephonyBinding, and TeamsPhoneExtensionTelephonyBindingListItem to CreateTeamsPhoneExtensibilityTelephonyBindingRequest, TeamsPhoneExtensibilityTelephonyBinding, and TeamsPhoneExtensibilityTelephonyBindingListItem, respectively.
  • Renamed TelephonyProvider.TEAMS_PHONE_EXTENSION and TelephonyCallLifecycleEventSource.TEAMS_PHONE_EXTENSION to TEAMS_PHONE_EXTENSIBILITY; their wire value changed from teams_phone_extension to teams_phone_extensibility.
  • Removed VoiceAgentRealtimeResponseBase and VoiceResponseBase; their properties now live directly on VoiceAgentRealtimeResponse and VoiceResponse. Several persisted VoiceResponse fields are now optional, and metadata now uses the Metadata model.

Bugs Fixed

  • Fixed synchronous and asynchronous Azure AI Projects long-running operations to treat both cancelled and canceled as terminal cancellation statuses without changing Azure Core polling behavior for other SDKs.

Sample updates

  • Added sample_log_from_voice_agent.py in samples/logs, demonstrating Voice Agent realtime diagnostics through the azure.ai.projects.realtime logger without OpenTelemetry setup.
  • Fixed the realtime audio conversation sample to enable input transcription, count only successfully sent audio payloads, and finish pending capture sends before printing transfer totals.
  • Fixed the conversation deletion snippet to handle the API's no-content response.
  • Updated Voice Agent samples to use FOUNDRY_VOICE_AGENT_MODEL for model configuration, retaining FOUNDRY_VOICE_MODEL as a deprecated fallback in sample_voice_agent_with_tools.py.
  • Renamed Voice Agent realtime samples from sample_voice_agent_live_* to sample_voice_agent_realtime_*, updating usage instructions and cross-references.
  • Updated sample_multiturn_trace_evaluation_agent_filter.py to use the supported agent-name/version filter, remove unsupported command-line filtering options, and configure trace lookback and maximum trace count through TRACE_LOOKBACK_HOURS and TRACE_MAX_TRACES.
  • Updated sample_agent_browser_automation.py to handle the GA remote_function_call browser action items, print complete agent messages instead of per-token deltas, and demonstrate reading the title and description of example.com.
  • Updated Agent Optimization job creation, polling, and cancellation samples to use inline target-completion test cases instead of requiring a registered dataset; JOB_ID is now optional in sample_optimization_job_list_get_delete.py.

Don't miss a new azure-sdk-for-python release

NewReleases is sending notifications on new releases.