From e9a1086d5d3f9ebe36e3f04226c22fcb8a2208bd Mon Sep 17 00:00:00 2001 From: Maciej Warchalowski Date: Thu, 22 Jan 2026 07:31:18 +0000 Subject: [PATCH] fix: include MessageId in AGUIToolMessage to ChatMessage transformation --- .../Shared/AGUIChatMessageExtensions.cs | 3 ++- .../AGUIChatMessageExtensionsTests.cs | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dotnet/src/Microsoft.Agents.AI.AGUI/Shared/AGUIChatMessageExtensions.cs b/dotnet/src/Microsoft.Agents.AI.AGUI/Shared/AGUIChatMessageExtensions.cs index 506956cac8..bcb5fc911c 100644 --- a/dotnet/src/Microsoft.Agents.AI.AGUI/Shared/AGUIChatMessageExtensions.cs +++ b/dotnet/src/Microsoft.Agents.AI.AGUI/Shared/AGUIChatMessageExtensions.cs @@ -51,7 +51,8 @@ public static IEnumerable AsChatMessages( new FunctionResultContent( toolMessage.ToolCallId, result) - ]); + ]) + { MessageId = message.Id }; break; } diff --git a/dotnet/tests/Microsoft.Agents.AI.AGUI.UnitTests/AGUIChatMessageExtensionsTests.cs b/dotnet/tests/Microsoft.Agents.AI.AGUI.UnitTests/AGUIChatMessageExtensionsTests.cs index bc3a73fb4c..c79c131ae4 100644 --- a/dotnet/tests/Microsoft.Agents.AI.AGUI.UnitTests/AGUIChatMessageExtensionsTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.AGUI.UnitTests/AGUIChatMessageExtensionsTests.cs @@ -286,6 +286,7 @@ public void AsChatMessages_WithToolMessage_DeserializesResultCorrectly() FunctionResultContent result = Assert.IsType(message.Contents[0]); Assert.Equal("call_abc", result.CallId); Assert.NotNull(result.Result); + Assert.Equal("msg1", message.MessageId); } [Fact] @@ -310,6 +311,7 @@ public void AsChatMessages_WithEmptyToolContent_CreatesNullResult() FunctionResultContent result = Assert.IsType(message.Contents[0]); Assert.Equal("call_def", result.CallId); Assert.Equal(string.Empty, result.Result); + Assert.Equal("msg1", message.MessageId); } [Fact] @@ -334,6 +336,7 @@ public void AsChatMessages_WithToolMessageWithoutCallId_TreatsAsRegularMessage() Assert.Equal(ChatRole.Tool, message.Role); var resultContent = Assert.IsType(message.Contents.First()); Assert.Equal(string.Empty, resultContent.CallId); + Assert.Equal("msg1", message.MessageId); } [Fact] @@ -423,6 +426,7 @@ public void AsChatMessages_WithFunctionCallContainingCustomType_SerializesCorrec Assert.Equal("Seattle", ((System.Text.Json.JsonElement)toolCallContent.Arguments["location"]!).GetString()); Assert.Equal("fahrenheit", ((System.Text.Json.JsonElement)toolCallContent.Arguments["units"]!).GetString()); Assert.True(toolCallContent.Arguments["includeForecast"] is System.Text.Json.JsonElement j && j.GetBoolean()); + Assert.Equal("msg1", message.MessageId); } [Fact]