Customer-facing walkthrough showing how to build a pro-code agent that:
- Plugs into the customer's own agentic harness (no Foundry Agent Service / Copilot Studio)
- Calls models hosted in Azure AI Foundry via the AOAI-compatible endpoint
- Uses Microsoft Entra Agent ID for first-class agent identity
- Uses Microsoft Purview to classify and gate sensitive content on the way in and out
- Provides equivalent C# and Python samples for every concept
It's a single static page — no build step. Pick whichever fits the demo machine:
# Recommended: bundled PowerShell server (no Python / Node required).
# Opens the browser automatically.
.\serve.ps1 # http://localhost:8080
.\serve.ps1 -Port 9000 # custom port
.\serve.ps1 -NoBrowser # don't auto-open the browser
# Or, if you have them:
python -m http.server 8080
npx serve .
# Or just open the file (works in Edge/Chromium, not Firefox)
ii index.htmlThe samples are pulled into the page with
fetch(), so a local server is the safest demo path —file://is blocked by Firefox and some browser policies.
.
├── index.html # Overview / docs page
├── wizard.html # Interactive 46-step build-up wizard
├── serve.ps1 # One-command static server (PowerShell)
├── css/
│ ├── styles.css # Shared theme
│ └── wizard.css # Wizard-specific layout
├── js/
│ ├── app.js # Docs page interactions
│ ├── wizard.js # Wizard runtime (parser, render, nav)
│ └── wizard-data.js # Per-step titles + explanations
└── samples/
├── csharp/ # Stand-alone runnable samples
│ ├── BasicAgent.cs
│ ├── EntraAgentIdentity.cs
│ ├── PurviewClassification.cs
│ └── EndToEndAgent.cs
├── python/ # Stand-alone runnable samples
│ ├── basic_agent.py
│ ├── entra_agent_identity.py
│ ├── purview_classification.py
│ └── end_to_end_agent.py
└── wizard/ # Tagged sources consumed by wizard.js
├── 01_basic.{cs,py}
├── 02_entra.{cs,py}
├── 03_purview.{cs,py}
└── 04_e2e.{cs,py}
Files under
samples/wizard/are templates — they contain trailing// @N/# @Nstep tags that the wizard parses. Don't run them directly; the runnable equivalents live undersamples/csharp/andsamples/python/.
Edit four constants and you're talking to a real environment:
| Where | Replace | With |
|---|---|---|
| Sample files (both languages) | https://contoso-foundry.services.ai.azure.com/… |
Customer's Foundry project endpoint |
| Sample files (both languages) | gpt-4o-mini |
The customer's deployment name |
entra_agent_identity.* |
contoso.onmicrosoft.com |
Customer's tenant domain |
entra_agent_identity.* |
00000000-0000-0000-0000-000000000000 |
Object ID of the human / team that owns the agent |
The walkthrough is wired against models deployed in the
admin@contoso.com tenant. Sign in with that account when you need to
exercise the live calls.