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
+31-27Lines changed: 31 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,13 +16,27 @@ Last updated: 2026-03-13
16
16
<summary><b>List of References</b> (Click to expand)</summary>
17
17
18
18
-[Microsoft Foundry SDKs and Endpoints](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/develop/sdk-overview?view=foundry&pivots=programming-language-python)
19
-
- Microsoft Defender for Cloud (DevOps security)
19
+
- Microsoft Defender for Cloud (DevOps security):
20
20
-[Connect GitHub to Defender for Cloud](https://learn.microsoft.com/azure/defender-for-cloud/quickstart-onboard-github)
21
21
-[Connect Azure DevOps to Defender for Cloud](https://learn.microsoft.com/azure/defender-for-cloud/quickstart-onboard-devops)
22
22
-[DevOps security permissions and prerequisites](https://learn.microsoft.com/azure/defender-for-cloud/devops-support)
23
23
24
24
</details>
25
25
26
+
<details>
27
+
<summary><b>Table of Content</b> (Click to expand)</summary>
-[More Security with Microsoft Defender](#more-security-with-microsoft-defender)
32
+
-[If the Azure portal blade errors](#if-the-azure-portal-blade-errors)
33
+
-[About A2A Protocol](#about-a2a-protocol)
34
+
-[Architecture](#architecture)
35
+
-[What Happens Under the Hood](#what-happens-under-the-hood)
36
+
-[Verification](#verification)
37
+
38
+
</details>
39
+
26
40
> E.g Web App approach:
27
41
28
42
<divalign="center">
@@ -37,7 +51,7 @@ Last updated: 2026-03-13
37
51
> 2. Initialize terraform with `terraform init`. Click here to [understand more about the deployment process](./terraform-infrastructure/README.md)
38
52
> 3. Run `terraform apply`, you can also leverage `terraform apply -auto-approve`.
39
53
40
-
###Deployment Approaches (pick one)
54
+
## Deployment Approaches (pick one)
41
55
42
56
-**Container Apps (recommended default in this repo)**
43
57
- In `terraform-infrastructure/terraform.tfvars`: set `deployment_target = "containerapps"`
@@ -46,7 +60,7 @@ Last updated: 2026-03-13
46
60
-**App Service (Linux custom container)**
47
61
- In `terraform-infrastructure/terraform.tfvars`: set `deployment_target = "appservice"` and choose `app_service_sku` (e.g. `P0v3`)
48
62
- Run: `cd terraform-infrastructure` then `terraform apply -var-file terraform.tfvars`
49
-
63
+
50
64
## Key Features
51
65
52
66
-**Multi-agent chat orchestration (default runtime)**: WebSocket `/ws` chat app orchestrates multiple agents in a single conversation flow (routing + multi-step handoffs)
@@ -64,6 +78,12 @@ Last updated: 2026-03-13
64
78
-**UI-visible diagnostics**: Correlated `error_id` responses and optional tracebacks via `A2A_DEBUG=true` for faster troubleshooting
65
79
-**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
66
80
81
+
> [!NOTE]
82
+
> Visibility-first rollout (recommended for demos):
83
+
> - Onboard **GitHub connector only** first to validate the Defender dashboards/workbooks.
84
+
> - Onboard **Azure DevOps connector** only in a **sandbox org/project**.
85
+
> - Keep **PR annotations OFF** initially (no write-back to PRs) until you decide to enable them.
86
+
67
87
## More Security with Microsoft Defender
68
88
69
89
> [!IMPORTANT]
@@ -82,41 +102,26 @@ This repo supports two complementary “Defender” scenarios:
82
102
- This is the feature area that provides the “central dashboard” experience for GHAS-like findings (code scanning, dependency, secrets) across **organizations/projects** (not just individual repos).
83
103
- It can optionally add **Pull Request annotations** (a write-back action) but only when you explicitly enable/configure that feature.
84
104
85
-
### Opt out (disable Defender)
86
-
87
-
- In [terraform-infrastructure/terraform.tfvars](terraform-infrastructure/terraform.tfvars), set:
88
-
-`enable_defender_for_cloud = false`
89
-
-`enable_defender_devops_security = false`
90
-
91
-
### Visibility-first rollout (recommended for demos)
92
-
93
-
- Onboard **GitHub connector only** first to validate the Defender dashboards/workbooks.
94
-
- Onboard **Azure DevOps connector** only in a **sandbox org/project**.
95
-
- Keep **PR annotations OFF** initially (no write-back to PRs) until you decide to enable them.
105
+
> [!NOTE]
106
+
> Opt out (disable Defender): In [terraform-infrastructure/terraform.tfvars](terraform-infrastructure/terraform.tfvars), set:
107
+
> -`enable_defender_for_cloud = false`
108
+
> -`enable_defender_devops_security = false`
96
109
97
110
### If the Azure portal blade errors
98
111
99
-
If the Azure portal **Defender for Cloud → Environment settings** page fails to load with an error like:
100
-
`ECS feature flags for project 'Defenders' are not initialized (ErrorAcquiringViewModel)`
101
-
102
-
Use one of these workarounds:
112
+
> If the Azure portal **Defender for Cloud → Environment settings** page fails to load with an error like: `ECS feature flags for project 'Defenders' are not initialized (ErrorAcquiringViewModel)`. Use one of these workarounds:
103
113
104
114
-**Open the connector resource directly** (bypasses the Environment Settings blade):
105
115
- Find the connector resource IDs from Terraform outputs (look for `defender_devops_security_connector_ids`).
-**List the connector IDs via CLI** (then open them with the URL above):
111
-
-`az resource list -g <rg-name> --resource-type Microsoft.Security/securityConnectors -o table`
112
-
119
+
-**List the connector IDs via CLI** (then open them with the URL above): `az resource list -g <rg-name> --resource-type Microsoft.Security/securityConnectors -o table`
113
120
-**Browser reset**: try InPrivate/Incognito, disable extensions (ad blockers), and sign out/in.
114
121
115
122
## About A2A Protocol
116
123
117
-
`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.
118
-
119
-
This repo contains **two multi-agent implementations**:
124
+
`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**:
120
125
121
126
-**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.
122
127
-**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.
@@ -150,8 +155,7 @@ This repo contains **two multi-agent implementations**:
0 commit comments