This is a .NET implmentation of Google's Agent-to-Agent (A2A) Protocol.
From Google's A2A Repo
An open protocol enabling communication and interoperability between opaque agentic applications.
The Agent2Agent (A2A) protocol addresses a critical challenge in the AI landscape: enabling gen AI agents, built on diverse frameworks by different companies running on separate servers, to communicate and collaborate effectively - as agents, not just as tools. A2A aims to provide a common language for agents, fostering a more interconnected, powerful, and innovative AI ecosystem.
With A2A, agents can:
- Discover each other's capabilities.
- Negotiate interaction modalities (text, forms, media).
- Securely collaborate on long running tasks.
- Operate without exposing their internal state, memory, or tools.
The motivation of this project is to
- Enable an ASP.NET Core Application to create an A2A server just by using this SDK.
- Add more capabilities - multi agent hosting, enterprise grade features like observability etc.
For any ASP.NET Core Service, refer the the A2AProtocol.Server library (Nuget - TBD)
Add a configuration in your appsetting.json
"A2AConfiguration": {
"AgentCardPath": "resource/AgentCard.json"
}var builder = WebApplication.CreateBuilder(args);
builder.Services.AddA2AServerModules();
builder.Services.AddSingleton<IA2AServer, A2AServer>();
var app = builder.Build();
app.HostServer(path: "your/own/path");
app.Run();There is an A2AProtocol ASP.NET Core Application present in this repo (Don't take a dependency, as it may be removed in future, and moved to a sample directory)