3.0.0-beta.1 (2026-08-24)
This release migrates the library from emitting its own copies of the OpenAI Responses object model to consuming the types provided by the OpenAI .NET library (2.12.0). This is a large, breaking change. See the Migration Guide for step-by-step upgrade guidance.
Features Added
- Added distributed tracing support.
- Added
SessionId,Agent, andAgentConversationIdextension properties onOpenAI.Responses.CreateResponseOptions(viaCreateResponseOptionsExtensions).SessionIdscopes a response to a specific session. - Added
AgentReferenceandResponseIdextension properties onOpenAI.Responses.ResponseItem(viaResponseItemExtensions), andAgent/AgentConversationIdonOpenAI.Responses.ResponseResult(viaResponseResultExtensions). These replace the instance properties that were declared on the removedAgentResponseItembase type, and are read-only. - Added
ResponseItemKindExtensionsandResponseToolKindExtensions, which surface the Azure-specific kinds (for exampleResponseToolKind.BingGrounding,ResponseItemKind.AzureAISearchCall) as named members on the upstreamOpenAI.Responses.ResponseToolKindandResponseItemKindextensible enums. FabricIQPreviewTool.RequireApprovalis now the strongly-typedFabricIQPreviewToolRequireApprovalChoiceinstead of a rawBinaryData. It converts implicitly from bothstringandOpenAI.Responses.McpToolCallApprovalPolicy.- The
ProjectResponsesClientconstructors acceptProjectResponsesClientOptions, including parameterless-options overloads sonew ProjectResponsesClient(projectEndpoint, tokenProvider)resolves to a visible constructor without requiring an options argument. - Added
MemoryLimitandNetworkPolicyextension properties onOpenAI.Responses.AutomaticCodeInterpreterToolContainerConfiguration(viaAutomaticCodeInterpreterToolContainerConfigurationExtensions). These properties use theOpenAI.Containers.ContainerMemoryLimitandOpenAI.Containers.ContainerNetworkPolicytypes and preserve the Foundrymemory_limitandnetwork_policyrequest fields.
Breaking Changes
-
Changed
ProjectResponsesClientOptionsto derive fromOpenAI.Responses.ResponsesClientOptions(instead ofProjectOpenAIClientOptions). This aligns with the upstream OpenAI client option hierarchy afterResponsesClientOptionswas split out as a sibling ofOpenAIClientOptions. Because it no longer derives fromProjectOpenAIClientOptions, it can no longer be passed to theProjectOpenAIClientconstructor; useProjectOpenAIClientOptionsthere. -
Response items and tools are now the
OpenAISDK types. This library no longer emits its own copies of the Responses object model; it consumes the types from theOpenAIlibrary (2.12.0) directly. As a result:- The
AgentResponseItembase type and theAgentResponseItemKindenum were removed. Azure-specific response items (for exampleBingGroundingToolCall,AzureAISearchToolCall,OAuthConsentRequestResponseItem) now derive fromOpenAI.Responses.ResponseItem, and Azure-specific tools (for exampleBingGroundingTool,AzureAISearchTool) now derive fromOpenAI.Responses.ResponseTool. IterateResponseResult.OutputItemsasOpenAI.Responses.ResponseItemand pattern-match to the Azure subtypes. - The settable
AgentResponseItem.AgentReferenceandAgentResponseItem.ResponseIdinstance properties are gone. The same values are now read-only extension properties onOpenAI.Responses.ResponseItem(ResponseItemExtensions), so ausing Azure.AI.Extensions.OpenAI;must be in scope to see them. To set agent or conversation metadata, use theAgent,AgentConversationId, andSessionIdextension properties onCreateResponseOptionsinstead. - The public
ResponseItem.AsAgentResponseItem()extension method was removed. Results returned byProjectResponsesClientand theCreateResponse/CreateResponseAsyncextensions are now normalized automatically, soOutputItemsand echoedToolsalready surface the strongly-typed Azure subtypes without any caller-side conversion.
- The
-
Azure Responses tool and model types were renamed by dropping the
Responsesprefix so they read naturally alongside the upstreamOpenAI.Responsestypes. A few names were further normalized (...ToolParameters→...ToolOptions,...Configuration/...ConnectionParameters→...Options,...AuthDetails→...AuthenticationDetails,Sharepoint→SharePoint,OpenApi→OpenAPIon tool types). The full mapping:Old (2.x) New (3.0.0-beta.1) ResponsesA2APreviewToolA2APreviewToolResponsesAzureAISearchQueryKindAzureAISearchQueryKindResponsesAzureAISearchToolAzureAISearchToolResponsesAISearchIndexResourceAzureAISearchToolIndexResponsesAzureAISearchToolResourceAzureAISearchToolOptionsResponsesAzureFunctionBindingAzureFunctionBindingResponsesAzureFunctionDefinitionAzureFunctionDefinitionResponsesAzureFunctionDefinitionFunctionAzureFunctionDefinitionFunctionResponsesAzureFunctionStorageQueueAzureFunctionStorageQueueResponsesAzureFunctionToolAzureFunctionToolResponsesBingCustomSearchConfigurationBingCustomSearchOptionsResponsesBingCustomSearchPreviewToolBingCustomSearchPreviewToolResponsesBingCustomSearchToolParametersBingCustomSearchToolOptionsResponsesBingGroundingSearchConfigurationBingGroundingSearchOptionsResponsesBingGroundingSearchToolParametersBingGroundingSearchToolOptionsResponsesBingGroundingToolBingGroundingToolResponsesBrowserAutomationPreviewToolBrowserAutomationPreviewToolResponsesBrowserAutomationToolConnectionParametersBrowserAutomationToolConnectionOptionsResponsesBrowserAutomationToolParametersBrowserAutomationToolOptionsResponsesCaptureStructuredOutputsToolCaptureStructuredOutputsToolResponsesFabricDataAgentToolOptionsFabricDataAgentToolOptionsResponsesFabricIQPreviewToolFabricIQPreviewToolResponsesMemorySearchOptionsMemorySearchOptionsResponsesMemorySearchPreviewToolMemorySearchPreviewToolResponsesMicrosoftFabricPreviewToolMicrosoftFabricPreviewToolResponsesOpenApiAnonymousAuthDetailsOpenApiAnonymousAuthenticationDetailsResponsesOpenApiAuthDetailsOpenApiAuthenticationDetailsResponsesOpenApiFunctionDefinitionOpenApiFunctionDefinitionResponsesOpenApiFunctionDefinitionFunctionOpenApiFunctionDefinitionFunctionResponsesOpenApiManagedAuthDetailsOpenApiManagedAuthenticationDetailsResponsesOpenApiManagedSecuritySchemeOpenApiManagedSecuritySchemeResponsesOpenApiProjectConnectionAuthDetailsOpenApiProjectConnectionAuthenticationDetailsResponsesOpenApiProjectConnectionSecuritySchemeOpenApiProjectConnectionSecuritySchemeResponsesOpenApiToolOpenApiToolResponsesSharepointGroundingToolParametersSharePointGroundingToolOptionsResponsesSharepointPreviewToolSharePointPreviewToolResponsesStructuredOutputDefinitionStructuredOutputDefinitionResponsesToolProjectConnectionToolProjectConnectionResponsesWebSearchConfigurationWebSearchConfigurationResponsesWorkIQPreviewToolWorkIQPreviewTool -
Other renames were done:
Old (2.x) New (3.0.0-beta.1) OpenAPIAnonymousAuthenticationDetailsOpenApiAnonymousAuthenticationDetailsSharepointGroundingToolCallSharePointGroundingToolCallSharepointGroundingToolCallOutputSharePointGroundingToolCallOutputThe built-in tool and item types that OpenAI already models (for example computer-use, web-search, function, and MCP tools) are no longer emitted by this library; use the corresponding
OpenAI.Responsestypes instead. -
Members were renamed alongside their declaring types:
Type Old member (2.x) New member (3.0.0-beta.1) OpenApiFunctionDefinitionAuth(and theauthconstructor parameter)Authentication(andauthentication)OpenApiFunctionDefinitionDefaultParamsDefaultParametersOpenApiAuthenticationDetailsTypeKind -
OAuthConsentRequestResponseItemchanged shape: the consent link is now the strongly-typedUri ConsentLinkproperty rather than theinternalConsentLinkstring, and bothConsentLinkandIdare now settable. -
Added the
AAIP002experimental diagnostic, alongside the existingAAIP001.AAIP002is applied to the Azure tool and response-item models (for exampleBingGroundingTool,AzureAISearchTool,CaptureStructuredOutputsTool,OAuthConsentRequestResponseItem, and their...ToolCall/...ToolCallOutputtypes), whileAAIP001covers the response-normalization surfaces,ProjectResponsesClient, the extension-member classes, and the preview Foundry tools. Callers that previously suppressed onlyAAIP001must now also suppressAAIP002. -
Removed the
ProjectConversation,ProjectConversationCreationOptions, andProjectConversationUpdateOptionsdata models. These duplicated the conversation types now provided by theOpenAIlibrary (2.12.0+).ProjectConversationsClientand theCreateResponse/CreateResponseAsyncextension overloads now consume and returnOpenAI.Conversations.ConversationResource,OpenAI.Conversations.ConversationCreationOptions, andOpenAI.Conversations.ConversationUpdateOptionsinstead. TheProjectConversationsClientmethod names (CreateProjectConversation,GetProjectConversation(s),UpdateProjectConversation) are unchanged. Note thatProjectConversation's implicit conversion to its ID string is not available onConversationResource; useconversation.Idexplicitly. -
The generated code-interpreter container types
ResponsesAutoCodeInterpreterToolParam,ResponsesContainerMemoryLimit,ResponsesContainerNetworkPolicyParam,ResponsesContainerNetworkPolicyAllowlistParam,ResponsesContainerNetworkPolicyDisabledParam, andResponsesContainerNetworkPolicyDomainSecretParamwere removed. Create anOpenAI.Responses.AutomaticCodeInterpreterToolContainerConfigurationand use its newMemoryLimitandNetworkPolicyextension properties with the correspondingOpenAI.Containerstypes instead. -
Removed the strongly-typed request/response types for several preview Responses tool kinds that have no equivalent in the upstream
OpenAIlibrary (2.12.0). OpenAI'sOpenAI.Responses.ResponseToolKindmodels onlyapply_patch,code_interpreter,computer_use_preview,file_search,function,image_generation,mcp,web_search, andweb_search_preview, so mapping onto the upstream types dropped the previously generated:- Custom tools + grammar:
ResponsesCustomToolParam,ResponsesCustomToolParamFormat,ResponsesCustomTextFormatParam,CustomGrammarFormatParam,ResponsesGrammarSyntax,OutputItemCustomToolCallOutputResource. local_shell/shelltools:ResponsesLocalShellToolParam,ResponsesFunctionShellToolParam,ResponsesFunctionShellToolParamEnvironment,ResponsesFunctionShellToolParamEnvironmentContainerReferenceParam,ResponsesFunctionShellToolParamEnvironmentLocalEnvironmentParam,ItemLocalShellToolCallOutputStatus,OutputItemLocalShellToolCallOutput.namespacetool:ResponsesNamespaceToolParam.tool_searchtool:ResponsesToolSearchToolParam,ResponsesToolSearchExecutionType,OutputItemToolSearchCall,OutputItemToolSearchOutput.- Skills:
ContainerSkill,LocalSkillParam,ResponsesInlineSkillParam,ResponsesInlineSkillSourceParam,ResponsesSkillReferenceParam.
These tool kinds remain reachable on the wire because
ResponseToolKindis an extensible enum and the corresponding tool slots accept a raw object payload, but strongly-typed construction is not available. Native support for each will return once the upstream OpenAI .NET SDK models the tool kind. The Azure Foundry toolbox search capability remains available, now surfaced as theOpenAI.Responses.ResponseToolKind.ToolboxSearchPreviewtool kind (the previously generatedResponsesToolboxSearchPreviewTooltype is no longer emitted). - Custom tools + grammar:
Other Changes
- Updated the
OpenAIpackage dependency to2.12.0.2.11.0reshapedOpenAI.Responses.ResponsesClientOptionsto derive directly fromSystem.ClientModel.Primitives.ClientPipelineOptions(a sibling ofOpenAI.OpenAIClientOptionsrather than a subclass), which is whyProjectResponsesClientOptionsnow derives fromResponsesClientOptions.2.12.0adds strongly-typed conversation support (OpenAI.Conversations.ConversationResource,ConversationCreationOptions,ConversationUpdateOptions); the conversation data models previously emitted by this package are no longer generated, and the temporary local convenience layer now delegates to the upstream types.
Sample Updates
- Added sample for running responses in specific sessions.
- Added sample for
ReminderPreviewToolboxTool. - Removed the session ID header from the samples; it does not affect which session is used.