Azure SDK for Python (May 2026)
The Azure SDK team is pleased to announce our May 2026 client library releases.
50 packages released this month.
Stable Packages (18)
-
AI Projects
-
Azure AI Search
-
Azure Content Understanding in Foundry Tools
-
Batch
-
Core - Client - Core
-
Key Vault - Certificates
-
Key Vault - Secrets
-
Resource Management - App Service
-
Resource Management - Attestation
-
Resource Management - Compute
-
Resource Management - Computelimit
-
Resource Management - Container Service
-
Resource Management - Durable Task
-
Resource Management - Hybrid Kubernetes
-
Resource Management - IoT Operations
-
Resource Management - Kubernetesconfiguration-Extensions
-
Resource Management - NetApp Files
-
Resource Management - Planetarycomputer
Patch Updates (4)
-
AI Evaluation
-
Key Vault - Certificates
-
Resource Management - Confidential Ledger
-
unknown
Beta Packages (13)
-
AI Agent Server - Core
-
Azure AI Transcription
-
Azure Content Understanding in Foundry Tools
-
Core - Client - Tracing Opentelemetry
-
Resource Management - App Configuration
-
Resource Management - Authorization
-
Resource Management - Azure Stack HCI
-
Resource Management - Compute
-
Resource Management - Container Service
-
Resource Management - Cosmos DB
-
Resource Management - Recovery Services Backup
-
Resource Management - Recovery Services Site Recovery
-
unknown
Release highlights
AI Agent Server - Core 2.0.0b1 Changelog
Features Added
AgentServerHostbase class with built-in health probe (/readiness), graceful shutdown (configurable timeout), and Hypercorn-based ASGI serving.- Cooperative mixin inheritance for multi-protocol composition — a single server can host both Responses and Invocations endpoints.
- Automatic OpenTelemetry tracing with Azure Monitor and OTLP exporters.
configure_observabilityconstructor parameter for overridable logging + tracing setup. ConsoleStreamHandleris attached to the root logger by default so userlogging.info()calls are visible without any extra configuration.request_span()context manager for creating request-scoped OTel spans with GenAI semantic convention attributes.end_span(),record_error(),flush_spans(),trace_stream()public functions for protocol SDK tracing lifecycle.set_current_span()/detach_context()for explicit OTel context management during streaming, ensuring child spans are correctly parented.AgentConfigdataclass for resolved configuration from environment variables (Foundry agent name, version, project ID, session ID, etc.).create_error_response()utility for standard error envelope JSON responses.build_server_version()for constructingx-platform-serverheader segments.- HTTP access logging with configurable format via
access_logandaccess_log_formatconstructor parameters.
Breaking Changes
- Package split: All Responses API protocol types (models, handler decorators, SSE streaming)
have moved to
azure-ai-agentserver-responses. All Invocations protocol types have moved toazure-ai-agentserver-invocations. This package now contains only the shared hosting foundation. FoundryCBAgentremoved: Replaced byAgentServerHost, a Starlette subclass that IS the ASGI app (no separate.appproperty orregister_routes()).AgentRunContextremoved: Protocol packages provide their own context types (ResponseContextin Responses,request.statein Invocations).TracingHelperclass removed: Replaced by module-level functions (request_span,end_span,record_error,trace_stream) for a simpler functional API.AgentLogger/get_logger()removed: Uselogging.getLogger("azure.ai.agentserver")directly, or rely on the SDK’s automatic console logging setup.ErrorResponse.create()removed: Replaced bycreate_error_response()module-level function.- Health endpoint renamed:
/healthy→/readiness. - OpenTelemetry is now a required dependency (was optional
[tracing]extras in 1.x). - Environment variables changed:
AGENT_LOG_LEVELandAGENT_GRACEFUL_SHUTDOWN_TIMEOUTare no longer read fromConstants. Use thelog_levelandgraceful_shutdown_timeoutconstructor parameters instead.
AI Agent Server - Core 2.0.0b2 Changelog
Features Added
- Startup configuration logging —
AgentServerHostlifespan now emits three INFO-level log lines at startup: platform environment (agent name, version, port, session ID, SSE keep-alive), connectivity (project endpoint and OTLP endpoint masked to scheme://host, Application Insights configured flag), and host options (shutdown timeout, registered protocols). Sensitive values (Application Insights connection string) are never logged. InboundRequestLoggingMiddleware— pure-ASGI middleware wired automatically byAgentServerHostthat logs every inbound HTTP request. Logs method, path (no query string), status code, duration in milliseconds, and correlation headers (x-request-id,x-ms-client-request-id). Status codes >= 400 are logged at WARNING; unhandled exceptions are logged as status 500 at WARNING. OpenTelemetry trace ID is included when an active trace exists.- Inbound request logs now include
trace-idextracted from the W3Ctraceparentheader, even when no OTel span is active at middleware level. Previously the trace-id was only available after the endpoint handler created a request span.
Bugs Fixed
- Fixed duplicate console log output when a
StreamHandlerwas already present on the root logger (e.g. fromlogging.basicConfig()or framework setup). The SDK now detects any existingStreamHandlerbefore adding its own, not just its sentinel-marked handler.
AI Agent Server - Core 2.0.0b3 Changelog
Features Added
RequestIdMiddleware— pure-ASGI middleware that sets anx-request-idresponse header on every response. The request ID is resolved from the OpenTelemetry trace ID, an incomingx-request-idheader, or a generated UUID (in that priority). The resolved value is stored in ASGI scope state under the well-known keyagentserver.request_idfor use by sibling protocol packages. Automatically wired intoAgentServerHost.
AI Evaluation 1.16.6 Changelog
Bugs Fixed
- Fixed evaluation token usage not being emitted in the genai evaluation event, causing token consumption metrics to be missing from telemetry.
- Fixed multi-turn red team attacks(
RedTeamingAttack-based strategies likeMultiTurn) failing silently with PyRIT 0.11. Two bugs were patched at the SDK level: (1)RedTeamingAttack._setup_asyncraisedRuntimeError: Conversation already existsbecause it seeded prepended conversation messages before callingset_system_prompt; now patched per-instance on the adversarial chat target to tolerate existing conversation history. (2)RedTeamingAttack._generate_next_prompt_asyncreturnedcontext.next_messagewithout calling.duplicate_message(), causingsqlite3.IntegrityError: UNIQUE constraint failed: PromptMemoryEntries.idon the second turn; now patched at module load with an idempotent wrapper that duplicates the message before returning. - Fixed
sensitive_data_leakagered team attacks producing 100% false-pass rates._extract_context_itemsin the Foundry execution path only handledlistordictshapes formessages[0].context; pre-curated SDL attack objectives store the document text as astrwith siblingcontext_type/tool_namefields, so the document was silently dropped and a fallback synthesized a context item from the user prompt. The agent never received the sensitive document content and could not leak it, causing the evaluator to score every attempt as a pass. Addedstrhandling (both message-level and top-level), normalized raw string entries inside list-shaped context, and gated thecontext_typefallback so it only runs when no usable context was extracted (including thecontext: nullcase).
AI Evaluation 1.16.7 Changelog
Bugs Fixed
_TaskNavigationEfficiencyEvaluatornow accepts JSON-stringifiedresponseandground_truthinputs (e.g., from data pipelines that serialize list/tuple inputs to strings). String inputs are parsed as JSON; on parse failure the original value is preserved so downstream validation surfaces the error as before.- Fixed error blame attribution in
_get_single_run_resultsto perform a case-insensitive comparison when checking the AOAI error code forUserError, ensuring failed evaluation runs are correctly classified as user errors regardless of server-side casing. - Fixed
deflection_rateevaluator showing incorrect pass/fail labels where all results were labeled “pass” regardless of the actual score. The inverse metric adjustment was overriding the evaluator’s correct string labels, remapping every result to “pass”. - Fixed
evaluate()raisingEvaluationException: (InternalError) unhashable type: 'list'when an evaluator emitted a list value under a_result-suffixed column. Binary aggregation now skips such columns with a warning instead of aborting the entire run. - Fixed
task_adherencered team scoring by addingscenario=redteamto the RAI scorer evaluation payload, ensuring the server-side score mapping correctly routes to Direct mapping for attack success determination. - Fixed row classification double-counting in
_calculate_aoai_evaluation_summarywhere errored rows were counted separately and could also be counted as passed/failed. Rows are now classified into mutually exclusive buckets with priority: passed > failed > errored > skipped. - Fixed row classification where rows with empty or missing results lists were incorrectly counted as “passed” (the condition
passed_count == len(results) - error_countevaluated0 == 0as True). - Fixed
_get_metric_resultprefix matching where shorter metric names (e.g.,xpia) could match before longer, more-specific ones (e.g.,xpia_manipulated_content). Now sorts by length descending for correct longest-prefix matching. - Fixed non-dict
_propertiesvalues from evaluators causing downstream issues. Values that are not dicts are now logged and dropped gracefully. - Fixed filename length error in
_inline_imageby catching OSError/ValueError during local path resolution and fall back to returning a text chunk instead of throwing.
Features Added
-
Added
extra_headerskeyword argument toRaiServiceEvaluatorBase(and all content safety evaluators) to allow passing custom HTTP headers to all backend RAI service calls. SDK-owned headers (Authorization,User-Agent,Content-Type,aml-user-token,x-ms-client-request-id) cannot be overridden byextra_headers. - Added
statusfield ("completed","error","skipped") on evaluation result items to indicate evaluator execution outcome. - Added
skippedanderroredcounts toresult_countsandper_testing_criteria_resultsin AOAI evaluation summaries. - Added
skippedtoResultCountandskipped/erroredtoPerTestingCriteriaResulttyped contracts.
AI Projects 2.1.0 Changelog
Breaking Changes
- Tracing: trace context propagation is enabled by default when tracing is enabled.
Features Added
get_openai_client()onAIProjectClientnow takes an optional input argumentagent_name. If provided, the returned OpenAI client will use a base URL of Agent endpoint instead of Foundry Project endpoint. As Agent endpoints are a preview feature, you need to setallow_preview=Trueon theAIProjectClientconstructor.- New
.beta.agentssub-client added, with Session operations (those only work with Hosted Agents) create_session()delete_session()delete_session_file()download_session_file()get_session()get_session_files()list_sessions()upload_session_file()- Also on
.beta.agentssub-client, a new methodpatch_agent_details(). - New
beta.skillssub-client added, with Skills operations: create()create_from_package()delete()download()get()list()update()- New
beta.toolboxessub-client added, with Toolboxes operations: create_version()delete()delete_version()get()get_version()list()list_versions()update()- Type hinting support for OpenAI client operations
.evals.create()and.evals.runs.create(), when you get the OpenAI client usingget_openai_client()method ofAIProjectClient. This includes new TypedDicts classes to help you author the input to these methods. See new TypedDict classesModelSamplingConfigParam,ToolDescriptionParam,AzureAIAgentTargetParam,AzureAIModelTargetParam,ResponseRetrievalItemGenerationParams,AzureAIResponsesEvalRunDataSource,AzureAIDataSourceConfig,TargetCompletionEvalRunDataSource,TestingCriterionAzureAIEvaluator,AzureAIBenchmarkPreviewEvalRunDataSource,EvalCsvFileIdSource,EvalCsvRunDataSource,RedTeamEvalRunDataSource,TracesPreviewEvalRunDataSource.
Bugs Fixed
- Fix missing type hinting on the returned OpenAI client from method ‘get_openai_client()`.
Azure AI Search 12.0.0 Changelog
Features Added
- Below clients, models, and enum members are added for knowledge base support
azure.search.documents.knowledgebases.KnowledgeBaseRetrievalClientazure.search.documents.indexes.models.AzureBlobKnowledgeSourceazure.search.documents.indexes.models.IndexedOneLakeKnowledgeSourceazure.search.documents.indexes.models.KnowledgeBaseazure.search.documents.indexes.models.SearchIndexKnowledgeSourceazure.search.documents.indexes.models.WebKnowledgeSourceazure.search.documents.knowledgebases.models.KnowledgeBaseActivityRecordType.MODEL_WEB_SUMMARIZATIONazure.search.documents.knowledgebases.models.KnowledgeBaseModelWebSummarizationActivityRecordazure.search.documents.knowledgebases.models.KnowledgeRetrievalMinimalReasoningEffortazure.search.documents.knowledgebases.models.KnowledgeRetrievalReasoningEffortazure.search.documents.knowledgebases.models.KnowledgeSourceStatisticsazure.search.documents.knowledgebases.models.KnowledgeSourceStatus-
azure.search.documents.knowledgebases.models.KnowledgeSourceSynchronizationError - Below properties are added or changed for index and indexer enhancements
azure.search.documents.indexes.models.SearchIndexerDataSourceConnection.identityfor managed identity support on data source connections.azure.search.documents.indexes.models.SearchIndexerKnowledgeStore.identityfor managed identity support on knowledge store projections.-
azure.search.documents.indexes.models.SearchResourceEncryptionKey.key_versionchanged from required to optional, aligning with service behavior. - Below enum members and properties are added for Markdown parsing
azure.search.documents.indexes.models.BlobIndexerParsingMode.MARKDOWNenum value for native Markdown file parsing in blob indexers.azure.search.documents.indexes.models.IndexingParametersConfiguration.markdown_header_depth(h1throughh6) to set header depth for sectioning.-
azure.search.documents.indexes.models.IndexingParametersConfiguration.markdown_parsing_submode(oneToOneoroneToMany) to control document splitting. - Below models are added
azure.search.documents.indexes.models.ChatCompletionCommonModelParametersazure.search.documents.indexes.models.ChatCompletionResponseFormatazure.search.documents.indexes.models.ChatCompletionSchemaazure.search.documents.indexes.models.ChatCompletionSkillazure.search.documents.indexes.models.ContentUnderstandingSkillazure.search.documents.indexes.models.ContentUnderstandingSkillChunkingPropertiesazure.search.documents.indexes.models.ContentUnderstandingSkillChunkingUnitazure.search.documents.indexes.models.ContentUnderstandingSkillExtractionOptionsazure.search.documents.knowledgebases.models.AIServicesazure.search.documents.knowledgebases.models.CompletedSynchronizationStateazure.search.documents.knowledgebases.models.SynchronizationState
Breaking Changes
serialize()anddeserialize()methods on models are removed. Useas_dict()to serialize and the model constructor to deserialize (e.g.,index.as_dict()instead ofindex.serialize(),SearchIndex(data)instead ofSearchIndex.deserialize(data)).- Below models do not exist in this release
azure.search.documents.indexes.models.EntityRecognitionSkillazure.search.documents.indexes.models.EntityRecognitionSkillVersionazure.search.documents.indexes.models.PathHierarchyTokenizer(renamed toPathHierarchyTokenizerV2)azure.search.documents.indexes.models.SentimentSkillazure.search.documents.indexes.models.SentimentSkillVersion- Below enum members do not exist in this release
azure.search.documents.indexes.models.SearchIndexerDataSourceType.MY_SQL(renamed toMYSQL)azure.search.documents.indexes.models.SearchIndexerDataSourceType.ONE_LAKE(renamed toONELAKE)- Below properties do not exist in this release
azure.search.documents.indexes.models.BinaryQuantizationCompression.rerank_with_original_vectorsazure.search.documents.indexes.models.ScalarQuantizationCompression.rerank_with_original_vectorsazure.search.documents.indexes.models.VectorSearchCompression.rerank_with_original_vectors
The following changes do not impact the API of stable versions such as 11.6.0. Only code written against a beta version such as 11.7.0b2 may be affected.
- Below models do not exist in this release
azure.search.documents.indexes.models.AIServicesVisionParametersazure.search.documents.indexes.models.AIServicesVisionVectorizerazure.search.documents.indexes.models.AzureMachineLearningSkillazure.search.documents.indexes.models.AzureOpenAITokenizerParametersazure.search.documents.indexes.models.IndexedSharePointContainerNameazure.search.documents.indexes.models.IndexerCurrentStateazure.search.documents.indexes.models.IndexerExecutionStatusDetailazure.search.documents.indexes.models.IndexerPermissionOptionazure.search.documents.indexes.models.IndexerRuntimeazure.search.documents.indexes.models.IndexingModeazure.search.documents.indexes.models.IndexStatisticsSummaryazure.search.documents.indexes.models.KnowledgeRetrievalLowReasoningEffortazure.search.documents.indexes.models.KnowledgeRetrievalMediumReasoningEffortazure.search.documents.indexes.models.KnowledgeRetrievalOutputModeazure.search.documents.indexes.models.KnowledgeSourceIngestionPermissionOptionazure.search.documents.indexes.models.PermissionFilterazure.search.documents.indexes.models.SearchIndexerCacheazure.search.documents.indexes.models.SearchIndexPermissionFilterOptionazure.search.documents.indexes.models.ServiceIndexersRuntimeazure.search.documents.indexes.models.SplitSkillEncoderModelNameazure.search.documents.indexes.models.SplitSkillUnitazure.search.documents.indexes.models.VisionVectorizeSkillazure.search.documents.knowledgebases.models.IndexedSharePointKnowledgeSourceParamsazure.search.documents.knowledgebases.models.KnowledgeBaseIndexedSharePointReferenceazure.search.documents.knowledgebases.models.KnowledgeBaseModelAnswerSynthesisActivityRecordazure.search.documents.knowledgebases.models.KnowledgeBaseModelQueryPlanningActivityRecordazure.search.documents.knowledgebases.models.KnowledgeBaseRemoteSharePointReferenceazure.search.documents.knowledgebases.models.RemoteSharePointKnowledgeSourceParamsazure.search.documents.models.DebugInfoazure.search.documents.models.HybridCountAndFacetModeazure.search.documents.models.HybridSearchazure.search.documents.models.QueryLanguageazure.search.documents.models.QueryResultDocumentInnerHitazure.search.documents.models.QueryResultDocumentRerankerInputazure.search.documents.models.QueryResultDocumentSemanticFieldazure.search.documents.models.QueryRewritesDebugInfoazure.search.documents.models.QueryRewritesTypeazure.search.documents.models.QueryRewritesValuesDebugInfoazure.search.documents.models.QuerySpellerTypeazure.search.documents.models.SearchDocumentsResultazure.search.documents.models.SearchScoreThresholdazure.search.documents.models.SemanticDebugInfoazure.search.documents.models.SemanticFieldStateazure.search.documents.models.SemanticQueryRewritesResultTypeazure.search.documents.models.VectorSimilarityThresholdazure.search.documents.models.VectorThresholdazure.search.documents.models.VectorThresholdKind-
SharePoint knowledge source types (
IndexedSharePointKnowledgeSource,RemoteSharePointKnowledgeSourceand related models includingIndexedSharePointKnowledgeSourceParameters,RemoteSharePointKnowledgeSourceParameters,SharePointSensitivityLabelInfo) - Below properties do not exist in this release
azure.search.documents.indexes.models.ChatCompletionSkill.auth_resource_idazure.search.documents.indexes.models.ChatCompletionSkill.batch_sizeazure.search.documents.indexes.models.ChatCompletionSkill.degree_of_parallelismazure.search.documents.indexes.models.ChatCompletionSkill.http_headersazure.search.documents.indexes.models.ChatCompletionSkill.http_methodazure.search.documents.indexes.models.ChatCompletionSkill.timeoutazure.search.documents.indexes.models.IndexerExecutionResult.modeazure.search.documents.indexes.models.IndexerExecutionResult.status_detailazure.search.documents.indexes.models.KnowledgeBase.answer_instructionsazure.search.documents.indexes.models.KnowledgeBase.output_modeazure.search.documents.indexes.models.KnowledgeBase.retrieval_instructionsazure.search.documents.indexes.models.KnowledgeBase.retrieval_reasoning_effortazure.search.documents.indexes.models.KnowledgeSourceIngestionParameters.ingestion_permission_optionsazure.search.documents.indexes.models.SearchField.permission_filterazure.search.documents.indexes.models.SearchField.sensitivity_labelazure.search.documents.indexes.models.SearchIndex.permission_filter_optionazure.search.documents.indexes.models.SearchIndex.purview_enabledazure.search.documents.indexes.models.SearchIndexer.cacheazure.search.documents.indexes.models.SearchIndexerDataSourceConnection.indexer_permission_optionsazure.search.documents.indexes.models.SearchIndexerDataSourceConnection.sub_typeazure.search.documents.indexes.models.SearchIndexerDataUserAssignedIdentity.federated_identity_client_idazure.search.documents.indexes.models.SearchIndexerKnowledgeStore.parametersazure.search.documents.indexes.models.SearchIndexerStatus.current_stateazure.search.documents.indexes.models.SearchIndexerStatus.runtimeazure.search.documents.indexes.models.SearchServiceStatistics.indexers_runtimeazure.search.documents.indexes.models.SemanticConfiguration.flighting_opt_inazure.search.documents.indexes.models.SplitSkill.azure_open_ai_tokenizer_parametersazure.search.documents.indexes.models.SplitSkill.unitazure.search.documents.knowledgebases.models.AzureBlobKnowledgeSourceParams.always_query_sourceazure.search.documents.knowledgebases.models.IndexedOneLakeKnowledgeSourceParams.always_query_sourceazure.search.documents.knowledgebases.models.KnowledgeBaseRetrievalRequest.max_output_sizeazure.search.documents.knowledgebases.models.KnowledgeBaseRetrievalRequest.messagesazure.search.documents.knowledgebases.models.KnowledgeBaseRetrievalRequest.output_modeazure.search.documents.knowledgebases.models.KnowledgeBaseRetrievalRequest.retrieval_reasoning_effortazure.search.documents.knowledgebases.models.KnowledgeSourceParams.always_query_sourceazure.search.documents.knowledgebases.models.WebKnowledgeSourceParams.always_query_sourceazure.search.documents.models.DebugInfo.query_rewritesazure.search.documents.models.DocumentDebugInfo.inner_hitsazure.search.documents.models.DocumentDebugInfo.semanticazure.search.documents.models.FacetResult.avgazure.search.documents.models.FacetResult.cardinalityazure.search.documents.models.FacetResult.facetsazure.search.documents.models.FacetResult.maxazure.search.documents.models.FacetResult.minazure.search.documents.models.FacetResult.sumazure.search.documents.models.SearchDocumentsResult.debug_infoazure.search.documents.models.SearchDocumentsResult.semantic_query_rewrites_result_typeazure.search.documents.models.VectorizableTextQuery.query_rewritesazure.search.documents.models.VectorQuery.filter_overrideazure.search.documents.models.VectorQuery.per_document_vector_limit-
azure.search.documents.models.VectorQuery.threshold - Below parameters do not exist in this release
SearchClient.search.hybrid_searchSearchClient.search.query_languageSearchClient.search.query_rewritesSearchClient.search.semantic_fieldsSearchClient.search.spellerSearchIndexerClient.create_or_update_data_source_connection.skip_indexer_reset_requirement_for_cacheSearchIndexerClient.create_or_update_indexer.disable_cache_reprocessing_change_detectionSearchIndexerClient.create_or_update_indexer.skip_indexer_reset_requirement_for_cacheSearchIndexerClient.create_or_update_skillset.disable_cache_reprocessing_change_detection-
SearchIndexerClient.create_or_update_skillset.skip_indexer_reset_requirement_for_cache - Below operations do not exist in this release
SearchIndexClient.list_index_stats_summarySearchIndexerClient.reset_documentsSearchIndexerClient.reset_skills-
SearchIndexerClient.resync - Below enum values do not exist in this release
azure.search.documents.indexes.models.AzureOpenAIModelName.GPT4_Oazure.search.documents.indexes.models.AzureOpenAIModelName.GPT4_O_MINIazure.search.documents.indexes.models.AzureOpenAIModelName.GPT41azure.search.documents.indexes.models.AzureOpenAIModelName.GPT41_MINIazure.search.documents.indexes.models.AzureOpenAIModelName.GPT41_NANOazure.search.documents.indexes.models.AzureOpenAIModelName.GPT5azure.search.documents.indexes.models.AzureOpenAIModelName.GPT5_MINI(renamed toGPT_5_MINI)azure.search.documents.indexes.models.AzureOpenAIModelName.GPT5_NANO(renamed toGPT_5_NANO)azure.search.documents.indexes.models.KnowledgeSourceKind.INDEXED_ONE_LAKE(renamed toINDEXED_ONELAKE)azure.search.documents.indexes.models.SearchIndexerDataSourceType.SHARE_POINT(renamed toSHAREPOINT)azure.search.documents.knowledgebases.models.KnowledgeBaseActivityRecordType.INDEXED_ONE_LAKE(renamed toINDEXED_ONELAKE)azure.search.documents.knowledgebases.models.KnowledgeBaseReferenceType.INDEXED_ONE_LAKE(renamed toINDEXED_ONELAKE)azure.search.documents.knowledgebases.models.KnowledgeRetrievalReasoningEffortKind.LOWazure.search.documents.knowledgebases.models.KnowledgeRetrievalReasoningEffortKind.MEDIUM
Azure AI Transcription 1.0.0b4 Changelog
Other Changes
- Moved the package to a new service category folder
transcription.
Azure Content Understanding in Foundry Tools 1.1.0 Changelog
Features Added
- Added
usageproperty onAnalyzeLROPollerandAnalyzeAsyncLROPollerto surface billing and token consumption details (UsageDetails) returned by the REST API.
Azure Content Understanding in Foundry Tools 1.2.0b1 Changelog
Features Added
- Added
to_llm_inputhelper function that convertsAnalysisResultobjects into LLM-friendly text with YAML front matter and markdown content. Supports documents, audio/video, and classification hierarchies.
Batch 15.1.0 Changelog
Breaking Changes
- Renamed
BatchNodeUserUpdateOptionstoBatchNodeUserReplaceOptions. -
Renamed
OutputFileUploadConfigtoOutputFileUploadConfiguration. - Removed Models:
-
Removed
AuthenticationTokenSettings - NameSpace changed
azure.batch.models._models: BatchJobTerminateOptionsBatchNodeDeallocateOptionsBatchNodeRebootOptions-
BatchNodeReimageOptions - Removed Enums:
-
Removed
BatchAccessScope - NameSpace changed
azure.batch.models._enums: BatchNodeDeallocateOptionBatchNodeRebootKind-
BatchNodeReimageOption - Renamed public methods:
list_sub_tasks->list_subtasksget_task_file->download_task_file-
get_node_file->download_node_file - Renamed parameters across all operation methods:
timeout->service_timeoutocpdate->ocp_datestarttime->start_timeendtime->end_time-
concurrencies->max_concurrency - Renamed properties in models:
e_tag->etaginBatchJob,BatchJobSchedule,BatchPool,BatchTask, andBatchTaskCreateResultvalues_property->error_valuesinAutoScaleRunError,BatchError, andResizeErrorvalues_property->result_valuesinCollectionResultvalues_property->task_valuesinBatchTaskGroup-
avg_memory_gi_b->avg_memory_gib,peak_memory_gi_b->peak_memory_gib,avg_disk_gi_b->avg_disk_gib,peak_disk_gi_b->peak_disk_gib,disk_read_gi_b->disk_read_gib,disk_write_gi_b->disk_write_gib,network_read_gi_b->network_read_gib,network_write_gi_b->network_write_gibinBatchPoolResourceStatistics - Removed Properties:
- Removed
authentication_token_settingsfromBatchJobManagerTask,BatchStartTask, andBatchTask - Removed
accessfromAuthenticationTokenSettings
Core - Client - Core 1.40.0 Changelog
Features Added
- Added support for per-operation
http_logging_leveloverrides inHttpLoggingPolicy. #44115 - Introduced the keyword argument
additional_allowed_query_paramstoDistributedTracingPolicyandHttpLoggingPolicyto allow users to specify additional URL query parameters that should not be redacted in span attributes or logs. #46482 - Users can specify this at the SDK client level by passing
additional_allowed_query_paramsto the client constructor. For example:client = ServiceClient(..., additional_allowed_query_params={"custom_param"}). This will apply to all operations performed by the client.
Core - Client - Core 1.41.0 Changelog
Features Added
AZURE_LOG_LEVELnow acceptsVERBOSE(case-insensitive) as an alias forDEBUG. #46668
Core - Client - Tracing Opentelemetry 1.0.0b13 Changelog
Breaking Changes
- Remapped certain attributes to converge with OpenTelemetry semantic conventions version
1.23.1(#34089): http.method->http.request.methodhttp.status_code->http.response.status_codenet.peer.name->server.addressnet.peer.port->server.porthttp.url->url.full
Key Vault - Certificates 4.11.0 Changelog
Features Added
- Added support for service API version
2025-07-01 - Added
urisandip_addressesproperties toSubjectAlternativeNames
Bugs Fixed
- When creating a certificate with an unknown issuer,
CertificateClient.(begin_)create_certificatenow returns aCertificateOperationinstead ofNone - When a certificate operation’s error doesn’t have an inner error,
CertificateOperationErrorwill be correctly serialized instead of raising an exception (Azure/azure-cli #31764)
Key Vault - Certificates 4.11.1 Changelog
Bugs Fixed
- Fixed
CertificateClient.begin_create_certificate(and its async counterpart) incorrectly raisingValueErrorwhen aCertificatePolicywas created with onlysan_ip_addressesorsan_urisand nosubject,san_dns_names,san_emails, orsan_user_principal_names. IP addresses and URIs are valid subject alternative name types and are now recognized by the client’s policy validator.
Key Vault - Secrets 4.11.0 Changelog
Features Added
- Added support for service API version
2025-07-01 - Added support for retrieving secrets with
out_content_type - Added the
previous_versionproperty toSecretProperties
Resource Management - App Configuration 6.0.0b2 Changelog
Resource Management - App Service 11.0.0 Changelog
Resource Management - Attestation 2.0.0 Changelog
Resource Management - Authorization 5.0.0b2 Changelog
Resource Management - Azure Stack HCI 8.1.0b1 Changelog
Resource Management - Compute 38.0.0b1 Changelog
Resource Management - Compute 38.0.0 Changelog
Resource Management - Computelimit 1.0.0 Changelog
Resource Management - Confidential Ledger 1.0.1 Changelog
Resource Management - Container Service 41.1.0 Changelog
Resource Management - Container Service 41.2.0b1 Changelog
Resource Management - Cosmos DB 10.0.0b6 Changelog
Resource Management - Durable Task 1.1.0 Changelog
Resource Management - Hybrid Kubernetes 1.2.0 Changelog
Resource Management - IoT Operations 1.1.0 Changelog
Resource Management - Kubernetesconfiguration-Extensions 1.0.0 Changelog
Resource Management - NetApp Files 16.0.0 Changelog
Resource Management - Planetarycomputer 1.0.0 Changelog
Resource Management - Recovery Services Backup 11.0.0b1 Changelog
Resource Management - Recovery Services Site Recovery 2.0.0b1 Changelog
unknown 1.0.0b1 Changelog
Features Added
- Initial release of
azure-ai-agentserver-responses. ResponsesAgentServerHost— Starlette-based host with Responses protocol endpoints (POST /responses,GET /responses/{id},POST /responses/{id}/cancel,DELETE /responses/{id},GET /responses/{id}/input_items).TextResponse— high-level convenience for text-only responses with automatic SSE lifecycle. Accepts a plain string, sync/async callable, or async iterable via thetextparameter.ResponseEventStream— low-level builder API for emitting SSE events with full control over output items (message, function call, reasoning, file search, web search, code interpreter, image gen, MCP, custom tool).- Convenience generators (
output_item_message(),output_item_function_call(),output_item_reasoning_item()) and async streaming variants (aoutput_item_message(), etc.) for common patterns. - New convenience generators for all output item types:
output_item_image_gen_call(),output_item_structured_outputs(),output_item_computer_call(),output_item_computer_call_output(),output_item_local_shell_call(),output_item_local_shell_call_output(),output_item_function_shell_call(),output_item_function_shell_call_output(),output_item_apply_patch_call(),output_item_apply_patch_call_output(),output_item_custom_tool_call_output(),output_item_mcp_approval_request(),output_item_mcp_approval_response(),output_item_compaction(), plus async variants for all. output_item_message()andaoutput_item_message()now accept anannotationskeyword argument for attaching typedAnnotationinstances (file_path, file_citation, url_citation).- New factory methods on
ResponseEventStream:add_output_item_structured_outputs(),add_output_item_computer_call(),add_output_item_computer_call_output(),add_output_item_local_shell_call(),add_output_item_local_shell_call_output(),add_output_item_function_shell_call(),add_output_item_function_shell_call_output(),add_output_item_apply_patch_call(),add_output_item_apply_patch_call_output(),add_output_item_custom_tool_call_output(),add_output_item_mcp_approval_request(),add_output_item_mcp_approval_response(),add_output_item_compaction(). data_urlutility module (is_data_url(),decode_bytes(),try_decode_bytes(),get_media_type()) for parsing RFC 2397 data URLs in image/file inputs.IdGenerator.new_structured_output_item_id()with"fco"partition prefix.- Samples 12–16: image generation, image input, file inputs, annotations, structured outputs.
ResponseContextprovidingresponse_id, conversation history loading, input item access viaget_input_items()(returnsItemsubtypes),get_input_text()convenience for extracting text content, isolation context, and client headers.ResponsesServerOptionsfor configuring default model, SSE keep-alive, shutdown grace period, and other runtime options.- Support for all execution modes: default (synchronous), streaming (SSE), background, and streaming + background.
- Automatic SSE event replay for previously streamed responses via
?stream=true. - Cooperative cancellation via
asyncio.Eventand graceful shutdown integration. InMemoryResponseProvideras the default in-process state store.ResponseProviderProtocolandResponseStreamProviderProtocolfor custom storage implementations.- Built-in distributed tracing with OpenTelemetry integration.
unknown 1.0.0b3 Changelog
Bugs Fixed
- Background non-stream finalization now passes isolation keys to
update_response— previously theisolation=kwarg was missing, causing Foundry storage to return 404 when isolation headers were present (the response was created in a scoped partition but the update targeted the unscoped partition). This left responses permanently stuck atin_progress.
unknown 1.0.0b2 Changelog
Features Added
- Startup configuration logging —
ResponsesAgentServerHostlogs storage provider type, default model, default fetch history count, and shutdown grace period at INFO level during construction. InboundRequestLoggingMiddlewaremoved toazure-ai-agentserver-core— pure-ASGI middleware that logs every inbound HTTP request at INFO level (start) and at INFO or WARNING level (completion). Now wired automatically byAgentServerHostso all protocol hosts get consistent inbound logging. Includes method, path (no query string), status code, duration in milliseconds, and correlation headers (x-request-id,x-ms-client-request-id). Status codes >= 400 are logged at WARNING; unhandled exceptions are logged as status 500 at WARNING. OpenTelemetry trace ID is included when an active trace exists.- Handler-level diagnostic logging — all five endpoint handlers (
POST /responses,GET /responses/{id},DELETE /responses/{id},POST /responses/{id}/cancel,GET /responses/{id}/input_items) now emit INFO-level logs at entry and on success, including response ID, status, and output count where applicable. - Orchestrator handler invocation logging — logs the handler function name and response ID at INFO level before each handler invocation.
- Chat isolation key enforcement — when a response is created with an
x-agent-chat-isolation-keyheader, subsequent GET, DELETE, Cancel, and InputItems requests must include the same key. Mismatched or missing keys return an indistinguishable 404 to prevent cross-chat information leakage. Backward-compatible: no enforcement when the response was created without a key. - Malformed response ID validation — all endpoints that accept a
response_idpath parameter now reject malformed IDs (wrong prefix, too short) with HTTP 400 (error.type: "invalid_request_error",error.code: "invalid_parameters",param: "responseId{<value>}") before touching storage. Theprevious_response_idfield in POST body is also validated. FoundryStorageLoggingPolicy— Azure Core per-retry pipeline policy that logs Foundry storage HTTP calls (method, URI, status code, duration, correlation headers) at theazure.ai.agentserverlogger. Replaces the built-inHttpLoggingPolicyin the Foundry pipeline to provide single-line summaries with duration timing and log-level escalation (WARNING for 4xx/5xx).FoundryStorageLoggingPolicynow logsx-request-idandapim-request-idresponse headers from Foundry in addition tox-ms-client-request-idandx-ms-request-id, matching the .NET SDK’s diagnostic detail. This enables verifying that the inbound trace-id round-trips through Foundry storage calls.- Foundry storage User-Agent — outbound HTTP requests to Foundry storage now carry a
User-Agentheader reflecting the exactx-platform-servervalue (lazy callback via_ServerVersionUserAgentPolicy) so upstream logs can correlate inbound and outbound traffic.
Bugs Fixed
- SSE stream replay now works when the response provider does not implement
ResponseStreamProviderProtocol(e.g.FoundryStorageProvider). Previously,GET /responses/{id}?stream=truereturned HTTP 400 after eager eviction because no stream provider was configured. The host now auto-provisions an in-memory stream provider as a fallback. item_referenceinputs are now resolved at persistence time — when aPOST /responsesrequest includesitem_referenceentries in its input, they are batch-resolved via the provider before being stored. Previously,item_referenceentries were silently dropped during input expansion, soGET /responses/{id}/input_itemswould only return inline items. This matches the .NET SDK behavior (GetInputItemsForPersistenceAsync).- Post-eviction chat isolation — after eager eviction, GET, DELETE, Cancel, and InputItems requests with missing or mismatched
x-agent-chat-isolation-keyheaders now correctly fall through to Foundry storage (which returns HTTP 400) instead of being blocked locally with HTTP 404. In-flight isolation enforcement is unchanged. - Error
codefield now uses spec-compliant values:"invalid_request_error"for 400/404 errors (was"invalid_request","not_found", or"invalid_mode"),"server_error"for 500 errors (was"internal_error"). RequestValidationErrordefault code updated from"invalid_request"to"invalid_request_error".- Error responses for deleted resources now correctly return HTTP 404 (was 400). Affects
GET /responses/{id},GET /responses/{id}/input_items, andDELETE /responses/{id}(second delete) on previously deleted responses. - Cancel on a response in terminal state now returns the spec-compliant message
"Cannot cancel a response in terminal state."(was"Cannot cancel an incomplete response."). - SSE replay rejection messages now use spec-compliant wording:
- Non-background responses:
"This response cannot be streamed because it was not created with background=true." - Background non-stream responses:
"This response cannot be streamed because it was not created with stream=true." - Foundry storage errors (
FoundryResourceNotFoundError,FoundryBadRequestError,FoundryApiError) are now explicitly caught in endpoint handlers and mapped to appropriate HTTP status codes instead of being swallowed by broad exception handlers.
unknown 1.0.0b4 Changelog
Bugs Fixed
DELETE /responses/{id}no longer returns intermittent 404 when the background task’s eager eviction races with the delete handler. Previously,try_evictcould remove the record from in-memory state between the handler’sget()anddelete()calls, causingdelete()to returnFalseand producing a spurious 404. The handler now falls through to the durable provider when the in-memory delete fails due to a concurrent eviction.POST /responseswithbackground=true, stream=falsenow correctly returnsstatus: "in_progress"instead of"completed". Handlers that yield events synchronously (noawaitbetween yields — the normal pattern withResponseEventStream) would cause the background task to run to completion beforerun_backgroundcaptured the initial snapshot. A cooperative yield afterresponse_created_signal.set()now ensures the POST handler resumes promptly.- Conversation history IDs (
previous_response_id,conversation_id) are now validated eagerly before the handler is invoked. A nonexistent reference now returns a 404 error to the client immediately, instead of being silently ignored or surfacing as an opaque error deep inside the handler. The prefetched IDs are reused byResponseContext.get_history(), eliminating a redundant provider call.
unknown 1.0.0b5 Changelog
Bugs Fixed
- Fixed crash in
FoundryStorageLoggingPolicywhen a transport-level failure (DNS resolution, connection refused, timeout) occurs before any HTTP response is received. The policy previously attempted to accessresponse.headersunconditionally, raising an unrelated exception that masked the real transport error. Transport failures are now logged at ERROR level and the original exception propagates cleanly. - Fixed
ResponseContext.get_input_text()andResponseContext.get_input_items()silently dropping text whenItemMessage.contentis a plain string. String content is now correctly expanded intoMessageContentInputTextContent.
Features Added
- All HTTP responses now include an
x-request-idheader for request correlation. Value is resolved in priority order: OTEL trace ID → incomingx-request-idheader → new UUID. - Error responses (4xx/5xx) with a JSON
errorbody are automatically enriched witherror.additionalInfo.request_idmatching thex-request-idresponse header, enabling client-side error correlation. - Persistence failure resilience — when storage operations fail, responses now complete gracefully with
status: "failed"anderror.code: "storage_error"instead of crashing or leaving responses permanently stuck atin_progress. Covers all execution modes (streaming, background+streaming, background+non-streaming, synchronous). For streaming responses, terminal SSE events are buffered, persistence is attempted, and on failure the terminal event is replaced withresponse.failedcarryingerror_code="storage_error". Synchronous persistence failures return HTTP 500 with the storage error details. - Foundry storage logging now includes the
traceparentheader (W3C distributed trace ID) in all log messages, enabling correlation between SDK log entries and backend distributed traces.
unknown 1.0.0b1 Changelog
unknown 1.0.0b1 Changelog
unknown 1.0.0b1 Changelog
unknown 1.0.0b1 Changelog
unknown 1.0.2 Changelog
Bugs Fixed
- Removed dependency on
DefaultAzureCredentialin source library - Fixed
get_entra_conninfo_asyncandget_entra_token_asyncclosing the credential by using it as a context manager
unknown 1.0.0b1 Changelog
unknown 1.0.0b1 Changelog
unknown 1.0.0b1 Changelog
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.0.0b1
$> pip install azure-ai-agentserver-core==2.0.0b2
$> pip install azure-ai-agentserver-core==2.0.0b3
$> pip install azure-ai-agentserver-responses==1.0.0b1
$> pip install azure-ai-agentserver-responses==1.0.0b3
$> pip install azure-ai-agentserver-responses==1.0.0b2
$> pip install azure-ai-agentserver-responses==1.0.0b4
$> pip install azure-ai-agentserver-responses==1.0.0b5
$> pip install azure-ai-contentunderstanding==1.1.0
$> pip install azure-ai-contentunderstanding==1.2.0b1
$> pip install azure-ai-evaluation==1.16.6
$> pip install azure-ai-evaluation==1.16.7
$> pip install azure-ai-projects==2.1.0
$> pip install azure-ai-transcription==1.0.0b4
$> pip install azure-batch==15.1.0
$> pip install azure-core==1.40.0
$> pip install azure-core==1.41.0
$> pip install azure-core-tracing-opentelemetry==1.0.0b13
$> pip install azure-keyvault-certificates==4.11.0
$> pip install azure-keyvault-certificates==4.11.1
$> pip install azure-keyvault-secrets==4.11.0
$> pip install azure-mgmt-appconfiguration==6.0.0b2
$> pip install azure-mgmt-appnetwork==1.0.0b1
$> pip install azure-mgmt-attestation==2.0.0
$> pip install azure-mgmt-authorization==5.0.0b2
$> pip install azure-mgmt-azurestackhci==8.1.0b1
$> pip install azure-mgmt-certificateregistration==1.0.0b1
$> pip install azure-mgmt-compute==38.0.0b1
$> pip install azure-mgmt-compute==38.0.0
$> pip install azure-mgmt-computelimit==1.0.0
$> pip install azure-mgmt-confidentialledger==1.0.1
$> pip install azure-mgmt-containerservice==41.1.0
$> pip install azure-mgmt-containerservice==41.2.0b1
$> pip install azure-mgmt-cosmosdb==10.0.0b6
$> pip install azure-mgmt-domainregistration==1.0.0b1
$> pip install azure-mgmt-durabletask==1.1.0
$> pip install azure-mgmt-horizondb==1.0.0b1
$> pip install azure-mgmt-hybridkubernetes==1.2.0
$> pip install azure-mgmt-iotoperations==1.1.0
$> pip install azure-mgmt-kubernetesconfiguration-extensions==1.0.0
$> pip install azure-mgmt-monitorslis==1.0.0b1
$> pip install azure-mgmt-netapp==16.0.0
$> pip install azure-mgmt-planetarycomputer==1.0.0
$> pip install azure-mgmt-recoveryservicesbackup==11.0.0b1
$> pip install azure-mgmt-recoveryservicessiterecovery==2.0.0b1
$> pip install azure-mgmt-relationships==1.0.0b1
$> pip install azure-mgmt-servicegroups==1.0.0b1
$> pip install azure-mgmt-web==11.0.0
$> pip install azure-postgresql-auth==1.0.2
$> pip install azure-search-documents==12.0.0
Feedback
If you have a bug or feature request for one of the libraries, please post an issue to GitHub.