.NET: Change GetAIAgentAsync to be synchronous (#1846)

* Change GetAIAgentAsync to be synchronous

* Update dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AAgentCardExtensionsTests.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Stephen Toub
2025-11-03 10:16:19 -05:00
committed by GitHub
Unverified
parent b467ddf92a
commit e87eed573b
4 changed files with 6 additions and 7 deletions
@@ -23,7 +23,7 @@ A2ACardResolver agentCardResolver = new(new Uri(a2aAgentHost));
AgentCard agentCard = await agentCardResolver.GetAgentCardAsync();
// Create an instance of the AIAgent for an existing A2A agent specified by the agent card.
AIAgent a2aAgent = await agentCard.GetAIAgentAsync();
AIAgent a2aAgent = agentCard.GetAIAgent();
// Create the main agent, and provide the a2a agent skills as a function tools.
AIAgent agent = new AzureOpenAIClient(
@@ -2,7 +2,6 @@
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Agents.AI;
using Microsoft.Extensions.Logging;
@@ -28,7 +27,7 @@ public static class A2AAgentCardExtensions
/// <param name="httpClient">The <see cref="HttpClient"/> to use for HTTP requests.</param>
/// <param name="loggerFactory">The logger factory for enabling logging within the agent.</param>
/// <returns>An <see cref="AIAgent"/> instance backed by the A2A agent.</returns>
public static async Task<AIAgent> GetAIAgentAsync(this AgentCard card, HttpClient? httpClient = null, ILoggerFactory? loggerFactory = null)
public static AIAgent GetAIAgent(this AgentCard card, HttpClient? httpClient = null, ILoggerFactory? loggerFactory = null)
{
// Create the A2A client using the agent URL from the card.
var a2aClient = new A2AClient(new Uri(card.Url), httpClient);
@@ -42,6 +42,6 @@ public static class A2ACardResolverExtensions
// Obtain the agent card from the resolver.
var agentCard = await resolver.GetAgentCardAsync(cancellationToken).ConfigureAwait(false);
return await agentCard.GetAIAgentAsync(httpClient, loggerFactory).ConfigureAwait(false);
return agentCard.GetAIAgent(httpClient, loggerFactory);
}
}
@@ -31,10 +31,10 @@ public sealed class A2AAgentCardExtensionsTests
}
[Fact]
public async Task GetAIAgentAsync_ReturnsAIAgentAsync()
public void GetAIAgent_ReturnsAIAgent()
{
// Act
var agent = await this._agentCard.GetAIAgentAsync();
var agent = this._agentCard.GetAIAgent();
// Assert
Assert.NotNull(agent);
@@ -56,7 +56,7 @@ public sealed class A2AAgentCardExtensionsTests
Parts = [new TextPart { Text = "Response" }],
});
var agent = await this._agentCard.GetAIAgentAsync(httpClient);
var agent = this._agentCard.GetAIAgent(httpClient);
// Act
await agent.RunAsync("Test input");