fix: declare Magentic protocol messages (#5778)

Co-authored-by: Jacob Alber <jaalber@microsoft.com>
This commit is contained in:
Yufeng He
2026-05-12 23:59:15 +08:00
committed by GitHub
Unverified
parent d8619b93ad
commit 818ae65b77
2 changed files with 30 additions and 1 deletions
@@ -98,7 +98,10 @@ internal class MagenticOrchestrator(AIAgent managerAgent, List<AIAgent> team, Ta
protected override ProtocolBuilder ConfigureProtocol(ProtocolBuilder protocolBuilder)
{
return base.ConfigureProtocol(protocolBuilder).ConfigureRoutes(ConfigureRoutes);
return base.ConfigureProtocol(protocolBuilder)
.SendsMessage<ChatMessage>()
.SendsMessage<ResetChatSignal>()
.ConfigureRoutes(ConfigureRoutes);
void ConfigureRoutes(RouteBuilder routeBuilder) => routeBuilder.AddPortHandler<MagenticPlanReviewRequest, MagenticPlanReviewResponse>(
"RequestPlanReview",
@@ -0,0 +1,26 @@
// Copyright (c) Microsoft. All rights reserved.
using System.Collections.Generic;
using FluentAssertions;
using Microsoft.Agents.AI.Workflows.Specialized.Magentic;
using Microsoft.Extensions.AI;
namespace Microsoft.Agents.AI.Workflows.UnitTests;
public class MagenticOrchestratorTests
{
[Fact]
public void Test_MagenticOrchestrator_Protocol_Declares_SentMessages()
{
TestReplayAgent manager = new(name: nameof(MagenticOrchestrator));
TestEchoAgent participant = new(name: "Echo");
MagenticOrchestrator orchestrator = new(manager, [participant], new(), requirePlanSignoff: false);
ProtocolDescriptor protocol = orchestrator.DescribeProtocol();
protocol.Sends.Should().Contain(typeof(List<ChatMessage>));
protocol.Sends.Should().Contain(typeof(ChatMessage));
protocol.Sends.Should().Contain(typeof(TurnToken));
protocol.Sends.Should().Contain(typeof(ResetChatSignal));
}
}