diff --git a/.github/workflows/dotnet-build-and-test.yml b/.github/workflows/dotnet-build-and-test.yml
index 435c623466..44743e6818 100644
--- a/.github/workflows/dotnet-build-and-test.yml
+++ b/.github/workflows/dotnet-build-and-test.yml
@@ -135,6 +135,7 @@ jobs:
# OpenAI Models
OpenAI__ApiKey: ${{ secrets.OPENAI__APIKEY }}
OpenAI__ChatModelId: ${{ vars.OPENAI__CHATMODELID }}
+ OpenAI__ChatReasoningModelId: ${{ vars.OPENAI__CHATREASONINGMODELID }}
OpenAIEmbeddings__ApiKey: ${{ secrets.OPENAIEMBEDDINGS__APIKEY }}
OpenAIEmbeddings__ModelId: ${{ vars.OPENAIEMBEDDINGS__MODELID }}
OpenAITextToAudio__ApiKey: ${{ secrets.OPENAITEXTTOAUDIO__APIKEY }}
diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx
index a79f2a4306..630b939de0 100644
--- a/dotnet/agent-framework-dotnet.slnx
+++ b/dotnet/agent-framework-dotnet.slnx
@@ -1,114 +1,120 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/src/Shared/IntegrationTests/OpenAIConfiguration.cs b/dotnet/src/Shared/IntegrationTests/OpenAIConfiguration.cs
index fc8357109b..34bc08330e 100644
--- a/dotnet/src/Shared/IntegrationTests/OpenAIConfiguration.cs
+++ b/dotnet/src/Shared/IntegrationTests/OpenAIConfiguration.cs
@@ -11,5 +11,7 @@ internal sealed class OpenAIConfiguration
public string ChatModelId { get; set; }
+ public string ChatReasoningModelId { get; set; }
+
public string ApiKey { get; set; }
}
diff --git a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionChatClientAgentRunStreamingTests.cs b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionChatClientAgentRunStreamingTests.cs
index bcb2824a5a..4e3d573b9f 100644
--- a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionChatClientAgentRunStreamingTests.cs
+++ b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionChatClientAgentRunStreamingTests.cs
@@ -4,6 +4,12 @@ using AgentConformance.IntegrationTests;
namespace OpenAIChatCompletion.IntegrationTests;
-public class OpenAIChatCompletionChatClientAgentRunStreamingTests() : ChatClientAgentRunStreamingTests(() => new())
+public class OpenAIChatCompletionChatClientAgentRunStreamingTests()
+ : ChatClientAgentRunStreamingTests(() => new(useReasoningChatModel: false))
+{
+}
+
+public class OpenAIChatCompletionChatClientAgentReasoningRunStreamingTests()
+ : ChatClientAgentRunStreamingTests(() => new(useReasoningChatModel: true))
{
}
diff --git a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionChatClientAgentRunTests.cs b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionChatClientAgentRunTests.cs
index 5602204af8..c8716f83e1 100644
--- a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionChatClientAgentRunTests.cs
+++ b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionChatClientAgentRunTests.cs
@@ -4,6 +4,12 @@ using AgentConformance.IntegrationTests;
namespace OpenAIChatCompletion.IntegrationTests;
-public class OpenAIChatCompletionChatClientAgentRunTests() : ChatClientAgentRunTests(() => new())
+public class OpenAIChatCompletionChatClientAgentRunTests()
+ : ChatClientAgentRunTests(() => new(useReasoningChatModel: false))
+{
+}
+
+public class OpenAIChatCompletionChatClientAgentReasoningRunTests()
+ : ChatClientAgentRunTests(() => new(useReasoningChatModel: true))
{
}
diff --git a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionFixture.cs b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionFixture.cs
index c88e774b38..0b68e2ecf7 100644
--- a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionFixture.cs
+++ b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionFixture.cs
@@ -16,9 +16,15 @@ namespace OpenAIChatCompletion.IntegrationTests;
public class OpenAIChatCompletionFixture : IChatClientAgentFixture
{
private static readonly OpenAIConfiguration s_config = TestConfiguration.LoadSection();
+ private readonly bool _useReasoningModel;
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable.
private ChatClientAgent _agent;
+
+ public OpenAIChatCompletionFixture(bool useReasoningChatModel)
+ {
+ this._useReasoningModel = useReasoningChatModel;
+ }
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable.
public Agent Agent => this._agent;
@@ -41,7 +47,7 @@ public class OpenAIChatCompletionFixture : IChatClientAgentFixture
IList? aiTools = null)
{
var chatClient = new OpenAIClient(s_config.ApiKey)
- .GetChatClient(s_config.ChatModelId)
+ .GetChatClient(this._useReasoningModel ? s_config.ChatReasoningModelId : s_config.ChatModelId)
.AsIChatClient();
return Task.FromResult(new ChatClientAgent(chatClient, new()
diff --git a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionRunStreamingTests.cs b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionRunStreamingTests.cs
index dac192ba5d..3fe381b58c 100644
--- a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionRunStreamingTests.cs
+++ b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionRunStreamingTests.cs
@@ -4,6 +4,12 @@ using AgentConformance.IntegrationTests;
namespace OpenAIChatCompletion.IntegrationTests;
-public class OpenAIChatCompletionRunStreamingTests() : RunStreamingTests(() => new())
+public class OpenAIChatCompletionRunStreamingTests()
+ : RunStreamingTests(() => new(useReasoningChatModel: false))
+{
+}
+
+public class OpenAIChatCompletionReasoningRunStreamingTests()
+ : RunStreamingTests(() => new(useReasoningChatModel: true))
{
}
diff --git a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionRunTests.cs b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionRunTests.cs
index 3de2d9b90d..7eff89dfe4 100644
--- a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionRunTests.cs
+++ b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionRunTests.cs
@@ -4,6 +4,12 @@ using AgentConformance.IntegrationTests;
namespace OpenAIChatCompletion.IntegrationTests;
-public class OpenAIChatCompletionRunTests() : RunTests(() => new())
+public class OpenAIChatCompletionRunTests()
+ : RunTests(() => new(useReasoningChatModel: false))
+{
+}
+
+public class OpenAIChatCompletionReasoningRunTests()
+ : RunTests(() => new(useReasoningChatModel: true))
{
}