From a70a670391ae2628f45d1a8a10fad17353798754 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Sat, 22 Mar 2025 09:06:50 +0000 Subject: [PATCH 1/3] Move invoke tests to subfolder --- .../{ => InvokeConformance}/AzureAIAgentInvokeTests.cs | 2 +- .../{ => InvokeConformance}/ChatCompletionAgentInvokeTests.cs | 2 +- .../{ => InvokeConformance}/InvokeTests.cs | 2 +- .../{ => InvokeConformance}/OpenAIAssistantAgentInvokeTests.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/{ => InvokeConformance}/AzureAIAgentInvokeTests.cs (87%) rename dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/{ => InvokeConformance}/ChatCompletionAgentInvokeTests.cs (87%) rename dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/{ => InvokeConformance}/InvokeTests.cs (99%) rename dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/{ => InvokeConformance}/OpenAIAssistantAgentInvokeTests.cs (87%) diff --git a/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/AzureAIAgentInvokeTests.cs b/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/AzureAIAgentInvokeTests.cs similarity index 87% rename from dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/AzureAIAgentInvokeTests.cs rename to dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/AzureAIAgentInvokeTests.cs index 5ee777fe67f5..eeb0ce918c5e 100644 --- a/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/AzureAIAgentInvokeTests.cs +++ b/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/AzureAIAgentInvokeTests.cs @@ -1,6 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. -namespace SemanticKernel.IntegrationTests.Agents.CommonInterfaceConformance; +namespace SemanticKernel.IntegrationTests.Agents.CommonInterfaceConformance.InvokeConformance; public class AzureAIAgentInvokeTests() : InvokeTests(() => new AzureAIAgentFixture()) { diff --git a/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/ChatCompletionAgentInvokeTests.cs b/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/ChatCompletionAgentInvokeTests.cs similarity index 87% rename from dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/ChatCompletionAgentInvokeTests.cs rename to dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/ChatCompletionAgentInvokeTests.cs index a234260e4620..8424163eb939 100644 --- a/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/ChatCompletionAgentInvokeTests.cs +++ b/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/ChatCompletionAgentInvokeTests.cs @@ -1,6 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. -namespace SemanticKernel.IntegrationTests.Agents.CommonInterfaceConformance; +namespace SemanticKernel.IntegrationTests.Agents.CommonInterfaceConformance.InvokeConformance; public class ChatCompletionAgentInvokeTests() : InvokeTests(() => new ChatCompletionAgentFixture()) { diff --git a/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeTests.cs b/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/InvokeTests.cs similarity index 99% rename from dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeTests.cs rename to dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/InvokeTests.cs index 3b1afcd796b9..0c98936b7f02 100644 --- a/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeTests.cs +++ b/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/InvokeTests.cs @@ -8,7 +8,7 @@ using Microsoft.SemanticKernel.Agents; using Xunit; -namespace SemanticKernel.IntegrationTests.Agents.CommonInterfaceConformance; +namespace SemanticKernel.IntegrationTests.Agents.CommonInterfaceConformance.InvokeConformance; /// /// Base test class for testing the method of agents. diff --git a/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/OpenAIAssistantAgentInvokeTests.cs b/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/OpenAIAssistantAgentInvokeTests.cs similarity index 87% rename from dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/OpenAIAssistantAgentInvokeTests.cs rename to dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/OpenAIAssistantAgentInvokeTests.cs index 31e63181d910..82d81c7820a8 100644 --- a/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/OpenAIAssistantAgentInvokeTests.cs +++ b/dotnet/src/IntegrationTests/Agents/CommonInterfaceConformance/InvokeConformance/OpenAIAssistantAgentInvokeTests.cs @@ -1,6 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. -namespace SemanticKernel.IntegrationTests.Agents.CommonInterfaceConformance; +namespace SemanticKernel.IntegrationTests.Agents.CommonInterfaceConformance.InvokeConformance; public class OpenAIAssistantAgentInvokeTests() : InvokeTests(() => new OpenAIAssistantAgentFixture()) { From 6dd0a21bd6f0fd10a7e1b3152b00636e0cff1229 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Sat, 22 Mar 2025 09:36:42 +0000 Subject: [PATCH 2/3] Add implicit cast operator from response item to message --- dotnet/src/Agents/Abstractions/AgentResponseItem.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dotnet/src/Agents/Abstractions/AgentResponseItem.cs b/dotnet/src/Agents/Abstractions/AgentResponseItem.cs index e6fca3c1438d..227a1afc0f8e 100644 --- a/dotnet/src/Agents/Abstractions/AgentResponseItem.cs +++ b/dotnet/src/Agents/Abstractions/AgentResponseItem.cs @@ -33,4 +33,10 @@ public AgentResponseItem(TMessage message, AgentThread thread) /// Gets the conversation thread associated with the response. /// public AgentThread Thread => this._thread; + + /// + /// Implicitly converts an to a or . + /// + /// + public static implicit operator TMessage(AgentResponseItem responseItem) => responseItem.Message; } From fac3850f667bae7af50001b057f7690247475f7c Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Sat, 22 Mar 2025 09:41:08 +0000 Subject: [PATCH 3/3] Mark GetMessagesAsync as experimental for each Thread implementation --- dotnet/src/Agents/AzureAI/AzureAIAgentThread.cs | 2 ++ dotnet/src/Agents/Core/ChatHistoryAgentThread.cs | 2 ++ dotnet/src/Agents/OpenAI/OpenAIAssistantAgentThread.cs | 2 ++ 3 files changed, 6 insertions(+) diff --git a/dotnet/src/Agents/AzureAI/AzureAIAgentThread.cs b/dotnet/src/Agents/AzureAI/AzureAIAgentThread.cs index 140d2f37def1..d49e2d428252 100644 --- a/dotnet/src/Agents/AzureAI/AzureAIAgentThread.cs +++ b/dotnet/src/Agents/AzureAI/AzureAIAgentThread.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -113,6 +114,7 @@ public override async Task OnNewMessageAsync(ChatMessageContent newMessage, Canc } /// + [Experimental("SKEXP0110")] public async IAsyncEnumerable GetMessagesAsync([EnumeratorCancellation] CancellationToken cancellationToken = default) { if (this._isDeleted) diff --git a/dotnet/src/Agents/Core/ChatHistoryAgentThread.cs b/dotnet/src/Agents/Core/ChatHistoryAgentThread.cs index 889cae3b1f92..f2b75c793a11 100644 --- a/dotnet/src/Agents/Core/ChatHistoryAgentThread.cs +++ b/dotnet/src/Agents/Core/ChatHistoryAgentThread.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -94,6 +95,7 @@ public async override Task OnNewMessageAsync(ChatMessageContent newMessage, Canc } /// + [Experimental("SKEXP0110")] public async IAsyncEnumerable GetMessagesAsync([EnumeratorCancellation] CancellationToken cancellationToken = default) { if (this._isDeleted) diff --git a/dotnet/src/Agents/OpenAI/OpenAIAssistantAgentThread.cs b/dotnet/src/Agents/OpenAI/OpenAIAssistantAgentThread.cs index bc504e934e8c..a7765f95c789 100644 --- a/dotnet/src/Agents/OpenAI/OpenAIAssistantAgentThread.cs +++ b/dotnet/src/Agents/OpenAI/OpenAIAssistantAgentThread.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -105,6 +106,7 @@ public override async Task OnNewMessageAsync(ChatMessageContent newMessage, Canc } /// + [Experimental("SKEXP0110")] public async IAsyncEnumerable GetMessagesAsync([EnumeratorCancellation] CancellationToken cancellationToken = default) { if (this._isDeleted)