Azure SDK for Python (October 2026)
The Azure SDK team is pleased to announce our October 2026 client library releases.
61 packages released this month.
Stable Packages (23)
-
AI Agent Server - Core
-
AI Projects
-
App Configuration
-
Identity
-
Resource Management - Compute
-
Resource Management - Compute Fleet
-
Resource Management - Container Service
-
Resource Management - Features
-
Resource Management - Key Vault
-
Resource Management - Locks
-
Resource Management - Oracle Database
-
Resource Management - Relationships
-
Resource Management - Resource-Policy
-
Resource Management - Storage
-
Resource Management - Storage Cache
-
Resource Management - Template Specs
-
Resource Management - Traffic Manager
-
Service Bus
-
Storage - Blobs
-
Storage - Files Data Lake
-
Storage - Files Share
-
Storage - Queues
-
unknown
Patch Updates (8)
-
AI Evaluation
-
Azure Monitor OpenTelemetry
-
Key Vault - Administration
-
Key Vault - Certificates
-
Key Vault - Keys
-
Key Vault - Secrets
-
Machine Learning
-
Storage - Blobs
Beta Packages (21)
-
AI Agent Server - Core
-
Content Safety
-
Key Vault - Administration
-
Key Vault - Security Domain
-
OpenTelemetry Exporter
-
Resource Management - Elastic SAN
-
Resource Management - App Network
-
Resource Management - Azure AI Search
-
Resource Management - Compute Bulk Actions
-
Resource Management - Confluent
-
Resource Management - Container Service
-
Resource Management - Containerserviceaimanager
-
Resource Management - Platform Validation
-
Resource Management - PostgreSQL Flexible Servers
-
Resource Management - Resilience Management
-
Resource Management - SQL
-
Resource Management - Secrets Store Extension
-
Resource Management - Storage Discovery
-
Text Analytics
-
Web PubSub Chat
-
unknown
Release highlights
AI Agent Server - Core 2.2.0b2 Changelog
Features Added
- Added
flush_spans_async, a non-blocking variant offlush_spansthat offloads the blockingTracerProvider.force_flushto a worker thread so it does not stall the asyncio event loop, andschedule_flush_spans, a fire-and-forget helper that flushes in the background without delaying the caller. Background flushes are coalesced: at most one runs at a time and concurrent requests collapse into a single follow-up flush, so the work does not grow with the request rate. Async flushes drain queued or running exports before propagating request cancellation. Both helpers are marked@experimental.
AI Agent Server - Core 2.2.0 Changelog
Other Changes
- Stable release promoting the 2.2.0 preview series. No functional changes since 2.2.0b2.
AI Evaluation 1.18.6 Changelog
Bugs Fixed
- Fixed automatic mappings for Azure OpenAI graders omitting nested input fields with duplicate leaf names from the evaluation schema, and corrected type inference for wrapped input fields.
- Prevented AOAI data-source generation from mutating nested input data shared with callable evaluators.
AI Evaluation 1.18.7 Changelog
Breaking Changes
- Removed the
aoai_output_items_page_sizeoption fromevaluateand its input validation. Callers using this option must remove it; it no longer configures native Azure OpenAI grader output retrieval. Output-item requests again use a fixed page size of 100 and the existing OpenAI client’s configured retry policy, without adaptive page-size reduction or a separate SDK-level retry budget. All cursor pages are still retrieved, and result ordering and missing-row alignment are unchanged.
Bugs Fixed
- Fixed native Azure OpenAI grader evaluations overriding explicit item-schema types and constraints with inferred schemas and converting corresponding typed input values to strings during request construction, including fields governed by a schema-valued
additionalProperties.
AI Evaluation 1.18.8 Changelog
Bugs Fixed
- Fixed legacy safety annotation polling retrying terminal HTTP 400 errors until timeout. Both workspace and project polling paths now preserve the original service error immediately and log the operation ID, poll count, and elapsed time without response content or credentials; pending responses and other retry behavior are unchanged.
- Fixed multi-turn evaluations failing during Azure OpenAI result conversion when per-turn token-count lists were routed into scalar token-usage fields. Per-turn breakdowns are now excluded from scalar result-field routing, preserving aggregate token counts and scores. (#49242)
- Fixed conversation-history formatting falling back to raw input when included system messages use typed text content blocks instead of plain strings, including the tool-call-aware formatting path.
AI Projects 2.8.0 Changelog
Features Added
- Agent Optimization APIs are now GA, including job management, cost estimation, candidate retrieval, and candidate promotion.
- Added typed Agent Optimization models for agent and prompt optimization, configuration, evaluation, candidate search and mutations, cost estimates, latency, token usage, and termination details.
- Data generation job APIs are now GA.
- Added scenario-specific data generation models for evaluation, supervised fine-tuning, reinforcement fine-tuning, and user-conversation simulation.
- Evaluator lifecycle and generation job APIs are now GA.
- Added GA Agent tools
BrowserAutomationToolandBrowserAutomationToolboxTool, withToolboxToolType.BROWSER_AUTOMATION. - Added
ChatCompletionTool,FunctionObject, andFunctionParametersfor describing function tools used by chat completions. - Added optional
async_propertytoCustomToolParam,FunctionTool, andFunctionToolParam. - Added
ConnectionType.OPEN_APIandConnectionType.REMOTE_A2A. - Added optional
ApiError.misalignmentwithMisalignmentErrorDetailsResource,MisalignmentErrorType, andMisalignmentSteer. - Added
gpt-image-2andgpt-image-2-2026-04-21as knownImageGenTool.modelvalues.
Breaking Changes
All breaking changes affect preview APIs.
Breaking changes in preview methods:
list_optimization_jobsnow returnsItemPaged[AgentOptimizationJob]instead ofItemPaged[AgentOptimizationJobListItem]..datasets.begin_create_generation_jobnow acceptsDataGenerationJobInputsinstead ofDataGenerationJob..evaluators.begin_create_generation_jobnow acceptsEvaluatorGenerationInputsdirectly instead of anEvaluatorGenerationJobwrapping the inputs under aninputsproperty.
Breaking changes in preview classes:
- Restructured
AgentOptimizationCandidate,AgentOptimizationJob, andAgentOptimizationJobResultaround typed configuration, candidate output, evaluation, usage, latency, and termination models. DataGenerationJobnow requiresname,sources,generation_configuration, andscenarioinstead ofinputs.DataGenerationJobInputsnow usesgeneration_configurationand the scenario-specific input models for output configuration.- Renamed
DataGenerationJobOptionstoDataGenerationJobConfiguration, along with its derived classes:SimpleQnADataGenerationJobOptionstoSimpleQnADataGenerationJobConfiguration,SimulationSeedDataGenerationJobOptionstoSimulationSeedDataGenerationJobConfiguration,ToolUseFineTuningDataGenerationJobOptionstoToolUseFineTuningDataGenerationJobConfiguration, andTracesDataGenerationJobOptionstoTracesDataGenerationJobConfiguration. - Replaced
DataGenerationJobOutputOptionswith scenario-specificEvaluationDataGenerationJobOutputConfiguration,SupervisedFineTuningDataGenerationJobOutputConfiguration, andReinforcementFineTuningDataGenerationJobOutputConfigurationmodels. - Renamed the supervised and reinforcement fine-tuning
DataGenerationJobScenariovalues with a_PREVIEWsuffix. Their wire values now also end in_preview. EvaluatorGenerationJobnow exposessources,model,evaluator_name,evaluator_display_name, andevaluator_descriptionas top-level properties and no longer has aninputsproperty.
App Configuration 1.10.0 Changelog
Other Changes
- Improved Microsoft Entra ID authentication audience detection for sovereign clouds. When
audienceis not set, the client now derives it from the App Configuration endpoint hostname. An explicitly configured audience continues to override detection.
Azure Monitor OpenTelemetry 1.8.11 Changelog
Other Changes
- Corrected the package metadata to require Python 3.10 or later, matching the existing support policy (#49200)
Content Safety 1.1.0b1 Changelog
Breaking Changes
- Python 3.10 or later is now required.
Features Added
- Added support for Content Provenance Detection operations.
- Added support for Unified Moderate policy evaluation.
- Added support for prompt shielding and protected-material detection.
- Added regular-expression matching for text blocklist items.
Identity 1.26.0 Changelog
Features Added
ManagedIdentityCredentialnow supports user-assigned managed identities on Azure Arc-enabled servers. An identity can be selected by client ID, object ID, or resource ID. Token responses that do not confirm the requested identity are rejected. (#48967)
Bugs Fixed
- Fixed synchronous Service Fabric managed identity authentication with MSAL 1.39.0 and later. Service Fabric now uses the session from an Azure Core
RequestsTransport. (#48967) - Fixed an issue where
AuthorizationCodeCredentialand the asynchronousOnBehalfOfCredentialcould return a cached token for another account when multiple credentials shared a token cache. (#49001)
Key Vault - Administration 4.8.0b3 Changelog
Features Added
- Added support for service API version
2026-07-01-preview#48963 - Added EKM proxy private endpoint management to
KeyVaultEkmClient. The client now exposesbegin_create_ekm_private_endpoint,begin_delete_ekm_private_endpoint,get_ekm_private_endpoint,list_ekm_private_endpoints, andget_ekm_private_endpoint_operation_status. - Added
KeyVaultEkmPrivateEndpoint,KeyVaultEkmPrivateEndpointConnectionState,KeyVaultEkmPrivateEndpointProperties, andKeyVaultEkmPrivateEndpointOperationmodels, along with theKeyVaultEkmConnectivityMode,KeyVaultEkmPrivateEndpointConnectionStatus,KeyVaultEkmPrivateEndpointOperationStatus,KeyVaultEkmPrivateEndpointOperationType, andKeyVaultEkmPrivateEndpointProvisioningStateenums. - Added a
connectivity_modekeyword argument and attribute toKeyVaultEkmConnection. Set this toKeyVaultEkmConnectivityMode.PRIVATE_ENDPOINTto reach the EKM proxy through an EKM proxy private endpoint, in which casehostis the name of the private endpoint instead of a DNS name or IP address.
Bugs Fixed
- Fixed a bug in the challenge authentication policy where the authentication challenge was cached before the challenge resource was verified. The challenge is now cached only after resource verification succeeds #48710.
Key Vault - Administration 4.7.2 Changelog
Bugs Fixed
- Reject request URLs containing backslashes in the authority before authentication.
- Verify cached authentication challenges before token use and clear rejected or malformed challenges without removing newer entries installed by concurrent requests.
- Preserve redirect header updates and cleanup when restoring request bodies during authentication.
- Remove stale request authorization and clear the observed cached challenge when a 401 response omits
WWW-Authenticate, without retrying authentication.
Key Vault - Certificates 4.11.3 Changelog
Bugs Fixed
- Reject request URLs containing backslashes in the authority before authentication.
- Verify cached authentication challenges before token use and clear rejected or malformed challenges without removing newer entries installed by concurrent requests.
- Preserve redirect header updates and cleanup when restoring request bodies during authentication.
- Remove stale request authorization and clear the observed cached challenge when a 401 response omits
WWW-Authenticate, without retrying authentication.
Key Vault - Keys 4.11.3 Changelog
Bugs Fixed
- Reject request URLs containing backslashes in the authority before authentication.
- Verify cached authentication challenges before token use and clear rejected or malformed challenges without removing newer entries installed by concurrent requests.
- Preserve redirect header updates and cleanup when restoring request bodies during authentication.
- Remove stale request authorization and clear the observed cached challenge when a 401 response omits
WWW-Authenticate, without retrying authentication.
Key Vault - Secrets 4.11.3 Changelog
Bugs Fixed
- Reject request URLs containing backslashes in the authority before authentication.
- Verify cached authentication challenges before token use and clear rejected or malformed challenges without removing newer entries installed by concurrent requests.
- Preserve redirect header updates and cleanup when restoring request bodies during authentication.
- Remove stale request authorization and clear the observed cached challenge when a 401 response omits
WWW-Authenticate, without retrying authentication.
Key Vault - Security Domain 1.0.0b4 Changelog
Bugs Fixed
- Reject request URLs containing backslashes in the authority before authentication.
- Verify cached authentication challenges before token use and clear rejected or malformed challenges without removing newer entries installed by concurrent requests.
- Preserve redirect header updates and cleanup when restoring request bodies during authentication.
- Remove stale request authorization and clear the observed cached challenge when a 401 response omits
WWW-Authenticate, without retrying authentication.
Machine Learning 1.35.1 Changelog
Bugs Fixed
- Fixed artifact cache path validation, wildcard version handling across supported Python versions, and concurrent downloads for component
additional_includes. - Fixed artifact cache reads failing on transient Windows checksum-sharing errors during initial validation.
- Improved the missing Azure CLI error reported when initializing the artifact cache.
- Fixed
MLClient.jobs.download(..., output_name=...)returning without downloading named data outputs (#48941). - Fixed
MLClient.jobs.stream()failing for jobs using identity-based or SAS-authenticated datastores. - Fixed datastore-backed log streaming for output paths ending in a slash and corrected log URL generation for Azure Data Lake Storage Gen2.
- Fixed Azure DevOps artifact tool downloads to validate request URLs and extracted executables before installing an override.
OpenTelemetry Exporter 1.0.0b58 Changelog
Bugs Fixed
- Update to the new stable OpenTelemetry database semantic conventions
(
db.system.name,db.query.text,db.operation.name,db.namespace) when mappingCLIENTspans toRemoteDependencyData(#48979)
Features Added
- Map the
session.idattribute on spans and logs to the Azure Monitor session context (#49179)
Resource Management - Elastic SAN 3.0.0b1 Changelog
Resource Management - App Network 1.0.0b2 Changelog
Resource Management - Azure AI Search 10.0.0b2 Changelog
Resource Management - Compute 38.4.0 Changelog
Resource Management - Compute Bulk Actions 1.0.0b5 Changelog
Resource Management - Compute Fleet 2.0.0 Changelog
Resource Management - Confluent 3.0.0b2 Changelog
Resource Management - Container Service 41.7.0 Changelog
Resource Management - Container Service 41.8.0b1 Changelog
Resource Management - Containerserviceaimanager 1.0.0b2 Changelog
Resource Management - Features 1.0.0 Changelog
Resource Management - Key Vault 14.1.0 Changelog
Resource Management - Locks 1.0.0 Changelog
Resource Management - Oracle Database 4.0.0 Changelog
Resource Management - Platform Validation 1.0.0b1 Changelog
Resource Management - PostgreSQL Flexible Servers 3.0.0b3 Changelog
Resource Management - Relationships 1.0.0 Changelog
Resource Management - Resilience Management 1.0.0b2 Changelog
Resource Management - Resource-Policy 1.0.0 Changelog
Resource Management - SQL 5.0.0b2 Changelog
Resource Management - Secrets Store Extension 1.0.0b2 Changelog
Resource Management - Storage 25.2.0 Changelog
Resource Management - Storage Cache 4.1.0 Changelog
Resource Management - Storage Discovery 1.1.0b1 Changelog
Resource Management - Template Specs 1.0.0 Changelog
Resource Management - Traffic Manager 2.0.0 Changelog
Service Bus 7.15.0 Changelog
Bugs Fixed
- Fixed a bug where the async
AutoLockRenewernever released completed renewal futures from its internal collection, so a long-lived renewer accumulated one entry per registered message for its whole lifetime (memory growth proportional to the total messages processed, reclaimed only onclose()). Each renewal future is now removed as soon as it completes, keeping the collection bounded by the number of active renewals. (#48366) - Bounded the nesting depth of AMQP compound types (lists, maps, arrays, and described types) in the pyAMQP decoder to a maximum of 64. A payload nested deeper than that is now rejected early with a
ValueError; previously such payloads were bounded only by the Python recursion limit and raisedRecursionError. -
Management, send and receive operations now bound AMQP link acquisition by the caller’s timeout, rather than timing only the operation that follows it. Previously a link that never became ready could block indefinitely even when a timeout was supplied. Management and send deduct the time spent from the operation itself, so one attempt shares a single budget.
- Fixed a bug where messages returned by
receive_deferred_messageshad alock_tokenofNone, which prevented settling (completing, abandoning, dead-lettering, deferring) or renewing the lock on a deferred message inPEEK_LOCKmode. The lock token is now read from thelock-tokenfield of the management-link response for deferred messages. (#42454) - Read
com.microsoft:max-message-batch-sizevendor property from the AMQP sender link to correctly limit batch size on Premium large-message entities, wheremax-message-sizecan be up to 100 MB but the batch limit is 1 MB. - Fixed a bug where sending a batched or multi-message payload with
uamqp_transport=TrueraisedTypeError: 'BatchMessage' object is not subscriptable(and a maskedAttributeErroron the list path) when the first message carried amessage_id,session_id, orpartition_key. The batch envelope properties are now set through the transport-appropriate code path. (regression from #42598) - Fixed a bug where the async receiver factory methods on
azure.servicebus.aio.ServiceBusClient(get_queue_receiver,get_subscription_receiver) and the asyncServiceBusReceiverannotated theauto_lock_renewerkeyword with the synchronousAutoLockRenewer, causing static type checkers to reject the documentedazure.servicebus.aio.AutoLockRenewerusage. The annotation now references the asyncAutoLockRenewer, matching the docstrings and runtime behavior. (#47948) - Fixed a bug where closing a
PEEK_LOCKreceiver did not release messages that had been prefetched into the client buffer or were still in flight, so they remained locked at the broker until lock expiry — delaying their redelivery and inflating their delivery count. On close, a non-sessionPEEK_LOCKreceiver now drains the link (stopping the broker and flushing in-flight transfers) and releases the buffered messages (releaseddisposition), so the broker can redeliver them immediately without incrementing the delivery count. (#42917) - Fixed a bug where the async pure-Python AMQP transport failed to connect with
[Errno 22] Invalid argument(amqp:socket-error) inside containerized/virtualized environments such as Docker Desktop on macOS. The transport no longer reads back and re-applies platform-negotiated TCP options (e.g.TCP_MAXSEG) that some platforms reject viasetsockopt. (#45394) - Fixed a bug where passing a
fully_qualified_namespacethat included a port and/or trailing path (for example thehttps://<namespace>.servicebus.windows.net:443/form that Azure returns when provisioning a namespace) raisedServiceBusAuthenticationError. The namespace is now normalized to its bare host, matching the .NET and JavaScript SDKs. (#44034) - Fixed a bug where iterating over a
ServiceBusReceiversuppressed automatic HTTP instrumentation (e.g. fromopentelemetry-instrumentation-httpx/requests) while user code processed a received message, causing the user’s own outbound HTTP spans to be dropped. The receive tracing span is now closed before the message is yielded to the caller, so suppression no longer leaks into message processing. (#42755) - Fixed a bug in the pyAMQP transport where decoding an incoming performative whose trailing null fields were omitted by the sender (permitted by AMQP 1.0 section 1.4) raised
IndexError/TypeError. The decoded field list is now padded to the performative’s full field count so omitted trailing fields read back as their AMQP-defined default, including the compactlist0encoding where every field is omitted. A field encoded as an explicit null but whose declared default is non-null (for example amax_frame_sizeset to null so the connection would compareNone < 512) now also reads back as that default. - Fixed a bug where
PEEK_LOCKsettlements on the pure-Python AMQP transport were sent pre-settled even though the receiver link negotiatesrcv-settle-mode=second, so the service’s terminal outcome (includingcom.microsoft:message-lock-lostrejections) was discarded and a settlement the service never applied was indistinguishable from success — surfacing only as the message being redelivered at lock expiry. Settlements now wait for the service to confirm the outcome and raise when it is rejected, matching the .NET, Java, JavaScript, and Go SDKs, which all await the disposition unconditionally. This is a behavior change: confirming costs one service round trip per settlement, so settle many messages concurrently rather than one at a time (for exampleawait asyncio.gather(*(receiver.complete_message(m) for m in messages))). Unaffected where outcomes cannot be observed:RECEIVE_AND_DELETEmode anduamqp_transport=True. - Fixed management-link message settlement fallback after a receiver link is detached. The pyAMQP transport no longer waits for that broken receiver link before using its independent management links, and both management-link acquisition and request/response have a client-side deadline. Settlement uses the configured
try_timeout, or 60 seconds when unset, and keeps retries at the existing outer layer.
Features Added
-
Added an opt-in
try_timeoutclient keyword that bounds a single attempt rather than the whole operation. Applies to sending, management operations (including management-link message settlement), and AMQP link acquisition, where the wait for the link to become ready was previously unbounded. Each attempt gets a freshtry_timeout, still capped by the caller’s remaining time; exceeding it raises a retryableOperationTimeoutErrorand retries. Must be greater than 0 if specified, and defaults toNone(off) for other operations; management-link settlement retains a 60-second fallback. It also caps the link acquisition performed byreceive_messages()and by receiver iteration, but does not bound thereceive_messages()long poll, the iterator’s own wait, or receiver-link message settlement. Opening, closing and error-path cleanup of the AMQP handler are bounded on the async client, where a slow call is cancelled once the budget is spent and a cleanup failure never replaces the error that triggered it; the sync client cannot interrupt a blocking call and so detects the overrun only once it returns. MirrorsTryTimeoutin the .NET, Java and Go SDKs. - Added
ServiceBusReceivedMessage.from_bytes()classmethod to construct aServiceBusReceivedMessagefrom raw AMQP payload bytes without requiring the deprecateduamqplibrary. (#43979) - Added
ServiceBusClient.list_queue_sessions()andServiceBusClient.list_subscription_sessions()(sync and async) to list session IDs for entities with active messages or stored session state, with optional filtering by session-state update timestamp. The methods return anItemPaged[str](AsyncItemPaged[str]on the async client) so callers can iterate every session transparently or page withby_page(). Implements thecom.microsoft:get-message-sessionsmanagement operation. (#46575) - Added
sql_filter_countandcorrelation_filter_countproperties toTopicRuntimeProperties, exposing the total number of SQL filters and correlation filters across all of a topic’s subscriptions. - Added API version
2024-05and made it the default for the management client, which is required for the topic filter counts above.
Breaking Changes
receive_messages()now returns an empty list after 60 seconds when no wait time was given on the call or the receiver; it previously had no deadline and blocked until a message arrived or the connection closed. An explicitmax_wait_timestill wins, and receiver iteration is unchanged. On a receiver that has not been opened yet, this wait now also bounds the initial link acquisition, including connecting to aNEXT_AVAILABLE_SESSION; open the receiver first (for example with a context manager) to keep that governed solely by the constructor’smax_wait_time.
Storage - Blobs 12.30.3 Changelog
Bugs Fixed
- Async clients now reject header names and values containing a
\ror\nwhen sending a batch request, matching the behavior of the sync clients.
Storage - Blobs 12.31.0 Changelog
Features Added
- Stable release of features from 12.31.0b1
- Added
listsupport toBlobSasPermissionsfor use with directory-scoped SAS tokens.
Bugs Fixed
- Fixed an issue where
destination_snapshoton a blob’s copy properties was alwaysNonewhen listing blobs withresponse_format="arrow".
Storage - Files Data Lake 12.26.0 Changelog
Features Added
- Stable release of features from 12.26.0b1
Storage - Files Share 12.27.0 Changelog
Features Added
- Stable release of features from 12.27.0b1
Breaking Changes
- Custom transports that use legacy
azure-coreRequest/Response types will no longer be supported and may now cause errors if used. Please ensure custom transports are utilizing types fromazure.core.rest.
Storage - Queues 12.18.0 Changelog
Features Added
- Stable release of features from 12.18.0b1
Breaking Changes
- Custom transports that use legacy
azure-coreRequest/Response types will no longer be supported and may now cause errors if used. Please ensure custom transports are utilizing types fromazure.core.rest.
Text Analytics 6.0.0b3 Changelog
Web PubSub Chat 1.0.0b1 Changelog
Features Added
- Initial preview release of the Azure Web PubSub Chat Service client library for Python
- Added connection string, access key, and Microsoft Entra ID authentication
- Added client access token generation for connected Chat clients
- Added built-in Chat role and permission constants
- Support for room management (create, get, update, delete rooms)
- Support for user management (create, get, delete users)
- Support for room membership management (add, list, delete room members)
- Support for message operations (list, update, delete messages)
- Support for role-based access control (create, get, list, delete roles)
unknown 2.2.0b2 Changelog
Bugs Fixed
-
Closed a graceful-shutdown admission race for stored streams and bounded DELETE waits when deferred terminal persistence is stalled.
- Changed the default history fetch limit from 100 to -1 (unlimited), avoiding automatic truncation of conversation history. Positive limits remain supported.
- Restored compatibility with usage payloads that omit
ResponseUsageInputTokensDetails.cache_write_tokens. -
The per-request span flush in the Responses endpoint no longer blocks the asyncio event loop. The synchronous
flush_spans()call in the requestfinallyblock ranTracerProvider.force_flushinline, which blocks the event loop until the exporter drains and serialises concurrent requests behind a single export (head-of-line blocking). It now awaits the non-blockingflush_spans_async()by default. A newAGENTSERVER_FLUSH_MODEenvironment variable selects the strategy:async(default, off the event loop),background(return the response first, flush in the background – requires a platform drain window), orsync(legacy blocking behaviour). Streaming requests use the same strategy for a single flush after stream cleanup, without an additional pre-stream flush. - Scoped durable multi-turn task IDs with
FOUNDRY_AGENT_SESSION_GUIDwhen available, preventing recreated same-name sessions from colliding with task tombstones. Existing pre-rollout active chains remain resumable through a legacy-ID lookup.
Features Added
- Added optional response metadata to
ResponseEventStream.emit_failed. Invalid failure metadata is logged and omitted so metadata validation cannot suppress the original failure response.
unknown 1.0.0b1 Changelog
unknown 1.0.0b2 Changelog
unknown 2.2.0 Changelog
Other Changes
- Stable release promoting the 2.2.0 preview series. No functional changes since 2.2.0b2.
- Updated the minimum
azure-ai-agentserver-coredependency to the stable2.2.0release.
unknown 1.0.0b1 Changelog
Features Added
- Add the generated
InputChunkhierarchy andInputChunkType. ExistingModelInputChunkkeyword/mapping calls remain valid and now emittype="text"; image inputs retain their existing serialization and validation. - Reuse the current 12-member canonical shared
FoundryFeaturesOptInKeys, preserving six original member names/values with six canonical additions. The fine-tuning preview header is unchanged. - Add optional
SamplingParams.response_formatfor compatible sampling providers and the friendlySamplingOperationResultalias forSampleOperationResult. - Include Loom’s maintained read-only
SampleOperationResult.prompt_tokens: Optional[int]for backend-reported evidence, counted once per prompt. Accept only exact non-negative integers; missing or invalid evidence isNone, with no boolean/float/string coercion or inferred counts. The identicalSamplingOperationResultalias and existing constructor keywords/overloads are unchanged. - Support
AZURE_AI_FINETUNING_MAX_CHUNK_BYTESas an import-time positive-integer override for the approximate request chunk-size budget. Unset or invalid values keep the 5,000,000-byte default; invalid values log a warning. Service-side limits are unchanged. - Add the string-backed
TrainingTypeenum, reusing the REST training-tier definition. Existing string inputs and omission behavior remain supported. - Initial preview of interactive fine-tuning sessions with synchronous and asynchronous clients.
- Forward-only requests, checkpoint resume and deletion, JSON-valued session metadata, and training-tier selection.
- Multimodal image input, vision/projector LoRA settings, nullable prompt log-probabilities, and per-operation metrics.
- Bounded retries, preserved session identifiers, typed service errors, and operation progress logging.
Breaking Changes
- Require Python 3.10 or later; Python 3.9 is no longer supported.
- Remove
AGENTS_OPTIMIZATION_V2_PREVIEWfrom the historical 13-member enum snapshot to follow its removal from the upstream canonical definition; the six original fine-tuning SDK members remain available. - Require an explicit
lora_configwithLoRAConfig.rankin session creation and checkpoint-resume methods, and inCreateSessionRequest. No implicit rank or empty configuration is supplied. - The distribution is named
azure-ai-finetuningsessionsand Python imports now useazure.ai.finetuningsessions. Remove older preview installations and update imports/dependency files before installing this build. - The preview baseline replaces the earlier regenerated-only surface with the established preview API plus explicitly documented contract changes. Callers of earlier raw models, operation methods, or keyword adapters should check the current signatures when migrating.
Bugs Fixed
- Preserve credential redirect protections with the declared minimum Azure Core 1.37.0 as well as current versions; handle the cleanup flag location change in Azure Core 1.38.3.
- Drain async heartbeat tasks before session/client shutdown, including concurrent cancellation; share the sync client’s pipeline so custom policies work and all transports close normally.
- Bound creation and sustained-error retry sleeps; tolerate bounded request-store propagation after creation and reject unexpected polling states immediately.
- Reject empty training batches and incomplete sampler identifiers; bound synchronous chunk workers and offload async forward chunking.
- Preserve generic handling for explicit non-batch payload limits and typed errors for malformed capacity retry hints; reject unhandled redirects during deletion.
- Propagate direct-route context headers through default raw-operation pipelines with endpoint scoping and caller overrides; omit response payloads from normal INFO logs.
- Preserve the sync heartbeat thread when shutdown has not completed, validate mapping-form image inputs, and return actual completed Tasks from async multichunk/wave methods as documented.
- Handle nested HTTP 503 error details while preserving flat-response compatibility.
- Map
engine_deadpolling failures toTrainingEngineError, preserving error codes and diagnostic references without retrying lost engine state. - Handle non-object error bodies safely, ignore invalid or non-finite retry hints, and validate positional image mappings consistently with keyword inputs.
- Require HTTPS and configured-origin scoping for default API-key authentication, with explicit configured-loopback HTTP opt-in only. Remove SDK-default direct-route headers outside their origin/path scope, including prepopulated defaults, while preserving distinct caller overrides.
- Disable automatic POST transport retries in default sync/async policies, including heartbeats. Explicit retry policies remain caller-owned; this does not guarantee deduplication or change convenience-level recovery decisions.
- Make default raw
begin_*pollers use HTTP 200 acceptance and session/request-ID GET polling in both clients, without POST replay or synthetic HTTP 202. Preserve result callbacks, custom polling, no-polling, and strategy-specific continuation behavior.
unknown 2.3.0b1 Changelog
Other Changes
- Expanded supported
azure-ai-agentserver-coreversions to<3.0.0. - Changed the default
AGENTSERVER_FLUSH_MODEfromasynctobackgroundso Responses request completion no longer awaits telemetry export. Unset, empty, whitespace-only, and invalid values usebackground; invalid values continue to log a warning. Explicitasyncandsyncselections retain their existing behavior. Background export requires a platform drain window before suspension or shutdown; request completion does not guarantee telemetry delivery. SetAGENTSERVER_FLUSH_MODE=asyncto retain request-awaited flushing.
unknown 1.2.0 Changelog
Other Changes
- Stable release of the 1.2.0 preview series.
- Generate fallback invocation and session IDs only when no valid supplied ID is available.
unknown 1.0.0b1 Changelog
Features Added
- Initial preview of the Azure Data AI semantic reranking client.
- Synchronous and asynchronous
InferenceClient.semantic_rerankAPIs accepting generated request models or dictionaries and returning generated response models with dictionary-style access. - API-key authentication with
AzureKeyCredential, and Microsoft Entra authentication, for both synchronous and asynchronous clients. - Reranking options for model selection, batching, sorting, and JSON document paths.
- Document and sentence-level scoring, response metadata, and standard Azure Core error handling and retry policies.
unknown 2.3.0b2 Changelog
Bugs Fixed
- Preserved the canonical request
agent_referenceon lifecycle snapshots when handlers emit a partial reference, preventing stored response updates from losing the agent name or version.
Latest Releases
View all the latest versions of Python packages here.
Installation Instructions
To install the latest beta version of the packages, copy and paste the following commands into a terminal:
$> pip install azure-ai-agentserver-core==2.2.0b2
$> pip install azure-ai-agentserver-core==2.2.0
$> pip install azure-ai-agentserver-invocations==1.2.0
$> pip install azure-ai-agentserver-responses==2.2.0b2
$> pip install azure-ai-agentserver-responses==2.2.0
$> pip install azure-ai-agentserver-responses==2.3.0b1
$> pip install azure-ai-agentserver-responses==2.3.0b2
$> pip install azure-ai-contentsafety==1.1.0b1
$> pip install azure-ai-evaluation==1.18.6
$> pip install azure-ai-evaluation==1.18.7
$> pip install azure-ai-evaluation==1.18.8
$> pip install azure-ai-finetuningsessions==1.0.0b1
$> pip install azure-ai-ml==1.35.1
$> pip install azure-ai-projects==2.8.0
$> pip install azure-ai-textanalytics==6.0.0b3
$> pip install azure-appconfiguration==1.10.0
$> pip install azure-data-ai==1.0.0b1
$> pip install azure-identity==1.26.0
$> pip install azure-keyvault-administration==4.8.0b3
$> pip install azure-keyvault-administration==4.7.2
$> pip install azure-keyvault-certificates==4.11.3
$> pip install azure-keyvault-keys==4.11.3
$> pip install azure-keyvault-secrets==4.11.3
$> pip install azure-keyvault-securitydomain==1.0.0b4
$> pip install azure-messaging-webpubsubchatservice==1.0.0b1
$> pip install azure-mgmt-appnetwork==1.0.0b2
$> pip install azure-mgmt-compute==38.4.0
$> pip install azure-mgmt-compute-bulkaction==1.0.0b5
$> pip install azure-mgmt-computefleet==2.0.0
$> pip install azure-mgmt-computeworkloadmanager==1.0.0b1
$> pip install azure-mgmt-computeworkloadmanager==1.0.0b2
$> pip install azure-mgmt-confluent==3.0.0b2
$> pip install azure-mgmt-containerservice==41.7.0
$> pip install azure-mgmt-containerservice==41.8.0b1
$> pip install azure-mgmt-containerserviceaimanager==1.0.0b2
$> pip install azure-mgmt-elasticsan==3.0.0b1
$> pip install azure-mgmt-keyvault==14.1.0
$> pip install azure-mgmt-oracledatabase==4.0.0
$> pip install azure-mgmt-platformvalidation==1.0.0b1
$> pip install azure-mgmt-postgresqlflexibleservers==3.0.0b3
$> pip install azure-mgmt-relationships==1.0.0
$> pip install azure-mgmt-resiliencemanagement==1.0.0b2
$> pip install azure-mgmt-resource-features==1.0.0
$> pip install azure-mgmt-resource-locks==1.0.0
$> pip install azure-mgmt-resource-policy==1.0.0
$> pip install azure-mgmt-resource-templatespecs==1.0.0
$> pip install azure-mgmt-search==10.0.0b2
$> pip install azure-mgmt-secretsstoreextension==1.0.0b2
$> pip install azure-mgmt-sql==5.0.0b2
$> pip install azure-mgmt-storage==25.2.0
$> pip install azure-mgmt-storagecache==4.1.0
$> pip install azure-mgmt-storagediscovery==1.1.0b1
$> pip install azure-mgmt-trafficmanager==2.0.0
$> pip install azure-monitor-opentelemetry==1.8.11
$> pip install azure-monitor-opentelemetry-exporter==1.0.0b58
$> pip install azure-servicebus==7.15.0
$> pip install azure-storage-blob==12.30.3
$> pip install azure-storage-blob==12.31.0
$> pip install azure-storage-file-datalake==12.26.0
$> pip install azure-storage-file-share==12.27.0
$> pip install azure-storage-queue==12.18.0
Feedback
If you have a bug or feature request for one of the libraries, please post an issue to GitHub.