AI - 尝试一下基于A2A SDK v1使用Microsoft Agent Framework for .NET创建A2A(Agent to Agent) Server和A2A Client
1. 简单介绍
A2A(Agent to Agent)是用于智能体间通信与协作的协议。2025年6月份Google将A2A协议规范及SDK捐赠给了Linux基金会。A2A解决了AI Agent之间互相连通的问题,这些AI Agent可以是不同的技术制作的,也可以是远程的Agents。MCP(Model Context Protocol)是用于连接AI Agent到外部工具或者系统,而A2A则是用于AI Agent间的连接。
A2A SDK v1在2026年4月已经发布了。A2A SDK v1和之前的v0.3版本有很大的区别,这是一个break change。在A2A SDK v1中, A2A hosting(server-side)和A2A Agent(client-side)的实现方式都有一些变化。
微软在2026/4/3发布了Microsoft Agent Framework(简称MAF) 1.0。A2A v1其实也已经整合在MAF框架中,Microsoft.Agents.AI.Hosting.A2A.AspNetCore就可以用于制作A2A项目。

这边将尝试一下基于A2A SDK v1版本创建A2A server和A2A client。
2. 创建A2A项目
2.1 A2A .NET SDK
这边打算使用.NET10来尝试一下A2A项目。如下是 A2A的.NET SDK信息,
A2A .NET nuget package: https://www.nuget.org/packages/A2A
A2A .NET SDK GitHub repo: https://github.com/a2aproject/a2a-dotnet
2.2 制作项目
这边打算使用GitHub Models来制作AI Agent,
2.2.1 获取GitHub Token
1) 创建一个personal access token(classic),设定一下Note, Expiration, scope等信息,
2) 最后拷贝一下生成的PAT(personal access token),
2.2.1 制作A2A server
这是一个Asp.Net Core项目,
1)给项目添加A2A package, Microsoft.Agents.AI.Hosting.A2A.AspNetCore

2) 创建一个chatclient,
IChatClient chatClient = new ChatClient(
model,
new AzureKeyCredential(githubToken),
new OpenAIClientOptions
{
Endpoint = new Uri(apiEndpoint)
}
)
.AsIChatClient();
3) 注册一个用于数学计算的AI Agent,
builder.Services.AddKeyedSingleton<AIAgent>("calculator-agent", (sp, _) =>
{
return chatClient
.AsAIAgent(
instructions: "You are a math expert. When someone asks you a math question, please give the answer directly",
name: "calculator-agent"
);
});
4) 注册一个A2A server给calculatorAgent
builder.AddA2AServer("calculator-agent");
5) 使用A2A的方式来暴露calculatorAgent,
app.MapA2AHttpJson("calculator-agent", "/a2a/calculator");
app.MapWellKnownAgentCard(new AgentCard
{
Name = "calculator Agent",
Description = "An agent that good at calculating, especially math",
SupportedInterfaces =
[
new AgentInterface
{
Url = "https://[your host]/a2a/calculator",
ProtocolBinding = ProtocolBindingNames.HttpJson,
ProtocolVersion = "1.0",
}
]
});
6) A2A server制作完成后,使用命令dotnet run运行项目,
2.2.2 制作A2A client
这是一个console项目,
1) 从远程A2A server host address获取agent card,然后创建AIAgent,
A2ACardResolver resolver = new(new Uri("https://[your host]"));
AIAgent agent = await resolver.GetAIAgentAsync();
2) 发送信息给calculator agent并获取回复,
Console.WriteLine(await agent.RunAsync("Hello calculator! What is the result of 5 + 7?"));
3.2.3 运行一下
分别运行A2A Server和A2A Client项目,最后在A2A Client的Console中有结果输出,如下图所示,
3.总结
本文简单介绍了一下A2A Server和A2A Client项目的制作过程,都是基于A2A v1版本的。上面创建的A2A Server,可以通过devtunnel暴露endpoint到公网,这样Copilot Studio agent就可以连接到这个A2A agent了。
当前出现的AI相关的新技术,新协议,新框架很多,还需继续跟着社区学习一下。
本文如果哪里有错误,麻烦告之,谢谢谢谢!
更多推荐

所有评论(0)