You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-17Lines changed: 16 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ Last updated: 2026-02-02
43
43
-**Cart Manager**: Cart operations and checkout-oriented help
44
44
-**Product Management Specialist**: Handles product-centric workflows and coordinates lookups across services
45
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
46
+
-**Factual data integration (pipeline-first)**: Terraform runs pipelines that ingest the catalog into **Azure Cosmos DB**and build an**Azure AI Search**index; runtime lookups can be enabled/extended as needed
47
47
-**Real persistent agents**: Uses Azure AI Foundry Agents with saved runtime IDs (OpenAI-style `asst_*`) provisioned during deployment
48
48
-**Zero-touch deployment**: `terraform apply` provisions infra, ingests data, creates/updates agents, wires secrets/config, and deploys the Container Apps revision
49
49
-**UI-visible diagnostics**: Correlated `error_id` responses and optional tracebacks via `A2A_DEBUG=true` for faster troubleshooting
@@ -72,7 +72,7 @@ This repo contains **two multi-agent implementations**:
72
72
-**Intent routing**: classifies the user request and selects the primary domain (`src/services/handoff_service.py`)
73
73
-**Handoff planning**: builds a multi-step sequence of which agents to call (`src/chat_app_multi_agent.py`)
74
74
-**Remote agent execution**: calls Azure AI Foundry Agents using the saved `asst_*` IDs (`src/app/agents/agent_processor.py`)
75
-
-**Factual lookups**: uses Azure AI Search and Cosmos DB during workflows (called from the app runtime)
75
+
-**Factual lookups (optional)**: Terraform creates/loads Cosmos DB and Azure AI Search data; the default chat runtime can be extended to query these sources during workflows
76
76
77
77
> A2A components included in this repo (optional server)
78
78
@@ -137,27 +137,25 @@ graph TD
137
137
1.**Infrastructure Provisioning**:
138
138
- Creates Resource Group, Cosmos DB, MSFT Foundry, AI Search, Storage Account, Key Vault, and Container Registry (ACR).
139
139
- Deploys AI Models (`gpt-4o-mini`, `text-embedding-3-small`).
140
-
- Sets up A2A protocol infrastructure including event queues and monitoring.
140
+
- Sets up monitoring (Log Analytics + Application Insights). Optional A2A components (like an in-memory event queue) are part of the app codebase, not separate Azure resources.
- Initializes the Agent-to-Agent protocol server components.
148
-
- Sets up event queue system for inter-agent communication.
149
-
- Configures agent discovery and registration services.
150
-
- Deploys A2A monitoring and automation frameworks.
147
+
- Includes an optional A2A-style server implementation under `src/a2a/` (routers, coordinator, in-memory event queue, monitoring helpers).
148
+
- Note: the default deployed runtime uses `src/chat_app_multi_agent.py` (`/ws`). The A2A server endpoints are only available if you deploy/run the `src/a2a/main.py` entrypoint.
151
149
152
150
3.**Data Pipeline Execution**:
153
151
- Sets up a Python virtual environment.
154
-
- Ingests `product_catalog.csv` into Cosmos DB with A2A event notifications.
152
+
- Ingests `src/data/updated_product_catalog(in).csv` into Cosmos DB.
- Go to the [MSFT Foundry Portal](https://ai.azure.com).
@@ -221,12 +223,9 @@ graph TD
221
223
| Prompt | E.g Output |
222
224
| --- | --- |
223
225
|**General**: <br/> “Hi, who are you?” <br/> (Routed to **Cora**) | <imgwidth="1142"height="950"alt="image"src="https://github.com/user-attachments/assets/72a60b47-dbd6-48b8-bff6-48ebd92fff48" /> |
224
-
|**Inventory**: <br/> “Do you have the classic leather sofa in stock?” <br/> (Routed to **Inventory Manager**) ||
225
-
|**Design**: <br/> “What colors of green paint do you have?” <br/> (Routed to **Interior Design Specialist**) ||
226
-
|**Product Recommendations**: <br/> “Recommend modern furniture for my living room” <br/> (Routed to **Product Management Specialist**; may consult catalog/search depending on its prompt/tools) ||
227
-
|**Product Comparisons**: <br/> “Compare sectional sofas” <br/> (Routed to **Product Management Specialist**; comparison is handled within that agent) ||
228
-
|**Product Details**: <br/> “What are the specifications of product SOFA-001?” <br/> (Routed to **Product Management Specialist**; details are handled within that agent) ||
229
-
|**Multi-Agent**: <br/> “Find a sofa, then verify my loyalty points, and add it to my cart” <br/> (Coordinated across **Product Management → Customer Loyalty → Cart Manager** via the app’s multi-step routing) ||
226
+
|**Design**: <br/> “Recommend modern furniture for my living room” <br/> (Routed to **Interior Design Specialist**) | <imgwidth="1167"height="963"alt="image"src="https://github.com/user-attachments/assets/5e602f08-06ca-4866-9892-ade211a3a413" /> |
227
+
|**Product Comparisons**: <br/> “Compare sectional sofas” <br/> (Routed to **Product Management Specialist**; comparison is handled within that agent) | <imgwidth="1208"height="836"alt="image"src="https://github.com/user-attachments/assets/0649f459-e8d5-4916-a442-4cbec9b85fa6" /> |
228
+
|**Loyalty Details**: <br/> “Give me a summary of my loyalty account benefits” <br/> (Routed to **Customer Loyalty**) | <imgwidth="1211"height="955"alt="image"src="https://github.com/user-attachments/assets/45dec561-4f9a-433e-a264-09af2bff4453" /> |
0 commit comments