mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
Update A2A library to 0.3.1-preview (#1141)
Co-authored-by: SergeyMenshykh <68852919+SergeyMenshykh@users.noreply.github.com>
This commit is contained in:
co-authored by
SergeyMenshykh
parent
4daeeb0f07
commit
cf831b0348
@@ -91,7 +91,7 @@ internal sealed class A2AAgent : AIAgent
|
||||
|
||||
this._logger.LogAgentChatClientInvokedAgent(nameof(RunAsync), this.Id, this.Name);
|
||||
|
||||
if (a2aResponse is Message message)
|
||||
if (a2aResponse is AgentMessage message)
|
||||
{
|
||||
UpdateThreadConversationId(typedThread, message.ContextId);
|
||||
|
||||
@@ -139,13 +139,13 @@ internal sealed class A2AAgent : AIAgent
|
||||
|
||||
this._logger.LogA2AAgentInvokingAgent(nameof(RunStreamingAsync), this.Id, this.Name);
|
||||
|
||||
var a2aSseEvents = this._a2aClient.SendMessageStreamAsync(new MessageSendParams { Message = a2aMessage }, cancellationToken).ConfigureAwait(false);
|
||||
var a2aSseEvents = this._a2aClient.SendMessageStreamingAsync(new MessageSendParams { Message = a2aMessage }, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
this._logger.LogAgentChatClientInvokedAgent(nameof(RunStreamingAsync), this.Id, this.Name);
|
||||
|
||||
await foreach (var sseEvent in a2aSseEvents)
|
||||
{
|
||||
if (sseEvent.Data is not Message message)
|
||||
if (sseEvent.Data is not AgentMessage message)
|
||||
{
|
||||
throw new NotSupportedException($"Only message responses are supported from A2A agents. Received: {sseEvent.Data?.GetType().FullName ?? "null"}");
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public sealed class A2AHostAgent
|
||||
/// </summary>
|
||||
/// <param name="messageSend">The <see cref="MessageSendParams"/> to handle.</param>
|
||||
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests. The default is <see cref="CancellationToken.None"/>.</param>
|
||||
public async Task<Message> OnMessageReceivedAsync(MessageSendParams messageSend, CancellationToken cancellationToken = default)
|
||||
public async Task<A2AResponse> OnMessageReceivedAsync(MessageSendParams messageSend, CancellationToken cancellationToken = default)
|
||||
{
|
||||
Throw.IfNull(messageSend);
|
||||
Throw.IfNull(this.Agent);
|
||||
@@ -80,7 +80,7 @@ public sealed class A2AHostAgent
|
||||
var userMessage = messageSend.Message.ToChatMessage();
|
||||
|
||||
// Get the response from the agent
|
||||
var message = new Message();
|
||||
var message = new AgentMessage();
|
||||
var agentResponse = await this.Agent.RunAsync(userMessage, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
foreach (var chatMessage in agentResponse.Messages)
|
||||
{
|
||||
|
||||
@@ -6,11 +6,11 @@ using Microsoft.Extensions.AI;
|
||||
namespace A2A;
|
||||
|
||||
/// <summary>
|
||||
/// Extension methods for the <see cref="Message"/> class.
|
||||
/// Extension methods for the <see cref="AgentMessage"/> class.
|
||||
/// </summary>
|
||||
internal static class A2AMessageExtensions
|
||||
{
|
||||
internal static ChatMessage ToChatMessage(this Message message)
|
||||
internal static ChatMessage ToChatMessage(this AgentMessage message)
|
||||
{
|
||||
List<AIContent>? aiContents = null;
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace Microsoft.Extensions.AI;
|
||||
/// </summary>
|
||||
internal static class ChatMessageExtensions
|
||||
{
|
||||
internal static Message ToA2AMessage(this IEnumerable<ChatMessage> messages)
|
||||
internal static AgentMessage ToA2AMessage(this IEnumerable<ChatMessage> messages)
|
||||
{
|
||||
List<Part> allParts = [];
|
||||
|
||||
@@ -23,7 +23,7 @@ internal static class ChatMessageExtensions
|
||||
}
|
||||
}
|
||||
|
||||
return new Message
|
||||
return new AgentMessage
|
||||
{
|
||||
MessageId = Guid.NewGuid().ToString("N"),
|
||||
Role = MessageRole.User,
|
||||
|
||||
@@ -35,7 +35,7 @@ public static class AIAgentExtensions
|
||||
|
||||
return taskManager;
|
||||
|
||||
async Task<Message> OnMessageReceivedAsync(MessageSendParams messageSendParams, CancellationToken cancellationToken)
|
||||
async Task<A2AResponse> OnMessageReceivedAsync(MessageSendParams messageSendParams, CancellationToken cancellationToken)
|
||||
{
|
||||
var response = await agent.RunAsync(
|
||||
messageSendParams.ToChatMessages(),
|
||||
@@ -43,7 +43,7 @@ public static class AIAgentExtensions
|
||||
var contextId = messageSendParams.Message.ContextId ?? Guid.NewGuid().ToString("N");
|
||||
var parts = response.Messages.ToParts();
|
||||
|
||||
return new Message
|
||||
return new AgentMessage
|
||||
{
|
||||
MessageId = response.ResponseId ?? Guid.NewGuid().ToString("N"),
|
||||
ContextId = contextId,
|
||||
|
||||
@@ -65,10 +65,10 @@ internal static class MessageConverter
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts collection of A2A <see cref="Message"/> to a collection of <see cref="ChatMessage"/> objects.
|
||||
/// Converts collection of A2A <see cref="AgentMessage"/> to a collection of <see cref="ChatMessage"/> objects.
|
||||
/// </summary>
|
||||
/// <returns>A read-only collection of ChatMessage objects.</returns>
|
||||
public static IReadOnlyCollection<ChatMessage> ToChatMessages(this ICollection<Message> messages)
|
||||
public static IReadOnlyCollection<ChatMessage> ToChatMessages(this ICollection<AgentMessage> messages)
|
||||
{
|
||||
if (messages is null || messages.Count == 0)
|
||||
{
|
||||
@@ -89,11 +89,11 @@ internal static class MessageConverter
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts a single <see cref="Message"/> to a <see cref="ChatMessage"/>.
|
||||
/// Converts a single <see cref="AgentMessage"/> to a <see cref="ChatMessage"/>.
|
||||
/// </summary>
|
||||
/// <param name="message">The A2A message to convert.</param>
|
||||
/// <returns>A ChatMessage object, or null if conversion is not possible.</returns>
|
||||
public static ChatMessage? ToChatMessage(this Message message)
|
||||
public static ChatMessage? ToChatMessage(this AgentMessage message)
|
||||
{
|
||||
if (message?.Parts is not { Count: > 0 })
|
||||
{
|
||||
@@ -169,14 +169,14 @@ internal static class MessageConverter
|
||||
/// </summary>
|
||||
/// <param name="chatMessage">The ChatMessage to convert.</param>
|
||||
/// <returns>An A2A Message object.</returns>
|
||||
public static Message ToA2AMessage(this ChatMessage chatMessage)
|
||||
public static AgentMessage ToA2AMessage(this ChatMessage chatMessage)
|
||||
{
|
||||
if (chatMessage is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(chatMessage));
|
||||
}
|
||||
|
||||
var message = new Message
|
||||
var message = new AgentMessage
|
||||
{
|
||||
MessageId = chatMessage.MessageId ?? Guid.NewGuid().ToString("N"),
|
||||
Role = ConvertChatRoleToMessageRole(chatMessage.Role),
|
||||
|
||||
Reference in New Issue
Block a user