
From d33914fa9e180154f466587da685cbd75bae2c56 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Mon, 2 Feb 2026 12:12:08 -0600
Subject: [PATCH 5/9] Enhance README with Container and Web App visuals
Added images and descriptions for Container App and Web App approaches.
---
terraform-infrastructure/README.md | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/terraform-infrastructure/README.md b/terraform-infrastructure/README.md
index 9b19cf5..9b831bc 100644
--- a/terraform-infrastructure/README.md
+++ b/terraform-infrastructure/README.md
@@ -11,6 +11,14 @@ Last updated: 2026-01-29
> This approach focuses on `setting up the required infrastructure via Terraform`. It allows for source control of not only the solution code, connections, and setups `but also the infrastructure itself`.
+> When `Container App approach`:
+
+

+
+

+
+> When `Web App approach`:
+
From b6d1e2a3ca55ecc6c241e3ba50b877566668e785 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Mon, 2 Feb 2026 18:12:20 +0000
Subject: [PATCH 6/9] Update last modified date in Markdown files
---
terraform-infrastructure/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/terraform-infrastructure/README.md b/terraform-infrastructure/README.md
index 9b831bc..91d6cc4 100644
--- a/terraform-infrastructure/README.md
+++ b/terraform-infrastructure/README.md
@@ -5,7 +5,7 @@ Costa Rica
[](https://github.com/)
[brown9804](https://github.com/brown9804)
-Last updated: 2026-01-29
+Last updated: 2026-02-02
----------
From c81da93e534f6effa6adb26810178b3e4cfbd376 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Mon, 2 Feb 2026 12:49:22 -0600
Subject: [PATCH 7/9] 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.
---
README.md | 92 +++++++++++++++++++++++++++++++------------------------
1 file changed, 52 insertions(+), 40 deletions(-)
diff --git a/README.md b/README.md
index 7894d4f..940cf31 100644
--- a/README.md
+++ b/README.md
@@ -21,8 +21,10 @@ Last updated: 2026-02-02
> E.g
-
-
+
+

+
+
> [!IMPORTANT]
> The deployment process typically takes 15-20 minutes
>
@@ -32,51 +34,61 @@ Last updated: 2026-02-02
## Key Features
-- **Enhanced A2A Protocol**: Agent-to-Agent communication with delegation patterns, specialized agent coordination, and factual data integration
-- **6-Agent Architecture**: Specialized AI agents with proper delegation through A2A protocol:
+- **Multi-agent chat orchestration (default runtime)**: WebSocket `/ws` chat app orchestrates multiple agents in a single conversation flow (routing + multi-step handoffs)
+- **6-Agent Architecture (real Azure AI Foundry agents)**:
- **Cora (Shopper)**: Front-facing assistant for general customer queries
- - **Interior Design Specialist**: Design expertise and style recommendations
- - **Inventory Manager**: Stock availability and product lookup coordination
- - **Customer Loyalty**: Rewards management and discount optimization
- - **Cart Manager**: Shopping cart operations and checkout coordination
- - **Product Management Specialist**: Coordinates with Marketing Agent, Ranker Agent, and Product Information Plugin for comprehensive product services
-- **Specialized Agent Delegation**: Product Manager delegates marketing tasks to Marketing Agent and ranking tasks to Ranker Agent as appropriate
-- **Factual Data Plugin**: Product Information Plugin provides accurate product catalog data from predefined sources
-- **Real MSFT Foundry Agents**: Integrates with **MSFT Foundry** to create and host persistent agents with proper delegation patterns
-- **Zero-Touch Deployment**: A single [terraform apply](./terraform-infrastructure/README.md) command handles the entire lifecycle including enhanced A2A framework deployment
-- **A2A Task Coordination**: Advanced inter-agent task delegation with specialized expertise routing
-- **Data Pipeline Automation**: Automatically ingests product catalogs with comprehensive A2A event coordination
+ - **Interior Design Specialist**: Design expertise and style recommendations
+ - **Inventory Manager**: Stock availability + product lookup coordination
+ - **Customer Loyalty**: Rewards and discount-related queries
+ - **Cart Manager**: Cart operations and checkout-oriented help
+ - **Product Management Specialist**: Handles product-centric workflows and coordinates lookups across services
+- **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)
+- **Factual data integration**: Uses **Azure AI Search** (vector/keyword retrieval) and **Azure Cosmos DB** (catalog/state) during workflows
+- **Real persistent agents**: Uses Azure AI Foundry Agents with saved runtime IDs (OpenAI-style `asst_*`) provisioned during deployment
+- **Zero-touch deployment**: `terraform apply` provisions infra, ingests data, creates/updates agents, wires secrets/config, and deploys the Container Apps revision
+- **UI-visible diagnostics**: Correlated `error_id` responses and optional tracebacks via `A2A_DEBUG=true` for faster troubleshooting
+- **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
## About A2A Protocol
-`A2A (Agent-to-Agent) Protocol is a standardized communication framework that enables multiple AI agents to collaborate and coordinate tasks seamlessly.`
+`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.
+
+This repo contains **two multi-agent implementations**:
+- **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.
+- **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.
> What is A2A Protocol?
-- **Agent-to-Agent Communication**: Structured messaging between multiple AI agents
-- **Task Coordination**: Agents can delegate tasks to specialized agents
-- **Event-Driven Architecture**: Real-time event handling for agent interactions
-- **Agent Discovery**: Automatic detection and registration of available agents
-- **Protocol Standardization**: Consistent API for inter-agent communication
-
-> A2A Components in This Project:
-
-- **Agent Execution Framework**: Manages multiple agent instances (`src/a2a/server/agent_execution.py`)
-- **Event System**: Handles inter-agent communication and delegation (`src/a2a/server/events/`)
-- **Task Coordination**: Advanced task delegation between specialized agents (`src/a2a/server/tasks.py`)
-- **Request Handlers**: Processes agent-to-agent requests with delegation routing (`src/a2a/server/request_handlers.py`)
-- **Coordinator Agent**: Orchestrates complex multi-agent workflows (`src/a2a/agent/coordinator.py`)
-- **Specialized Agents**: Marketing Agent, Ranker Agent with delegation patterns (`src/app/agents/`)
-- **Product Information Plugin**: Factual data source for product catalog (`src/app/agents/product_information_plugin.py`)
-- **API Endpoints**: RESTful and WebSocket APIs for enhanced agent communication (`src/a2a/api/`)
-
-> A2A vs Traditional Multi-Agent Systems:
-
-- **Standardized Protocol**: Uses consistent message formats and APIs
-- **Scalable Architecture**: Easily add new agents without modifying existing ones
-- **Real-time Communication**: WebSocket support for instant agent interactions
-- **Event-Driven**: Asynchronous event handling for better performance
-- **Infrastructure Integration**: Full Terraform deployment with monitoring and automation
+- **Agent-to-Agent Communication**: structured messaging between multiple agents
+- **Task Coordination**: agents can delegate tasks to specialized agents
+- **Event-Driven Architecture (optional)**: event handling for asynchronous workflows
+- **Agent Discovery (optional)**: enumerate/register available agents
+- **Protocol Standardization**: consistent message formats and APIs
+
+> How this repo implements multi-agent collaboration (default deployment)
+
+- **WebSocket chat interface**: `/ws` endpoint served by `src/chat_app_multi_agent.py`
+- **Intent routing**: classifies the user request and selects the primary domain (`src/services/handoff_service.py`)
+- **Handoff planning**: builds a multi-step sequence of which agents to call (`src/chat_app_multi_agent.py`)
+- **Remote agent execution**: calls Azure AI Foundry Agents using the saved `asst_*` IDs (`src/app/agents/agent_processor.py`)
+- **Factual lookups**: uses Azure AI Search and Cosmos DB during workflows (called from the app runtime)
+
+> A2A components included in this repo (optional server)
+
+- **A2A server entrypoint**: `src/a2a/main.py`
+- **A2A API routers**: `src/a2a/api/`
+- **Agent execution framework**: `src/a2a/server/agent_execution.py`
+- **Event system**: `src/a2a/server/events/`
+- **Task coordination**: `src/a2a/server/tasks.py`
+- **Request handlers**: `src/a2a/server/request_handlers.py`
+- **Coordinator**: `src/a2a/agent/coordinator.py`
+- **Agent implementations (examples)**: `src/app/agents/`
+- **Product catalog helper/plugin (if used)**: `src/app/agents/product_information_plugin.py`
+
+> [!IMPORTANT]
+> A2A vs the default deployed chat runtime
+> - **A2A server path**: event/task oriented framework under `src/a2a/` (only available if you deploy/run that server)
+> - **Default path**: `/ws` WebSocket chat + routing + sequential handoffs to real Foundry agents (no event queue required for the default flow)
## Architecture
From 34021f9d36b16db72a2d762e175a38ea2d97774f Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Mon, 2 Feb 2026 18:49:36 +0000
Subject: [PATCH 8/9] Fix Markdown syntax issues
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index 940cf31..c748b23 100644
--- a/README.md
+++ b/README.md
@@ -54,6 +54,7 @@ Last updated: 2026-02-02
`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.
This repo contains **two multi-agent implementations**:
+
- **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.
- **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.
@@ -87,6 +88,7 @@ This repo contains **two multi-agent implementations**:
> [!IMPORTANT]
> A2A vs the default deployed chat runtime
+>
> - **A2A server path**: event/task oriented framework under `src/a2a/` (only available if you deploy/run that server)
> - **Default path**: `/ws` WebSocket chat + routing + sequential handoffs to real Foundry agents (no event queue required for the default flow)
From 51895d39856412ee1581f9584e5ac47c21190a01 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Mon, 2 Feb 2026 12:51:50 -0600
Subject: [PATCH 9/9] Update examples from 'Classic UI' to 'Web App approach'
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index c748b23..cbbdf46 100644
--- a/README.md
+++ b/README.md
@@ -174,7 +174,7 @@ graph TD
- Configures delegation relationships between Product Manager and specialized agents.
- Saves the unique runtime Agent IDs (OpenAI-style `asst_*`), endpoints, and configuration to the `.env` file.
- > E.g `Classic UI`
+ > E.g `Web App approach`
@@ -196,7 +196,7 @@ graph TD
- Visit `https://.azurecontainerapps.io`.
- You should see the Zava chat interface with multi-agent routing enabled.
- > E.g `Classic UI`
+ > E.g `Web App approach`
@@ -212,7 +212,7 @@ graph TD
- Core agents: Cora, Interior Design, Inventory, Loyalty, Cart Manager
- Product Management Specialist with delegation capabilities
- > E.g `Classic UI`
+ > E.g `Web App approach`