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 of flush_spans that offloads the blocking TracerProvider.force_flush to a worker thread so it does not stall the asyncio event loop, and schedule_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_size option from evaluate and 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 BrowserAutomationTool and BrowserAutomationToolboxTool, with ToolboxToolType.BROWSER_AUTOMATION.
  • Added ChatCompletionTool, FunctionObject, and FunctionParameters for describing function tools used by chat completions.
  • Added optional async_property to CustomToolParam, FunctionTool, and FunctionToolParam.
  • Added ConnectionType.OPEN_API and ConnectionType.REMOTE_A2A.
  • Added optional ApiError.misalignment with MisalignmentErrorDetailsResource, MisalignmentErrorType, and MisalignmentSteer.
  • Added gpt-image-2 and gpt-image-2-2026-04-21 as known ImageGenTool.model values.

Breaking Changes

All breaking changes affect preview APIs.

Breaking changes in preview methods:

  • list_optimization_jobs now returns ItemPaged[AgentOptimizationJob] instead of ItemPaged[AgentOptimizationJobListItem].
  • .datasets.begin_create_generation_job now accepts DataGenerationJobInputs instead of DataGenerationJob.
  • .evaluators.begin_create_generation_job now accepts EvaluatorGenerationInputs directly instead of an EvaluatorGenerationJob wrapping the inputs under an inputs property.

Breaking changes in preview classes:

  • Restructured AgentOptimizationCandidate, AgentOptimizationJob, and AgentOptimizationJobResult around typed configuration, candidate output, evaluation, usage, latency, and termination models.
  • DataGenerationJob now requires name, sources, generation_configuration, and scenario instead of inputs.
  • DataGenerationJobInputs now uses generation_configuration and the scenario-specific input models for output configuration.
  • Renamed DataGenerationJobOptions to DataGenerationJobConfiguration, along with its derived classes: SimpleQnADataGenerationJobOptions to SimpleQnADataGenerationJobConfiguration, SimulationSeedDataGenerationJobOptions to SimulationSeedDataGenerationJobConfiguration, ToolUseFineTuningDataGenerationJobOptions to ToolUseFineTuningDataGenerationJobConfiguration, and TracesDataGenerationJobOptions to TracesDataGenerationJobConfiguration.
  • Replaced DataGenerationJobOutputOptions with scenario-specific EvaluationDataGenerationJobOutputConfiguration, SupervisedFineTuningDataGenerationJobOutputConfiguration, and ReinforcementFineTuningDataGenerationJobOutputConfiguration models.
  • Renamed the supervised and reinforcement fine-tuning DataGenerationJobScenario values with a _PREVIEW suffix. Their wire values now also end in _preview.
  • EvaluatorGenerationJob now exposes sources, model, evaluator_name, evaluator_display_name, and evaluator_description as top-level properties and no longer has an inputs property.

App Configuration 1.10.0 Changelog

Other Changes

  • Improved Microsoft Entra ID authentication audience detection for sovereign clouds. When audience is 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

  • ManagedIdentityCredential now 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 AuthorizationCodeCredential and the asynchronous OnBehalfOfCredential could 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 exposes begin_create_ekm_private_endpoint, begin_delete_ekm_private_endpoint, get_ekm_private_endpoint, list_ekm_private_endpoints, and get_ekm_private_endpoint_operation_status.
  • Added KeyVaultEkmPrivateEndpoint, KeyVaultEkmPrivateEndpointConnectionState, KeyVaultEkmPrivateEndpointProperties, and KeyVaultEkmPrivateEndpointOperation models, along with the KeyVaultEkmConnectivityMode, KeyVaultEkmPrivateEndpointConnectionStatus, KeyVaultEkmPrivateEndpointOperationStatus, KeyVaultEkmPrivateEndpointOperationType, and KeyVaultEkmPrivateEndpointProvisioningState enums.
  • Added a connectivity_mode keyword argument and attribute to KeyVaultEkmConnection. Set this to KeyVaultEkmConnectivityMode.PRIVATE_ENDPOINT to reach the EKM proxy through an EKM proxy private endpoint, in which case host is 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 mapping CLIENT spans to RemoteDependencyData (#48979)

Features Added

  • Map the session.id attribute 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 AutoLockRenewer never 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 on close()). 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 raised RecursionError.
  • 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_messages had a lock_token of None, which prevented settling (completing, abandoning, dead-lettering, deferring) or renewing the lock on a deferred message in PEEK_LOCK mode. The lock token is now read from the lock-token field of the management-link response for deferred messages. (#42454)
  • Read com.microsoft:max-message-batch-size vendor property from the AMQP sender link to correctly limit batch size on Premium large-message entities, where max-message-size can 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=True raised TypeError: 'BatchMessage' object is not subscriptable (and a masked AttributeError on the list path) when the first message carried a message_id, session_id, or partition_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 async ServiceBusReceiver annotated the auto_lock_renewer keyword with the synchronous AutoLockRenewer, causing static type checkers to reject the documented azure.servicebus.aio.AutoLockRenewer usage. The annotation now references the async AutoLockRenewer, matching the docstrings and runtime behavior. (#47948)
  • Fixed a bug where closing a PEEK_LOCK receiver 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-session PEEK_LOCK receiver now drains the link (stopping the broker and flushing in-flight transfers) and releases the buffered messages (released disposition), 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 via setsockopt. (#45394)
  • Fixed a bug where passing a fully_qualified_namespace that included a port and/or trailing path (for example the https://<namespace>.servicebus.windows.net:443/ form that Azure returns when provisioning a namespace) raised ServiceBusAuthenticationError. The namespace is now normalized to its bare host, matching the .NET and JavaScript SDKs. (#44034)
  • Fixed a bug where iterating over a ServiceBusReceiver suppressed automatic HTTP instrumentation (e.g. from opentelemetry-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 compact list0 encoding where every field is omitted. A field encoded as an explicit null but whose declared default is non-null (for example a max_frame_size set to null so the connection would compare None < 512) now also reads back as that default.
  • Fixed a bug where PEEK_LOCK settlements on the pure-Python AMQP transport were sent pre-settled even though the receiver link negotiates rcv-settle-mode=second, so the service’s terminal outcome (including com.microsoft:message-lock-lost rejections) 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 example await asyncio.gather(*(receiver.complete_message(m) for m in messages))). Unaffected where outcomes cannot be observed: RECEIVE_AND_DELETE mode and uamqp_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_timeout client 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 fresh try_timeout, still capped by the caller’s remaining time; exceeding it raises a retryable OperationTimeoutError and retries. Must be greater than 0 if specified, and defaults to None (off) for other operations; management-link settlement retains a 60-second fallback. It also caps the link acquisition performed by receive_messages() and by receiver iteration, but does not bound the receive_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. Mirrors TryTimeout in the .NET, Java and Go SDKs.

  • Added ServiceBusReceivedMessage.from_bytes() classmethod to construct a ServiceBusReceivedMessage from raw AMQP payload bytes without requiring the deprecated uamqp library. (#43979)
  • Added ServiceBusClient.list_queue_sessions() and ServiceBusClient.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 an ItemPaged[str] (AsyncItemPaged[str] on the async client) so callers can iterate every session transparently or page with by_page(). Implements the com.microsoft:get-message-sessions management operation. (#46575)
  • Added sql_filter_count and correlation_filter_count properties to TopicRuntimeProperties, exposing the total number of SQL filters and correlation filters across all of a topic’s subscriptions.
  • Added API version 2024-05 and 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 explicit max_wait_time still 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 a NEXT_AVAILABLE_SESSION; open the receiver first (for example with a context manager) to keep that governed solely by the constructor’s max_wait_time.

Storage - Blobs 12.30.3 Changelog

Bugs Fixed

  • Async clients now reject header names and values containing a \r or \n when 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 list support to BlobSasPermissions for use with directory-scoped SAS tokens.

Bugs Fixed

  • Fixed an issue where destination_snapshot on a blob’s copy properties was always None when listing blobs with response_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-core Request/Response types will no longer be supported and may now cause errors if used. Please ensure custom transports are utilizing types from azure.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-core Request/Response types will no longer be supported and may now cause errors if used. Please ensure custom transports are utilizing types from azure.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 request finally block ran TracerProvider.force_flush inline, 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-blocking flush_spans_async() by default. A new AGENTSERVER_FLUSH_MODE environment variable selects the strategy: async (default, off the event loop), background (return the response first, flush in the background – requires a platform drain window), or sync (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_GUID when 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-core dependency to the stable 2.2.0 release.

unknown 1.0.0b1 Changelog

Features Added

  • Add the generated InputChunk hierarchy and InputChunkType. Existing ModelInputChunk keyword/mapping calls remain valid and now emit type="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_format for compatible sampling providers and the friendly SamplingOperationResult alias for SampleOperationResult.
  • 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 is None, with no boolean/float/string coercion or inferred counts. The identical SamplingOperationResult alias and existing constructor keywords/overloads are unchanged.
  • Support AZURE_AI_FINETUNING_MAX_CHUNK_BYTES as 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 TrainingType enum, 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_PREVIEW from 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_config with LoRAConfig.rank in session creation and checkpoint-resume methods, and in CreateSessionRequest. No implicit rank or empty configuration is supplied.
  • The distribution is named azure-ai-finetuningsessions and Python imports now use azure.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_dead polling failures to TrainingEngineError, 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-core versions to <3.0.0.
  • Changed the default AGENTSERVER_FLUSH_MODE from async to background so Responses request completion no longer awaits telemetry export. Unset, empty, whitespace-only, and invalid values use background; invalid values continue to log a warning. Explicit async and sync selections retain their existing behavior. Background export requires a platform drain window before suspension or shutdown; request completion does not guarantee telemetry delivery. Set AGENTSERVER_FLUSH_MODE=async to 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_rerank APIs 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_reference on 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.