Skip to content

Commit c81da93

Browse files
authored
Revise README for A2A protocol details and formatting
Updated README to enhance clarity on A2A protocol features and components, including improved formatting and additional details on agent roles.
1 parent b6d1e2a commit c81da93

1 file changed

Lines changed: 52 additions & 40 deletions

File tree

README.md

Lines changed: 52 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ Last updated: 2026-02-02
2121

2222
> E.g
2323
24-
<img width="1905" height="1086" alt="image" src="https://github.com/user-attachments/assets/5cd2776f-4606-45c2-9482-53ff2d4df74e" />
25-
24+
<div align="center">
25+
<img width="950" alt="image" src="https://github.com/user-attachments/assets/886cca9f-9630-4d5f-aca1-b4d37a42fa2d" style="border: 2px solid #4CAF50; border-radius: 5px; padding: 5px;"/>
26+
</div>
27+
2628
> [!IMPORTANT]
2729
> The deployment process typically takes 15-20 minutes
2830
>
@@ -32,51 +34,61 @@ Last updated: 2026-02-02
3234
3335
## Key Features
3436

35-
- **Enhanced A2A Protocol**: Agent-to-Agent communication with delegation patterns, specialized agent coordination, and factual data integration
36-
- **6-Agent Architecture**: Specialized AI agents with proper delegation through A2A protocol:
37+
- **Multi-agent chat orchestration (default runtime)**: WebSocket `/ws` chat app orchestrates multiple agents in a single conversation flow (routing + multi-step handoffs)
38+
- **6-Agent Architecture (real Azure AI Foundry agents)**:
3739
- **Cora (Shopper)**: Front-facing assistant for general customer queries
38-
- **Interior Design Specialist**: Design expertise and style recommendations
39-
- **Inventory Manager**: Stock availability and product lookup coordination
40-
- **Customer Loyalty**: Rewards management and discount optimization
41-
- **Cart Manager**: Shopping cart operations and checkout coordination
42-
- **Product Management Specialist**: Coordinates with Marketing Agent, Ranker Agent, and Product Information Plugin for comprehensive product services
43-
- **Specialized Agent Delegation**: Product Manager delegates marketing tasks to Marketing Agent and ranking tasks to Ranker Agent as appropriate
44-
- **Factual Data Plugin**: Product Information Plugin provides accurate product catalog data from predefined sources
45-
- **Real MSFT Foundry Agents**: Integrates with **MSFT Foundry** to create and host persistent agents with proper delegation patterns
46-
- **Zero-Touch Deployment**: A single [terraform apply](./terraform-infrastructure/README.md) command handles the entire lifecycle including enhanced A2A framework deployment
47-
- **A2A Task Coordination**: Advanced inter-agent task delegation with specialized expertise routing
48-
- **Data Pipeline Automation**: Automatically ingests product catalogs with comprehensive A2A event coordination
40+
- **Interior Design Specialist**: Design expertise and style recommendations
41+
- **Inventory Manager**: Stock availability + product lookup coordination
42+
- **Customer Loyalty**: Rewards and discount-related queries
43+
- **Cart Manager**: Cart operations and checkout-oriented help
44+
- **Product Management Specialist**: Handles product-centric workflows and coordinates lookups across services
45+
- **Intent routing + handoff planning**: Classifies user intent and plans a multi-step sequence of agent calls (instead of a single “one agent answers everything” flow)
46+
- **Factual data integration**: Uses **Azure AI Search** (vector/keyword retrieval) and **Azure Cosmos DB** (catalog/state) during workflows
47+
- **Real persistent agents**: Uses Azure AI Foundry Agents with saved runtime IDs (OpenAI-style `asst_*`) provisioned during deployment
48+
- **Zero-touch deployment**: `terraform apply` provisions infra, ingests data, creates/updates agents, wires secrets/config, and deploys the Container Apps revision
49+
- **UI-visible diagnostics**: Correlated `error_id` responses and optional tracebacks via `A2A_DEBUG=true` for faster troubleshooting
50+
- **Optional A2A server included**: `src/a2a/` contains an A2A-style server framework, but it is not the default Container Apps entrypoint unless you deploy it explicitly
4951

5052
## About A2A Protocol
5153

52-
`A2A (Agent-to-Agent) Protocol is a standardized communication framework that enables multiple AI agents to collaborate and coordinate tasks seamlessly.`
54+
`A2A (Agent-to-Agent) Protocol is a standardized communication framework that enables multiple AI agents to collaborate and coordinate tasks seamlessly.` Like a communication pattern for coordinating multiple agents through structured messages, delegation, and (optionally) event-driven workflows.
55+
56+
This repo contains **two multi-agent implementations**:
57+
- **Default deployed chat runtime (what the Dockerfile runs)**: WebSocket `/ws` in `src/chat_app_multi_agent.py`, which routes requests and orchestrates **real Azure AI Foundry Agents** in a multi-step handoff sequence.
58+
- **Optional A2A server implementation**: an A2A-style server under `src/a2a/` (routers, coordinator, event/task framework). Use this only if you deploy/run that entrypoint.
5359

5460
> What is A2A Protocol?
5561
56-
- **Agent-to-Agent Communication**: Structured messaging between multiple AI agents
57-
- **Task Coordination**: Agents can delegate tasks to specialized agents
58-
- **Event-Driven Architecture**: Real-time event handling for agent interactions
59-
- **Agent Discovery**: Automatic detection and registration of available agents
60-
- **Protocol Standardization**: Consistent API for inter-agent communication
61-
62-
> A2A Components in This Project:
63-
64-
- **Agent Execution Framework**: Manages multiple agent instances (`src/a2a/server/agent_execution.py`)
65-
- **Event System**: Handles inter-agent communication and delegation (`src/a2a/server/events/`)
66-
- **Task Coordination**: Advanced task delegation between specialized agents (`src/a2a/server/tasks.py`)
67-
- **Request Handlers**: Processes agent-to-agent requests with delegation routing (`src/a2a/server/request_handlers.py`)
68-
- **Coordinator Agent**: Orchestrates complex multi-agent workflows (`src/a2a/agent/coordinator.py`)
69-
- **Specialized Agents**: Marketing Agent, Ranker Agent with delegation patterns (`src/app/agents/`)
70-
- **Product Information Plugin**: Factual data source for product catalog (`src/app/agents/product_information_plugin.py`)
71-
- **API Endpoints**: RESTful and WebSocket APIs for enhanced agent communication (`src/a2a/api/`)
72-
73-
> A2A vs Traditional Multi-Agent Systems:
74-
75-
- **Standardized Protocol**: Uses consistent message formats and APIs
76-
- **Scalable Architecture**: Easily add new agents without modifying existing ones
77-
- **Real-time Communication**: WebSocket support for instant agent interactions
78-
- **Event-Driven**: Asynchronous event handling for better performance
79-
- **Infrastructure Integration**: Full Terraform deployment with monitoring and automation
62+
- **Agent-to-Agent Communication**: structured messaging between multiple agents
63+
- **Task Coordination**: agents can delegate tasks to specialized agents
64+
- **Event-Driven Architecture (optional)**: event handling for asynchronous workflows
65+
- **Agent Discovery (optional)**: enumerate/register available agents
66+
- **Protocol Standardization**: consistent message formats and APIs
67+
68+
> How this repo implements multi-agent collaboration (default deployment)
69+
70+
- **WebSocket chat interface**: `/ws` endpoint served by `src/chat_app_multi_agent.py`
71+
- **Intent routing**: classifies the user request and selects the primary domain (`src/services/handoff_service.py`)
72+
- **Handoff planning**: builds a multi-step sequence of which agents to call (`src/chat_app_multi_agent.py`)
73+
- **Remote agent execution**: calls Azure AI Foundry Agents using the saved `asst_*` IDs (`src/app/agents/agent_processor.py`)
74+
- **Factual lookups**: uses Azure AI Search and Cosmos DB during workflows (called from the app runtime)
75+
76+
> A2A components included in this repo (optional server)
77+
78+
- **A2A server entrypoint**: `src/a2a/main.py`
79+
- **A2A API routers**: `src/a2a/api/`
80+
- **Agent execution framework**: `src/a2a/server/agent_execution.py`
81+
- **Event system**: `src/a2a/server/events/`
82+
- **Task coordination**: `src/a2a/server/tasks.py`
83+
- **Request handlers**: `src/a2a/server/request_handlers.py`
84+
- **Coordinator**: `src/a2a/agent/coordinator.py`
85+
- **Agent implementations (examples)**: `src/app/agents/`
86+
- **Product catalog helper/plugin (if used)**: `src/app/agents/product_information_plugin.py`
87+
88+
> [!IMPORTANT]
89+
> A2A vs the default deployed chat runtime
90+
> - **A2A server path**: event/task oriented framework under `src/a2a/` (only available if you deploy/run that server)
91+
> - **Default path**: `/ws` WebSocket chat + routing + sequential handoffs to real Foundry agents (no event queue required for the default flow)
8092
8193
## Architecture
8294

0 commit comments

Comments
 (0)