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

  • AgentServerHost base 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_observability constructor parameter for overridable logging + tracing setup. Console StreamHandler is attached to the root logger by default so user logging.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.
  • AgentConfig dataclass 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 constructing x-platform-server header segments.
  • HTTP access logging with configurable format via access_log and access_log_format constructor 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 to azure-ai-agentserver-invocations. This package now contains only the shared hosting foundation.
  • FoundryCBAgent removed: Replaced by AgentServerHost, a Starlette subclass that IS the ASGI app (no separate .app property or register_routes()).
  • AgentRunContext removed: Protocol packages provide their own context types (ResponseContext in Responses, request.state in Invocations).
  • TracingHelper class removed: Replaced by module-level functions (request_span, end_span, record_error, trace_stream) for a simpler functional API.
  • AgentLogger / get_logger() removed: Use logging.getLogger("azure.ai.agentserver") directly, or rely on the SDK’s automatic console logging setup.
  • ErrorResponse.create() removed: Replaced by create_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_LEVEL and AGENT_GRACEFUL_SHUTDOWN_TIMEOUT are no longer read from Constants. Use the log_level and graceful_shutdown_timeout constructor parameters instead.

AI Agent Server - Core 2.0.0b2 Changelog

Features Added

  • Startup configuration logging — AgentServerHost lifespan 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 by AgentServerHost that 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-id extracted from the W3C traceparent header, 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 StreamHandler was already present on the root logger (e.g. from logging.basicConfig() or framework setup). The SDK now detects any existing StreamHandler before 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 an x-request-id response header on every response. The request ID is resolved from the OpenTelemetry trace ID, an incoming x-request-id header, or a generated UUID (in that priority). The resolved value is stored in ASGI scope state under the well-known key agentserver.request_id for use by sibling protocol packages. Automatically wired into AgentServerHost.

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 like MultiTurn) failing silently with PyRIT 0.11. Two bugs were patched at the SDK level: (1) RedTeamingAttack._setup_async raised RuntimeError: Conversation already exists because it seeded prepended conversation messages before calling set_system_prompt; now patched per-instance on the adversarial chat target to tolerate existing conversation history. (2) RedTeamingAttack._generate_next_prompt_async returned context.next_message without calling .duplicate_message(), causing sqlite3.IntegrityError: UNIQUE constraint failed: PromptMemoryEntries.id on the second turn; now patched at module load with an idempotent wrapper that duplicates the message before returning.
  • Fixed sensitive_data_leakage red team attacks producing 100% false-pass rates. _extract_context_items in the Foundry execution path only handled list or dict shapes for messages[0].context; pre-curated SDL attack objectives store the document text as a str with sibling context_type/tool_name fields, 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. Added str handling (both message-level and top-level), normalized raw string entries inside list-shaped context, and gated the context_type fallback so it only runs when no usable context was extracted (including the context: null case).

AI Evaluation 1.16.7 Changelog

Bugs Fixed

  • _TaskNavigationEfficiencyEvaluator now accepts JSON-stringified response and ground_truth inputs (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_results to perform a case-insensitive comparison when checking the AOAI error code for UserError, ensuring failed evaluation runs are correctly classified as user errors regardless of server-side casing.
  • Fixed deflection_rate evaluator 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() raising EvaluationException: (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_adherence red team scoring by adding scenario=redteam to 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_summary where 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_count evaluated 0 == 0 as True).
  • Fixed _get_metric_result prefix 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 _properties values from evaluators causing downstream issues. Values that are not dicts are now logged and dropped gracefully.
  • Fixed filename length error in _inline_image by catching OSError/ValueError during local path resolution and fall back to returning a text chunk instead of throwing.

Features Added

  • Added extra_headers keyword argument to RaiServiceEvaluatorBase (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 by extra_headers.

  • Added status field ("completed", "error", "skipped") on evaluation result items to indicate evaluator execution outcome.
  • Added skipped and errored counts to result_counts and per_testing_criteria_results in AOAI evaluation summaries.
  • Added skipped to ResultCount and skipped/errored to PerTestingCriteriaResult typed 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() on AIProjectClient now takes an optional input argument agent_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 set allow_preview=True on the AIProjectClient constructor.
  • New .beta.agents sub-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.agents sub-client, a new method patch_agent_details().
  • New beta.skills sub-client added, with Skills operations:
  • create()
  • create_from_package()
  • delete()
  • download()
  • get()
  • list()
  • update()
  • New beta.toolboxes sub-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 using get_openai_client() method of AIProjectClient. This includes new TypedDicts classes to help you author the input to these methods. See new TypedDict classes ModelSamplingConfigParam, 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.KnowledgeBaseRetrievalClient
  • azure.search.documents.indexes.models.AzureBlobKnowledgeSource
  • azure.search.documents.indexes.models.IndexedOneLakeKnowledgeSource
  • azure.search.documents.indexes.models.KnowledgeBase
  • azure.search.documents.indexes.models.SearchIndexKnowledgeSource
  • azure.search.documents.indexes.models.WebKnowledgeSource
  • azure.search.documents.knowledgebases.models.KnowledgeBaseActivityRecordType.MODEL_WEB_SUMMARIZATION
  • azure.search.documents.knowledgebases.models.KnowledgeBaseModelWebSummarizationActivityRecord
  • azure.search.documents.knowledgebases.models.KnowledgeRetrievalMinimalReasoningEffort
  • azure.search.documents.knowledgebases.models.KnowledgeRetrievalReasoningEffort
  • azure.search.documents.knowledgebases.models.KnowledgeSourceStatistics
  • azure.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.identity for managed identity support on data source connections.
  • azure.search.documents.indexes.models.SearchIndexerKnowledgeStore.identity for managed identity support on knowledge store projections.
  • azure.search.documents.indexes.models.SearchResourceEncryptionKey.key_version changed from required to optional, aligning with service behavior.

  • Below enum members and properties are added for Markdown parsing
  • azure.search.documents.indexes.models.BlobIndexerParsingMode.MARKDOWN enum value for native Markdown file parsing in blob indexers.
  • azure.search.documents.indexes.models.IndexingParametersConfiguration.markdown_header_depth (h1 through h6) to set header depth for sectioning.
  • azure.search.documents.indexes.models.IndexingParametersConfiguration.markdown_parsing_submode (oneToOne or oneToMany) to control document splitting.

  • Below models are added
  • azure.search.documents.indexes.models.ChatCompletionCommonModelParameters
  • azure.search.documents.indexes.models.ChatCompletionResponseFormat
  • azure.search.documents.indexes.models.ChatCompletionSchema
  • azure.search.documents.indexes.models.ChatCompletionSkill
  • azure.search.documents.indexes.models.ContentUnderstandingSkill
  • azure.search.documents.indexes.models.ContentUnderstandingSkillChunkingProperties
  • azure.search.documents.indexes.models.ContentUnderstandingSkillChunkingUnit
  • azure.search.documents.indexes.models.ContentUnderstandingSkillExtractionOptions
  • azure.search.documents.knowledgebases.models.AIServices
  • azure.search.documents.knowledgebases.models.CompletedSynchronizationState
  • azure.search.documents.knowledgebases.models.SynchronizationState

Breaking Changes

  • serialize() and deserialize() methods on models are removed. Use as_dict() to serialize and the model constructor to deserialize (e.g., index.as_dict() instead of index.serialize(), SearchIndex(data) instead of SearchIndex.deserialize(data)).
  • Below models do not exist in this release
  • azure.search.documents.indexes.models.EntityRecognitionSkill
  • azure.search.documents.indexes.models.EntityRecognitionSkillVersion
  • azure.search.documents.indexes.models.PathHierarchyTokenizer (renamed to PathHierarchyTokenizerV2)
  • azure.search.documents.indexes.models.SentimentSkill
  • azure.search.documents.indexes.models.SentimentSkillVersion
  • Below enum members do not exist in this release
  • azure.search.documents.indexes.models.SearchIndexerDataSourceType.MY_SQL (renamed to MYSQL)
  • azure.search.documents.indexes.models.SearchIndexerDataSourceType.ONE_LAKE (renamed to ONELAKE)
  • Below properties do not exist in this release
  • azure.search.documents.indexes.models.BinaryQuantizationCompression.rerank_with_original_vectors
  • azure.search.documents.indexes.models.ScalarQuantizationCompression.rerank_with_original_vectors
  • azure.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.AIServicesVisionParameters
  • azure.search.documents.indexes.models.AIServicesVisionVectorizer
  • azure.search.documents.indexes.models.AzureMachineLearningSkill
  • azure.search.documents.indexes.models.AzureOpenAITokenizerParameters
  • azure.search.documents.indexes.models.IndexedSharePointContainerName
  • azure.search.documents.indexes.models.IndexerCurrentState
  • azure.search.documents.indexes.models.IndexerExecutionStatusDetail
  • azure.search.documents.indexes.models.IndexerPermissionOption
  • azure.search.documents.indexes.models.IndexerRuntime
  • azure.search.documents.indexes.models.IndexingMode
  • azure.search.documents.indexes.models.IndexStatisticsSummary
  • azure.search.documents.indexes.models.KnowledgeRetrievalLowReasoningEffort
  • azure.search.documents.indexes.models.KnowledgeRetrievalMediumReasoningEffort
  • azure.search.documents.indexes.models.KnowledgeRetrievalOutputMode
  • azure.search.documents.indexes.models.KnowledgeSourceIngestionPermissionOption
  • azure.search.documents.indexes.models.PermissionFilter
  • azure.search.documents.indexes.models.SearchIndexerCache
  • azure.search.documents.indexes.models.SearchIndexPermissionFilterOption
  • azure.search.documents.indexes.models.ServiceIndexersRuntime
  • azure.search.documents.indexes.models.SplitSkillEncoderModelName
  • azure.search.documents.indexes.models.SplitSkillUnit
  • azure.search.documents.indexes.models.VisionVectorizeSkill
  • azure.search.documents.knowledgebases.models.IndexedSharePointKnowledgeSourceParams
  • azure.search.documents.knowledgebases.models.KnowledgeBaseIndexedSharePointReference
  • azure.search.documents.knowledgebases.models.KnowledgeBaseModelAnswerSynthesisActivityRecord
  • azure.search.documents.knowledgebases.models.KnowledgeBaseModelQueryPlanningActivityRecord
  • azure.search.documents.knowledgebases.models.KnowledgeBaseRemoteSharePointReference
  • azure.search.documents.knowledgebases.models.RemoteSharePointKnowledgeSourceParams
  • azure.search.documents.models.DebugInfo
  • azure.search.documents.models.HybridCountAndFacetMode
  • azure.search.documents.models.HybridSearch
  • azure.search.documents.models.QueryLanguage
  • azure.search.documents.models.QueryResultDocumentInnerHit
  • azure.search.documents.models.QueryResultDocumentRerankerInput
  • azure.search.documents.models.QueryResultDocumentSemanticField
  • azure.search.documents.models.QueryRewritesDebugInfo
  • azure.search.documents.models.QueryRewritesType
  • azure.search.documents.models.QueryRewritesValuesDebugInfo
  • azure.search.documents.models.QuerySpellerType
  • azure.search.documents.models.SearchDocumentsResult
  • azure.search.documents.models.SearchScoreThreshold
  • azure.search.documents.models.SemanticDebugInfo
  • azure.search.documents.models.SemanticFieldState
  • azure.search.documents.models.SemanticQueryRewritesResultType
  • azure.search.documents.models.VectorSimilarityThreshold
  • azure.search.documents.models.VectorThreshold
  • azure.search.documents.models.VectorThresholdKind
  • SharePoint knowledge source types (IndexedSharePointKnowledgeSource, RemoteSharePointKnowledgeSource and related models including IndexedSharePointKnowledgeSourceParameters, RemoteSharePointKnowledgeSourceParameters, SharePointSensitivityLabelInfo)

  • Below properties do not exist in this release
  • azure.search.documents.indexes.models.ChatCompletionSkill.auth_resource_id
  • azure.search.documents.indexes.models.ChatCompletionSkill.batch_size
  • azure.search.documents.indexes.models.ChatCompletionSkill.degree_of_parallelism
  • azure.search.documents.indexes.models.ChatCompletionSkill.http_headers
  • azure.search.documents.indexes.models.ChatCompletionSkill.http_method
  • azure.search.documents.indexes.models.ChatCompletionSkill.timeout
  • azure.search.documents.indexes.models.IndexerExecutionResult.mode
  • azure.search.documents.indexes.models.IndexerExecutionResult.status_detail
  • azure.search.documents.indexes.models.KnowledgeBase.answer_instructions
  • azure.search.documents.indexes.models.KnowledgeBase.output_mode
  • azure.search.documents.indexes.models.KnowledgeBase.retrieval_instructions
  • azure.search.documents.indexes.models.KnowledgeBase.retrieval_reasoning_effort
  • azure.search.documents.indexes.models.KnowledgeSourceIngestionParameters.ingestion_permission_options
  • azure.search.documents.indexes.models.SearchField.permission_filter
  • azure.search.documents.indexes.models.SearchField.sensitivity_label
  • azure.search.documents.indexes.models.SearchIndex.permission_filter_option
  • azure.search.documents.indexes.models.SearchIndex.purview_enabled
  • azure.search.documents.indexes.models.SearchIndexer.cache
  • azure.search.documents.indexes.models.SearchIndexerDataSourceConnection.indexer_permission_options
  • azure.search.documents.indexes.models.SearchIndexerDataSourceConnection.sub_type
  • azure.search.documents.indexes.models.SearchIndexerDataUserAssignedIdentity.federated_identity_client_id
  • azure.search.documents.indexes.models.SearchIndexerKnowledgeStore.parameters
  • azure.search.documents.indexes.models.SearchIndexerStatus.current_state
  • azure.search.documents.indexes.models.SearchIndexerStatus.runtime
  • azure.search.documents.indexes.models.SearchServiceStatistics.indexers_runtime
  • azure.search.documents.indexes.models.SemanticConfiguration.flighting_opt_in
  • azure.search.documents.indexes.models.SplitSkill.azure_open_ai_tokenizer_parameters
  • azure.search.documents.indexes.models.SplitSkill.unit
  • azure.search.documents.knowledgebases.models.AzureBlobKnowledgeSourceParams.always_query_source
  • azure.search.documents.knowledgebases.models.IndexedOneLakeKnowledgeSourceParams.always_query_source
  • azure.search.documents.knowledgebases.models.KnowledgeBaseRetrievalRequest.max_output_size
  • azure.search.documents.knowledgebases.models.KnowledgeBaseRetrievalRequest.messages
  • azure.search.documents.knowledgebases.models.KnowledgeBaseRetrievalRequest.output_mode
  • azure.search.documents.knowledgebases.models.KnowledgeBaseRetrievalRequest.retrieval_reasoning_effort
  • azure.search.documents.knowledgebases.models.KnowledgeSourceParams.always_query_source
  • azure.search.documents.knowledgebases.models.WebKnowledgeSourceParams.always_query_source
  • azure.search.documents.models.DebugInfo.query_rewrites
  • azure.search.documents.models.DocumentDebugInfo.inner_hits
  • azure.search.documents.models.DocumentDebugInfo.semantic
  • azure.search.documents.models.FacetResult.avg
  • azure.search.documents.models.FacetResult.cardinality
  • azure.search.documents.models.FacetResult.facets
  • azure.search.documents.models.FacetResult.max
  • azure.search.documents.models.FacetResult.min
  • azure.search.documents.models.FacetResult.sum
  • azure.search.documents.models.SearchDocumentsResult.debug_info
  • azure.search.documents.models.SearchDocumentsResult.semantic_query_rewrites_result_type
  • azure.search.documents.models.VectorizableTextQuery.query_rewrites
  • azure.search.documents.models.VectorQuery.filter_override
  • azure.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_search
  • SearchClient.search.query_language
  • SearchClient.search.query_rewrites
  • SearchClient.search.semantic_fields
  • SearchClient.search.speller
  • SearchIndexerClient.create_or_update_data_source_connection.skip_indexer_reset_requirement_for_cache
  • SearchIndexerClient.create_or_update_indexer.disable_cache_reprocessing_change_detection
  • SearchIndexerClient.create_or_update_indexer.skip_indexer_reset_requirement_for_cache
  • SearchIndexerClient.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_summary
  • SearchIndexerClient.reset_documents
  • SearchIndexerClient.reset_skills
  • SearchIndexerClient.resync

  • Below enum values do not exist in this release
  • azure.search.documents.indexes.models.AzureOpenAIModelName.GPT4_O
  • azure.search.documents.indexes.models.AzureOpenAIModelName.GPT4_O_MINI
  • azure.search.documents.indexes.models.AzureOpenAIModelName.GPT41
  • azure.search.documents.indexes.models.AzureOpenAIModelName.GPT41_MINI
  • azure.search.documents.indexes.models.AzureOpenAIModelName.GPT41_NANO
  • azure.search.documents.indexes.models.AzureOpenAIModelName.GPT5
  • azure.search.documents.indexes.models.AzureOpenAIModelName.GPT5_MINI (renamed to GPT_5_MINI)
  • azure.search.documents.indexes.models.AzureOpenAIModelName.GPT5_NANO (renamed to GPT_5_NANO)
  • azure.search.documents.indexes.models.KnowledgeSourceKind.INDEXED_ONE_LAKE (renamed to INDEXED_ONELAKE)
  • azure.search.documents.indexes.models.SearchIndexerDataSourceType.SHARE_POINT (renamed to SHAREPOINT)
  • azure.search.documents.knowledgebases.models.KnowledgeBaseActivityRecordType.INDEXED_ONE_LAKE (renamed to INDEXED_ONELAKE)
  • azure.search.documents.knowledgebases.models.KnowledgeBaseReferenceType.INDEXED_ONE_LAKE (renamed to INDEXED_ONELAKE)
  • azure.search.documents.knowledgebases.models.KnowledgeRetrievalReasoningEffortKind.LOW
  • azure.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 usage property on AnalyzeLROPoller and AnalyzeAsyncLROPoller to 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_input helper function that converts AnalysisResult objects 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 BatchNodeUserUpdateOptions to BatchNodeUserReplaceOptions.
  • Renamed OutputFileUploadConfig to OutputFileUploadConfiguration.

  • Removed Models:
  • Removed AuthenticationTokenSettings

  • NameSpace changed azure.batch.models._models:
  • BatchJobTerminateOptions
  • BatchNodeDeallocateOptions
  • BatchNodeRebootOptions
  • BatchNodeReimageOptions

  • Removed Enums:
  • Removed BatchAccessScope

  • NameSpace changed azure.batch.models._enums:
  • BatchNodeDeallocateOption
  • BatchNodeRebootKind
  • BatchNodeReimageOption

  • Renamed public methods:
  • list_sub_tasks -> list_subtasks
  • get_task_file -> download_task_file
  • get_node_file -> download_node_file

  • Renamed parameters across all operation methods:
  • timeout -> service_timeout
  • ocpdate -> ocp_date
  • starttime -> start_time
  • endtime -> end_time
  • concurrencies -> max_concurrency

  • Renamed properties in models:
  • e_tag -> etag in BatchJob, BatchJobSchedule, BatchPool, BatchTask, and BatchTaskCreateResult
  • values_property -> error_values in AutoScaleRunError, BatchError, and ResizeError
  • values_property -> result_values in CollectionResult
  • values_property -> task_values in BatchTaskGroup
  • 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_gib in BatchPoolResourceStatistics

  • Removed Properties:
  • Removed authentication_token_settings from BatchJobManagerTask, BatchStartTask, and BatchTask
  • Removed access from AuthenticationTokenSettings

Core - Client - Core 1.40.0 Changelog

Features Added

  • Added support for per-operation http_logging_level overrides in HttpLoggingPolicy. #44115
  • Introduced the keyword argument additional_allowed_query_params to DistributedTracingPolicy and HttpLoggingPolicy to 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_params to 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_LEVEL now accepts VERBOSE (case-insensitive) as an alias for DEBUG. #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.method
  • http.status_code -> http.response.status_code
  • net.peer.name -> server.address
  • net.peer.port -> server.port
  • http.url -> url.full

Key Vault - Certificates 4.11.0 Changelog

Features Added

  • Added support for service API version 2025-07-01
  • Added uris and ip_addresses properties to SubjectAlternativeNames

Bugs Fixed

  • When creating a certificate with an unknown issuer, CertificateClient.(begin_)create_certificate now returns a CertificateOperation instead of None
  • When a certificate operation’s error doesn’t have an inner error, CertificateOperationError will 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 raising ValueError when a CertificatePolicy was created with only san_ip_addresses or san_uris and no subject, san_dns_names, san_emails, or san_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_version property to SecretProperties

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 the text parameter.
  • 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() and aoutput_item_message() now accept an annotations keyword argument for attaching typed Annotation instances (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_url utility 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.
  • ResponseContext providing response_id, conversation history loading, input item access via get_input_items() (returns Item subtypes), get_input_text() convenience for extracting text content, isolation context, and client headers.
  • ResponsesServerOptions for 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.Event and graceful shutdown integration.
  • InMemoryResponseProvider as the default in-process state store.
  • ResponseProviderProtocol and ResponseStreamProviderProtocol for 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 the isolation= 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 at in_progress.

unknown 1.0.0b2 Changelog

Features Added

  • Startup configuration logging — ResponsesAgentServerHost logs storage provider type, default model, default fetch history count, and shutdown grace period at INFO level during construction.
  • InboundRequestLoggingMiddleware moved to azure-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 by AgentServerHost so 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-key header, 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_id path 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. The previous_response_id field 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 the azure.ai.agentserver logger. Replaces the built-in HttpLoggingPolicy in the Foundry pipeline to provide single-line summaries with duration timing and log-level escalation (WARNING for 4xx/5xx).
  • FoundryStorageLoggingPolicy now logs x-request-id and apim-request-id response headers from Foundry in addition to x-ms-client-request-id and x-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-Agent header reflecting the exact x-platform-server value (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=true returned 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_reference inputs are now resolved at persistence time — when a POST /responses request includes item_reference entries in its input, they are batch-resolved via the provider before being stored. Previously, item_reference entries were silently dropped during input expansion, so GET /responses/{id}/input_items would 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-key headers 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 code field 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").
  • RequestValidationError default 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, and DELETE /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_evict could remove the record from in-memory state between the handler’s get() and delete() calls, causing delete() to return False and 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 /responses with background=true, stream=false now correctly returns status: "in_progress" instead of "completed". Handlers that yield events synchronously (no await between yields — the normal pattern with ResponseEventStream) would cause the background task to run to completion before run_background captured the initial snapshot. A cooperative yield after response_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 by ResponseContext.get_history(), eliminating a redundant provider call.

unknown 1.0.0b5 Changelog

Bugs Fixed

  • Fixed crash in FoundryStorageLoggingPolicy when a transport-level failure (DNS resolution, connection refused, timeout) occurs before any HTTP response is received. The policy previously attempted to access response.headers unconditionally, 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() and ResponseContext.get_input_items() silently dropping text when ItemMessage.content is a plain string. String content is now correctly expanded into MessageContentInputTextContent.

Features Added

  • All HTTP responses now include an x-request-id header for request correlation. Value is resolved in priority order: OTEL trace ID → incoming x-request-id header → new UUID.
  • Error responses (4xx/5xx) with a JSON error body are automatically enriched with error.additionalInfo.request_id matching the x-request-id response header, enabling client-side error correlation.
  • Persistence failure resilience — when storage operations fail, responses now complete gracefully with status: "failed" and error.code: "storage_error" instead of crashing or leaving responses permanently stuck at in_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 with response.failed carrying error_code="storage_error". Synchronous persistence failures return HTTP 500 with the storage error details.
  • Foundry storage logging now includes the traceparent header (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 DefaultAzureCredential in source library
  • Fixed get_entra_conninfo_async and get_entra_token_async closing 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.