Multi-Agent Orchestration in .NET Using A2A A developer demonstrated how to orchestrate a multi-agent system in .NET using the Agent-to-Agent (A2A) protocol, converting remote agents into AIFunction tools for an LLM-based orchestrator. The proof-of-concept dynamically registers agent cards, enabling parallel calls to specialized agents like an assortment specialist and a supply chain agent without code changes. Investigation of how to orchestrate an agentic system using an A2A protocol based on .NET primitives and create a PoC. Use Case : We have existing agents that support A2A, and we want to build it into a multi-agent system. Let's start from theory. The agent-to-agent A2A protocol is designed to define well-known contracts for communication between agents without humans. Every agent publishes an AgentCard /.well-known/agent-card.json . An Agent client discovers the card, then sends tasks to the agent as messages. Our building blocks: php graph LR User User -- Orch Orchestrator Orch -. discover AgentCard .- A Assortment agent Orch -. discover AgentCard .- S SupplyChain agent Orch -- A2A SendMessage -- A Orch -- A2A SendMessage -- S A -- AT Catalog tools S -- ST Stock tools IChatClient Azure OpenAI, Bedrock, OpenAI, etc. . Microsoft provides an abstraction for the A2A spec for ASP.NET Core js var agentCard = new AgentCard { Name = "AssortmentSpecialist", Description = "Handles shop inventories, product categorizations, catalogs, and store assortments.", Skills = new AgentSkill { Id = "get-product", Name = "GetProduct", Description = "Look up a product's SKU, category, active status, and store coverage by name.", }, , }; builder.Services.AddA2AAgent