How to get the most out of this demo set, whether you have 10 minutes or a full hour.
- Run through every demo you plan to show, start to finish
- Verify
az loginworks and your subscription is active - Confirm the model deployment is responding (run Demo 0 once)
- If showing Demo 5, check that the vector store creates without errors
- Close unrelated browser tabs, notifications, and chat apps
- Open one cmd window at the repo root (
foundry-agent-lab) - Run
az login— do NOT wait for the audience to watch this - Have each demo folder's
DEMO-SCRIPT.mdopen in a side tab for reference - Set terminal font size large enough for the back row (16 pt+)
- Optional: open the source files you plan to walk through in VS Code
Always present in numeric order. Each demo builds on vocabulary and concepts introduced by the previous one.
| Demo | Include when… | Skip when… |
|---|---|---|
| 0 — Hello | Always. Sets the mental model. | Never skip this. |
| 1 — Tools | Always. Function calling is the #1 enterprise use case. | Never skip this. |
| 2 — Desktop | You want to show the agent isn't tied to a terminal | Short on time and Demo 4 covers the UI point |
| 3 — Web Search | You want to show built-in tools with zero client code | Audience already understands built-in tools |
| 4 — Code | You want a "wow" moment with live code + web UI | Audience is non-technical and won't appreciate code |
| 5 — RAG | You want to show enterprise grounding / no hallucination | You have no time left (this is the longest setup) |
| 6 — MCP | You want to show open ecosystem / human-in-the-loop approval | No MCP connection configured or audience is non-technical |
| 7 — Toolbox | You want to show centralized governance / curated tool subsets | No toolbox configured or audience doesn't need enterprise story |
| 8 — Hosted | You want to show self-hosting / bring-your-own-server / deployment to Foundry containers | Audience doesn't need to understand hosting options |
| Time budget | Demos | Flow |
|---|---|---|
| 10 min | 0 → 1 | Core concepts: agent + tool calling |
| 20 min | 0 → 1 → 5 | Core + enterprise RAG story |
| 30 min | 0 → 1 → 3 → 5 | Built-in vs function tools + RAG |
| 45 min | 0 → 1 → 3 → 5 → 6 | Tools progression: custom → built-in → ecosystem |
| 60 min | 0 → 1 → 2 → 3 → 4 → 5 | Full arc with all UX modes |
| 75 min | 0 → 1 → 2 → 3 → 4 → 5 → 6 | Everything including MCP |
| 90 min | 0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 | Full arc + enterprise toolbox governance |
| 105 min | 0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 | Full arc + self-hosted deployment |
- Show code first, then run. Audiences retain more when they see the 10 lines of code before the magic happens.
- Pause after the first agent response. Let it land. Then explain what happened behind the scenes.
- Use the suggested prompts in each DEMO-SCRIPT.md. They are sequenced to build on each other and highlight specific capabilities.
- Ask "what should I ask it?" mid-demo to involve the audience — but have a backup prompt ready in case of silence.
- Point out what didn't happen as much as what did:
- Demo 1: "The tool did NOT fire for the Hamlet question."
- Demo 5: "It refused to answer the stock price question — it's grounded."
- Use the transition between demos to reinforce the progression:
- 0→1: "Same agent, but now it can DO things."
- 1→2: "Same agent, different window."
- 2→3: "Now the tool runs on the SERVER, not our code."
- 3→4: "Server-side tool again, but now it writes and runs code."
- 4→5: "Instead of the web, it searches YOUR documents."
- 5→6: "Now instead of Azure's tools, we connect to ANY tool server via MCP."
- 6→7: "Same MCP tools, but now curated and governed centrally in a Toolbox."
- 7→8: "Now instead of Foundry running our agent, WE host it — same protocol, our infrastructure."
- For developers: show
create_agent.pyandchat.pyside by side. Highlight that each demo adds only a few lines. - For decision-makers: minimize code, maximize the chat experience. Focus on what the agent can do, not how it's wired.
- For mixed audiences: show code briefly ("here's the 10 lines"), then spend time on the live interaction.
Append log to any demo command to capture the full session:
0-hello-demo log
1-tools-demo logEach creates a chat-log.txt inside the demo folder. Use these for:
- Pasting into slide decks as "live demo" screenshots
- Post-demo write-ups and documentation
- Sharing transcripts with attendees who missed the session
Things will go wrong in live demos. Here's how to recover fast.
| Problem | Fix |
|---|---|
| Agent already exists (name conflict) | <folder>\reset.bat then re-run |
| Azure auth expired mid-demo | az login in the same terminal, re-run |
| Weather API slow (Demo 1) | Say "real APIs have real latency" — wait 10 sec |
| Gradio port in use (Demo 4) | Ctrl+C, wait 5 sec, re-run |
| Vector store creation slow (Demo 5) | Normal on first run — takes 15-30 sec |
| Python error on launch | Check .env exists in that demo folder |
| Hosted agent port 8088 in use | Kill the previous python main.py process |
| Audience asks about cost | "Model-router picks the cheapest capable model. These demos cost fractions of a cent per run." |
If everything breaks, reset all demos:
for %d in (hello-demo tools-demo desktop-demo websearch-demo code-demo rag-demo mcp-demo toolbox-demo) do %d\reset.batThen start fresh from Demo 0.
Regardless of which demos you show, drive home these points:
- Agents are simple — each one is ~20 lines of Python, not a framework
- Tools make agents useful — function calling is how agents interact with the real world
- Built-in tools save work — web search, code interpreter, and file search are one line each
- The UX is your choice — same agent works in terminal, desktop, or web
- Grounding prevents hallucination — RAG lets you trust the agent's answers
- MCP opens the ecosystem — connect to any tool server using an open standard, with human-in-the-loop approval
- Toolbox enables governance — platform teams curate which tools agents get, versioned and centrally managed
- Self-hosting gives control — bring your own server, same protocol, deploy anywhere (your infra or Foundry containers)
- Azure handles the hard parts — conversation memory, tool execution, vector search are all server-side