Technical session · 90 minutes · October 2026

Microsoft Foundry

Build, ship and govern AI agents — from model to production

Models · Foundry Agent Service · Microsoft Agent Framework · Observability · AI Gateway · Bicep + GitHub Actions
Live demo: Foundry Guide — github.com/frkim/foundry-demo
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

About this session

Your speaker

[Speaker name] · [Role, team]
[One line about your Azure AI / Foundry experience]

[@handle] · [linkedin.com/in/…] · [email]

Who this is for

  • Developers and architects shipping generative AI on Azure
  • Platform teams who must govern models, agents and cost
  • Anyone migrating from Azure OpenAI, hubs or the Assistants API

Ground rules

  • Foundry (new) only: Foundry resource + projects
  • Status pills on every feature: GA Preview Retiring
  • Keyless everywhere — no API keys on screen
  • Questions welcome any time; deep dives at the end
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Agenda — 90 minutes

1
Opening & why Foundry · the enterprise AI problem
10'
2
Platform tour · resource, projects, models, portal
15'
3
Agents · Agent Service, tools, MCP, A2A, memory
15'
4
DEMO 1 · Foundry Guide agent
15'
5
Observe, evaluate, govern · safety, Control Plane
10'
6
AI Gateway + DEMO 2 · Azure API Management
10'
7
Ship it · Bicep, GitHub Actions, keyless
5'
8
Roadmap, resources, Q&A
10'
Three live demos, one public repo, zero API keys. DEMO 3 — ten short capability demos (Foundry IQ, MCP/A2A, model router, guardrails, skills, durable agents, observability, evaluation, LangGraph, human in the loop) — runs as an extended track, or pick two or three. Everything is reproducible from github.com/frkim/foundry-demo.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

The enterprise AI problem

Prototypes are easy. Running hundreds of models and agents safely, at scale, is not.

Sprawl

Separate resources per model, per team, per region. Keys in config files. No single inventory of what is deployed or who calls it.

Agents act

Agents call tools, APIs and other agents. That needs identity, approvals, guardrails on tool calls — not just on prompts.

Proof, not vibes

Leaders ask "is it good, is it safe, what does it cost?" — you need traces, evaluations and red-teaming evidence.

Choice

The best model changes every quarter. Switching must be a deployment change, not a rewrite.

Cost & quota

Token budgets per team, chargeback, failover across regions when capacity runs out.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

What Microsoft Foundry is

“A managed platform for building, evaluating, and deploying generative AI applications with foundation models.” — Microsoft Learn glossary

BEFOREMICROSOFT FOUNDRY (NEW) Azure AI Studio → Azure AI Foundry Azure AI Services Hub + separate Azure OpenAI /AI Services resources Assistants API (Agents v0.5 / v1) Azure AI User / Owner /Account Owner / Project Manager Microsoft FoundryFoundry ToolsFoundry resource + Foundry projectsResponses API (Agents v2)Foundry User / Owner / Account Owner / Project Manager one platform for models, agents, tools, evaluation and governance Speech, Language, Vision, Document Intelligence, Content Safety, Search… Microsoft.CognitiveServices/accounts · kind AIServices · child projects Foundry Agent Service runtime, wire-compatible with OpenAI agents renamed roles — role IDs and core permissions unchanged
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Foundry at scale — the public numbers

Each figure is tied to the moment Microsoft published it — don't mix eras.

70K+
customers using the platform
Build 2025 · pre-rename
100 T
tokens processed in the prior quarter
Build 2025 · pre-rename
10K+
organizations on Agent Service at its first GA
Build 2025
10K+
models from Microsoft, OpenAI, Anthropic, Meta and others
Microsoft Learn · live

1,400+ enterprise connectors

Data-source connectors announced for Agent Service grounding (Build 2025).

From ~1,800 to 10,000+ models

The catalog grew from ~1,800 models (Jan 2025) to 11,000+ in the Ignite 2025 ecosystem message.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

02

Platform tour

Foundry resource and projects, the model catalog, deployment types, Foundry Tools and the new portal.

15 min · 00:10 → 00:25

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

One resource, many projects

RESOURCE GROUP · rg-foundrydemo-dev-swc · Sweden Central Foundry resource Microsoft.CognitiveServices/accounts · kind AIServices · allowProjectManagement: true SHARED BY ALL PROJECTS Model deploymentsgpt-5.4-mini · gpt-5.4-nanoGlobalStandard Security & networkingEntra ID · disableLocalAuthpublic or private endpoints GovernanceRBAC · guardrails · quotapolicies at the top level ConnectionsApp Insights · Search · MCPreusable by projects PROJECTS · accounts/projects — development boundary proj-foundrydemo-dev this demo Another team's project isolated access, data & cost Agents Conversations Evaluations Traces Files Vector stores Connections Agents Evaluations Data

Project endpoint: https://<resource-name>.services.ai.azure.com/api/projects/<project-name>

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Foundry (new) vs. classic

Foundry project (new) Hub-based project (classic)
Parent resource Foundry resource (accounts/projects) Foundry hub + separate resources
Agent Service GA on the Responses API Preview, Assistants-API based
Portal ai.azure.com — Foundry (new) Foundry (classic) portal only
Foundry API & SDK Full azure-ai-projects 2.x surface Partial
Prompt flow, managed compute (Hugging Face) Not available Hub only
New agent and model capabilities Yes — only here No
Migration moves model deployments, data files, fine-tuned models and vector stores. It does not move preview agent state (threads, messages, files), open-source model deployments or hub project access.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Endpoints and SDK surface

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project = AIProjectClient(
    endpoint="https://aif-foundrydemo-dev-xxxxx"
             ".services.ai.azure.com"
             "/api/projects/proj-foundrydemo-dev",
    credential=DefaultAzureCredential(),
)

agents = project.agents              # create_version, list…
openai = project.get_openai_client() # Responses API, v1

One endpoint per project

The project endpoint is the only URL the app needs — agents, conversations, evaluations and model calls hang off it.

One OpenAI client

get_openai_client() returns an authenticated OpenAI client on the v1 route — no api-version juggling.

Keyless by default

DefaultAzureCredential: your az login locally, managed identity in Azure.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Model catalog highlights

OpenAI

GPT-5.x generations incl. gpt-5.4, -mini, -nano, -pro; GPT-5 family; gpt-oss; GPT-4.1; o-series; GPT-4o.

Anthropic Claude

Opus, Sonnet and Haiku families GA via Azure Marketplace — Anthropic-hosted or Azure-hosted.

Open-weight

DeepSeek V3.2 / V4, Meta Llama 4 Maverick and 3.3-70B, Cohere Command-A and rerank v4, Mistral Large 3 Preview.

Model Router

One deployment that routes each request across models from several providers — pick quality vs. cost per prompt.

This demo

gpt-5.4-mini powers the agent; gpt-5.4-nano is the fast model for side-by-side comparison.

The catalog changes weekly — always confirm model names, versions and regions at ai.azure.com before you commit to one.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Deployment types — choose by residency, load and latency

Requirement Recommended deployment type
Default: newest models, lowest price, broadest regions Global Standard (GlobalStandard)
Reserved, predictable throughput Global Provisioned
Keep processing in the EU / US / APAC data zone Data Zone Standard (DataZoneStandard) or Data Zone Provisioned
Keep processing in one Azure geography Standard or Regional Provisioned (where supported)
Large asynchronous jobs, ~50% cheaper, 24 h target Global Batch (GlobalBatch) or Data Zone Batch
Evaluate a fine-tuned model (temporary, no SLA) Developer
Pay-per-token types suit bursty traffic; provisioned types give low latency variance at consistent high volume. The demo uses Global Standard in Sweden Central.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Foundry Tools — the services formerly known as Azure AI Services

Speech

Speech-to-text, text-to-speech and speech translation.

Language

Language understanding and Translator.

Documents

Document Intelligence and Content Understanding.

Vision

Vision and Custom Vision.

Content Safety

Harm categories, Prompt Shields, blocklists — the engine behind Foundry guardrails.

Same resource

Reached through the same AIServices account, the same Entra auth, the same RBAC.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

The new Foundry portal — ai.azure.com

Portal capability (new Foundry) Status
Agents (core) GA
Publish to Microsoft 365 Copilot / Teams GA
Guardrails for models GA
Guardrails for agents Preview
Monitoring / observability Preview
AI Gateway (APIM) pane Preview
Voice Live Preview

Foundry projects only

Hubs, standalone Azure OpenAI resources and classic v1 agents stay in the classic portal.

Build → Operate

Model playgrounds, agent builder, evaluations, then Operate for compliance, AI Gateway and fleet views.

Tip

Use the portal to explore; commit agents and infra as code for anything that ships.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Developer experience — VS Code, GitHub Copilot, azd

Foundry Toolkit for VS Code

The evolution of AI Toolkit: browse models, build agents, run playgrounds and traces from the editor. Install via aka.ms/foundrytk.

Microsoft Foundry skill

Reusable Copilot guidance for model deployment, prompt and hosted agents, A2A, evaluation and agent optimization.

Foundry DevPack

Foundry Toolkit + azd / azd ai + Foundry Canvas + the Foundry skill, bundled.

/plugin marketplace add microsoft/azure-skills
/plugin install azure@azure-skills      # also wires Azure MCP + Foundry MCP servers

Works with GitHub Copilot in VS Code and in the Copilot CLI.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

03

Agents

Foundry Agent Service, the tool catalog, MCP and A2A, knowledge and memory, Microsoft Agent Framework — and the code.

15 min · 00:25 → 00:40

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Foundry Agent Service — generally available on the Responses API

GA
next-gen Agent Service, Responses API-based runtime
March 16, 2026
v1
wire-compatible with OpenAI agents — one OpenAI client
Responses API
2
GA agent types: prompt agents and hosted agents
October 2026
2027
classic Assistants-API agents retire on March 31
Deprecated

Versioned agents

Every create_version() call produces an immutable agent version you can evaluate, compare and roll back.

Conversations

Server-side conversation state — no thread plumbing, just pass a conversation id.

Evaluations GA

Evaluations reached GA with the same March 2026 release.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Agent types — pick the right level of control

Prompt agents GA

Instructions + model + tools, fully managed by Foundry — no infrastructure. Defined with PromptAgentDefinition. Voice-based prompt agents via Voice Live are GA too.

Hosted agents GA

Bring your own code as a managed container: Microsoft Agent Framework, LangGraph, OpenAI Agents SDK, Anthropic Agent SDK, GitHub Copilot SDK.

Workflows Retiring

The visual / YAML multi-agent workflows never left preview and retire on December 1, 2026. Build new orchestrations with Agent Framework.

Connected agents (classic agent.as_tool) are deprecated — use the A2A tool or Agent Framework orchestration instead.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Anatomy of a Foundry agent

Guardrails · user input · tool call · tool response Your app OpenAI client get_openai_client() Responses API v1 route · no api-versionconversationsagent_referencestreaming · tool events Prompt agent foundry-guide · v3 Instructions Model deployment · gpt-5.4-mini Tools Knowledge · Foundry IQ Memory (preview) MCP · Microsoft Learn, your servers Code Interpreter · sandboxed Python File search · Azure AI Search Web search · Grounding with Bing OpenAPI · Azure Functions A2A · other agents Observability · OpenTelemetry traces → Application Insights · evaluations · Foundry Control Plane
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Tool catalog

Generally available
Function calling · custom tools GA
Code interpreter · file search GA
Web search / Grounding with Bing GA
Azure AI Search · knowledge retrieval GA
OpenAPI · Azure Functions GA
MCP tools (remote + custom) GA
A2A tool (protocol v1.0, outbound) GA
Toolbox GA
In preview
SharePoint · Microsoft Fabric connectors Preview
Browser automation · computer use Preview
Image generation Preview
Skills (platform catalog) Preview
Deep research Preview
Incoming A2A endpoint Preview
Demo 1 uses only GA tools: MCP (Microsoft Learn) and Code Interpreter.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

MCP, A2A and Toolbox — open protocols, governed centrally

MCP tools GA

Point an agent at any remote MCP server — server_label, server_url, require_approval, optional project connection for auth.

Demo: https://learn.microsoft.com/api/mcp

A2A GA

Protocol v1.0: a Foundry agent calls another agent, anywhere. Exposing a Foundry agent as an A2A endpoint is Preview.

External A2A agents can be registered in Foundry Control Plane.

Toolbox GA

Define a curated set of tools once and expose them through a single MCP-compatible endpoint, shared across agents.

Skills (versioned SKILL.md) ride on Toolbox — Preview

Approval matters: require_approval="always" returns an mcp_approval_request your app must answer — use it for any tool with side effects.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Foundry IQ — the knowledge layer for agents

Agentic retrieval over Azure AI Search, exposed to agents through an MCP endpoint. Core GA since Build 2026.

Plan

The model decomposes the question into focused sub-queries.

Search

Sub-queries run in parallel as hybrid (keyword + vector) searches.

Rerank

Results are reranked so only the most relevant passages remain.

Synthesize

A grounded answer with citations back to the sources.

Sources

Unifies Work IQ, Fabric IQ, Azure SQL, File Search and MCP sources.

Still in preview

Fabric IQ, Work IQ and the Serverless tier; portal UI for agentic retrieval.

Wiring

Attach as an MCPTool pointing at the knowledge base MCP endpoint.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Agent memory Preview

User profile

Stable facts and preferences about the user.

Chat summary

Condensed context from past conversations.

Procedural

How-to knowledge the agent learns from completed tasks.

Extract

Pull candidate memories from conversations.

Consolidate

LLM-based deduplication and merge.

Retrieve

Inject relevant memories at run time.

+7–14 pts
absolute success-rate gain on Tau-bench from procedural memory, at near-baseline cost
Build 2026 announcement
Memory and the Memory Store API are preview. Treat stored memories as personal data: retention, deletion and consent.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Microsoft Agent Framework 1.x — code-first agents

1.0
production-ready, stable APIs, long-term support
April 3, 2026
1.20
latest agent-framework Python release
October 2026
2
GA languages: Python and .NET (Microsoft.Agents.AI)
Go in preview
SK+AG
successor to Semantic Kernel and AutoGen
open source

Orchestration

Code-first multi-agent orchestration, including Magentic-One — stable since Build 2026 and the replacement for retiring Foundry workflows.

Interop built in

MCP and A2A out of the box; wraps Foundry prompt agents or runs as a Foundry hosted agent.

Agent Harness GA

Released July 2026 — includes Skills as a framework feature.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Code — create a versioned prompt agent

from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import MCPTool, PromptAgentDefinition
from azure.identity import DefaultAzureCredential

project = AIProjectClient(endpoint=PROJECT_ENDPOINT, credential=DefaultAzureCredential())

learn = MCPTool(server_label="microsoft_learn",
                server_url="https://learn.microsoft.com/api/mcp",
                require_approval="never")

agent = project.agents.create_version(
    agent_name="foundry-guide",
    definition=PromptAgentDefinition(
        model="gpt-5.4-mini", instructions=INSTRUCTIONS, tools=[learn]),
)

azure-ai-projects 2.x · the demo also adds CodeInterpreterTool and runs this idempotently at startup — a failure never crashes the app, /health/ready reports it.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Code — invoke the agent through the Responses API

openai = project.get_openai_client()            # Responses API, v1 route
conversation = openai.conversations.create()

response = openai.responses.create(
    conversation=conversation.id,
    input="How do I enable tracing for a Foundry agent?",
    extra_body={"agent_reference": {"name": "foundry-guide",
                                    "type": "agent_reference"}},
)
print(response.output_text)

for item in response.output:                    # evidence of tool use
    if item.type == "mcp_call":
        print(item.server_label, item.name)

Same OpenAI client for agents and raw model calls — responses.create(model="gpt-5.4-nano", …) powers the demo's model compare.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Reach users where they work

Publish to Microsoft 365 Copilot and Teams GA

  • Foundry portal → Publish → Teams and Microsoft Copilot
  • Auto-generates the Teams app manifest and submits it to the catalog
  • Auto-creates an Azure Bot Service resource
  • Scope: individual (BotServiceRbac) or organization (BotServiceTenant, admin approval)
  • Requires the Foundry User role

Or your own front end

Any app that can call the Responses API — like the Vue + FastAPI demo — can host the same agent version.

Or other agents

Through A2A, your agent becomes a building block for agents on other platforms.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

04

DEMO 1 — Foundry Guide

A keyless FastAPI + Vue app on Azure Container Apps, talking to a Foundry prompt agent with MCP and Code Interpreter.

15 min · 00:40 → 00:55

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Foundry Guide — what you'll see

Agent chat

Ask about Foundry; the agent grounds answers in Microsoft Learn via MCP. Tool-call chips show every MCP or Code Interpreter call.

Model compare

The same prompt on gpt-5.4-mini and gpt-5.4-nano in parallel — output, latency and tokens side by side.

Run history

Last 200 runs: time, kind, model or agent, latency, tokens, status — search, sort, filter.

About

Live /api/info: endpoint host, models, agent name and version, app version, region.

0
API keys — user-assigned managed identity end to end
2
GA tools on the agent: MCP + Code Interpreter
1
container: FastAPI API + Vue / Vuetify SPA, port 8000
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Demo 1 architecture

USER CONTAINER APPS · France Central FOUNDRY · Sweden Central TOOLS Browser Vue 3 + Vuetify SPA Container Registry image · AcrPull ca-foundrydemo-dev FastAPI · POST /api/agent/chat POST /api/models/compare GET /api/history · /api/info static SPA · /health/live · /health/ready id-foundrydemo-dev user-assigned MI · DefaultAzureCredential Project · proj-foundrydemo-dev Agent · foundry-guide prompt agent on gpt-5.4-mini instructions · MCP · Code Interpreter Responses API · conversations gpt-5.4-nano · fast model for compare Deployments: GlobalStandard · Sweden Central disableLocalAuth: true · Foundry User role Microsoft Learn MCP learn.microsoft.com/api/mcp Code Interpreter managed Python sandbox Application Insights + Log Analytics azure-monitor-opentelemetry · OpenAI / agent spans · structured JSON logs 1 2 3 4
1HTTPS to the SPA + API2Entra token from the managed identity — no keys3agent calls MCP / Code Interpreter4OpenTelemetry to App Insights
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Demo 1 — script

  • About tab — endpoint, region, agent name + version, app version
  • Agent chat — suggested prompt; point at the microsoft_learn MCP chip
  • Follow-up in the same conversation; ask for a quick calculation → Code Interpreter
  • Model compare — same prompt on mini vs. nano; read latency + tokens
  • Run history — filter by kind, sort by latency
  • Foundry portal — agent versions, then traces in Application Insights

What to point out

  • No key in env vars — only AZURE_CLIENT_ID
  • Agent is code-defined and versioned
  • Grounded answers carry Learn links
  • Same client for agents and raw models
Fallback: docs/video/foundry-demo.mp4 and docs/session/demo-runbook.md.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Under the hood — one chat turn

UI

POST /api/agent/chat with the message and an optional conversation id.

Identity

The managed identity selected by AZURE_CLIENT_ID gets an Entra token.

Conversation

First turn creates a Foundry conversation; later turns reuse its id.

Agent run

responses.create() with an agent_reference — the agent picks its tools.

Result

Text, conversation id, tool calls, token usage and latency — plus a trace.

Readiness, not just liveness

/health/ready returns 503 until configuration is present and the agent version exists — Container Apps won't route traffic before that.

Fail soft

Agent creation runs at startup but never crashes the app; errors surface in readiness and logs.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

05

Observe, evaluate, govern

Tracing, evaluations, red teaming, guardrails, Foundry Control Plane — and the Entra, Defender and Purview integrations.

10 min · 00:55 → 01:05

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Observability — traces you can actually use

Tracing Preview

  • OpenTelemetry-based, off by default
  • Server-side traces auto-logged once Application Insights is connected — 90-day retention
  • Client-side: OTel + Azure Monitor exporter, or OTLP to Datadog, Grafana Tempo, Jaeger, Honeycomb

Agent monitoring dashboard Preview

Token usage, latency, success rate, evaluation scores and red-team results per agent.

from azure.monitor.opentelemetry import (
    configure_azure_monitor,
)

# reads APPLICATIONINSIGHTS_CONNECTION_STRING
configure_azure_monitor()
# + OpenAI / agent instrumentation:
#   one span per model call, agent run
#   and tool call
In the demo, Bicep creates a project connection to Application Insights so the portal shows the same traces.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Evaluations and AI red teaming

Evaluations GA

Quality and safety evaluators on datasets or agent runs — compare agent versions before you promote one.

Continuous evaluation Preview

Recurring evaluations on live traffic, surfaced in the monitoring dashboard.

AI Red Teaming Agent

Built on open-source PyRIT + Foundry risk and safety evaluations; reports Attack Success Rate.

Agentic risk categories

Prohibited actions, sensitive-data leakage, task adherence — cloud red teaming in East US 2, France Central, Sweden Central, Switzerland West, US North Central.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Guardrails and controls

Intervention point / control Status
Guardrails framework · user input GA
Tool call Preview
Tool response Preview
Prompt Shields (jailbreak / prompt injection) GA
Task adherence · custom filtering GA
Spotlighting (tag lower-trust content) Preview
Guided guardrail set-up wizard Preview

Why tool guardrails matter

With MCP and web tools, the attack surface is the tool response — an injected instruction in a web page or a document.

Defense in depth

Guardrails in Foundry + llm-content-safety at the gateway + approval for side-effecting tools.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Foundry Control Plane and enterprise governance

Foundry Control Plane

Central governance surface for compliance and security settings — and registration of external A2A agents.

Microsoft Entra Agent ID

Identities for agents: blueprints, OAuth2 / MCP / A2A, adaptive access, lifecycle governance, audit — also for agents outside Azure.

Defender for Cloud Preview

Threat protection for AI agents with OWASP-aligned LLM and agentic detections (Feb 2026).

Microsoft Purview

Toggle under Operate → Compliance Preview: Audit, DSPM for AI, DLM, eDiscovery, insider risk.

Licensing note: since July 1, 2026, Defender agent discovery and posture require a Microsoft Agent 365 license; deeper cross-Microsoft 365 agent governance in Entra also needs Agent 365 (included in M365 E7, add-on elsewhere).
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

D3

DEMO 3 — Foundry capabilities, live

Ten short demos around the agent: knowledge, connectivity, routing, safety, reuse, autonomy, observability, quality, open frameworks and human control.

Extended track · ≈ 45 min · or pick 2–3 in the 90-minute format

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Demo 3 — the menu

3.1 Foundry IQ ★

Knowledge base, agentic retrieval, citations · 6'

3.2 MCP + A2A

Tools and agents over open protocols · 4'

3.3 Model router

One deployment, best-fit model per prompt · 3'

3.4 Guardrails

Jailbreak and indirect prompt injection · 4'

3.5 Skills + Toolbox

Curate tools once, reuse everywhere · 4'

3.7 Observability

Traces, dashboard, continuous evaluation · 4'

3.8 Evaluate + optimize

Evaluators, red teaming, optimizers · 5'

3.9 LangGraph · Deep Agents · LangSmith

Bring your framework, keep Foundry's identity, tracing and hosting · 4'

3.10 Human in the loop

Approvals that pause durably and resume later · 4'

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.1 · Foundry IQ — knowledge for every agent

Knowledge bases GA · agent connection, most source types and portal flow Preview

Index once

Knowledge base zava-kb on Azure AI Search, fed by three Zava documents.

Retrieve agentically

Plan sub-queries, search them in parallel, rerank.

Answer with citations

One MCP tool call to the knowledge base — shared by every agent.

Ask: "Plus member, chair arrived damaged, headphones bought 20 days ago — options?" Two documents, several sub-queries, one grounded answer.
MCPTool(server_label="zava_kb",
        server_url=f"{SEARCH}/knowledgebases/zava-kb/mcp"
                   "?api-version=2026-08-01-preview",
        allowed_tools=["knowledge_base_retrieve"],
        require_approval="never",
        project_connection_id="<kb-connection>")
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.2 · Connectivity — MCP for tools, A2A for agents

MCP tool GA

Any remote MCP server; catalog in Build → Tools. Credentials live in project connections.

A2A tool v1.0 GA

demo-a2a-caller delegates to demo-learn-expert through an A2A connection.

Incoming A2A Preview

Expose an agent with an agent card — SDK or REST only today.

project.agents.update_details(agent_name="demo-learn-expert",
    agent_endpoint=AgentEndpointConfig(protocol_configuration=ProtocolConfiguration(
        responses=ResponsesProtocolConfiguration(), a2a=A2AProtocolConfiguration())),
    agent_card=AgentCard(version="1.0", skills=[AgentCardSkill(id="foundry-qa", name="Foundry Q&A")]))
caller_tool = A2ATool(a2a_version=A2AProtocolVersion.V1_0, project_connection_id=conn.id)
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.3 · Model router — one deployment, best-fit model

for prompt in ["Say hello in French.",
               "Resource vs project in 2 sentences.",
               "Reason step by step: which of 3 agents "
               "deserves a reasoning model?"]:
    r = openai.responses.create(model="model-router",
                                input=prompt)
    print(r.model, r.usage.total_tokens)

Model router GA

Version 2025-11-18; pool of OpenAI, Anthropic, xAI, DeepSeek and Meta models; Global Standard in Sweden Central.

Balanced · Quality · Cost

Pick the mode and the model subset; failover is built in. response.model shows the pick.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.4 · Guardrails and prompt injection

Control in demo-guardrail Intervention point Status
Jailbreak (Prompt Shields) User input GA
Indirect attack Tool response Preview
Task adherence Tool call Preview
The poisoned zava-supplier-notes.md hides an instruction in an HTML comment — retrieved by the knowledge base, caught at the tool response.

What you'll see

  • "Yendys" jailbreak → blocked at user input
  • Supplier question → injected text never reaches the user
  • Code: 400 content_filter

Infrastructure as code

accounts/raiPolicies + raiPolicyName on a deployment.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.5 · Skills and reusable tools — Toolbox

Toolbox GA

Curated, versioned tools behind one MCP-compatible endpoint — any framework can consume it.

Skills Preview

SKILL.md (agentskills.io) — the Demo 1 cost calculation as a reusable skill.

project.beta.skills.create(name="foundry-cost-estimate",
    inline_content=SkillInlineContent(
        description="Token cost estimates; table + chart.",
        instructions=skill_md))
project.toolboxes.create_version(
    name="demo-foundry-toolbox",
    tools=[MCPToolboxTool(server_label="microsoft_learn",
               server_url="https://learn.microsoft.com/api/mcp"),
           CodeInterpreterToolboxTool()],
    skills=[ToolboxSkillReference(name="foundry-cost-estimate")])
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.6 · Durable and autonomous agents

Background runs GA

background=True → queued → poll responses.retrieve.

Hosted agents GA

Your code in a per-session sandbox with its own Entra identity — azd deploy.

Routines

Schedule, timer, GitHub issue or custom event triggers an agent run.

Durable Task Preview

Checkpointed Agent Framework sessions on Durable Task Scheduler.

project.beta.routines.create_or_update("demo-daily-foundry-digest", enabled=True,
    triggers={"weekdays-7am": ScheduleRoutineTrigger(cron_expression="0 7 * * 1-5",
                                                     time_zone="Europe/Paris")},
    action=InvokeAgentResponsesApiRoutineAction(agent_name="demo-learn-expert",
        input="List this week's three most important Microsoft Foundry changes."))
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.7 · Continuous observability

Traces GA

Prompt and hosted agents: invoke_agent → execute_tool → model spans.

Monitor + alerts Preview

Tokens, latency, success rate, evaluation and red-team results per agent.

Continuous evaluation Preview

An evaluation rule scores 25 % of live responses.

dependencies
| where timestamp > ago(24h)
| extend op = tostring(
    customDimensions["gen_ai.operation.name"])
| where op in ("invoke_agent", "chat",
               "execute_tool")
| summarize calls = count(),
    p95_ms = percentile(duration, 95),
    failures = countif(success == false)
    by op
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.8 · Evaluation and optimization

Evaluate GA

builtin.task_adherence, intent_resolution, tool_call_accuracy on ten queries against foundry-guide.

Compare

Two agent versions, same dataset, side by side — promote on evidence.

Red-team

AI Red Teaming Agent (PyRIT): Attack Success Rate before first exposure.

Optimize

Prompt Optimizer; Agent Optimizer Limited preview proposes candidates — you promote.

run = openai.evals.runs.create(eval_id=ev.id, name="foundry-guide-latest", data_source={
    "type": "azure_ai_target_completions",
    "source": {"type": "file_id", "id": dataset.id},
    "input_messages": {"type": "template", "template": [{"type": "message", "role": "user",
        "content": {"type": "input_text", "text": "{{item.query}}"}}]},
    "target": {"type": "azure_ai_agent", "name": "foundry-guide"}})
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.9 · LangGraph, Deep Agents and LangSmith on Foundry

langchain-azure-ai

Microsoft's integration: keyless Foundry models (azure_ai:), Toolbox tools and skills, tracing, hosting.

Host it

ResponsesHostServer(graph).run() → azd deploy → Foundry hosted agent.

LangSmith

Keep it alongside; Azure Marketplace offer.

tracer = AzureAIOpenTelemetryTracer(
    project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
    name="demo-langgraph")
agent = create_agent(model="azure_ai:gpt-5.4-mini",
                     system_prompt="Concise Azure architect.")
agent.invoke({"messages": "Why an AI gateway?"},
             config={"callbacks": [tracer]})

deep = create_deep_agent(model="azure_ai:gpt-5.4-mini",
                         system_prompt="Plan, take notes, answer.")
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

3.10 · Human in the loop — durable approvals

Platform GA

MCP require_approval="always" → mcp_approval_request → answer with mcp_approval_response.

Framework GA

Agent Framework @tool(approval_mode="always_require"); workflow ctx.request_info(...).

Durable Preview

Pending requests live in checkpoints; on Durable Task Scheduler the wait costs zero compute.

@tool(approval_mode="always_require")
def issue_refund(order_id: str, amount_eur: float) -> str:
    """Issue a refund to the customer."""
result = await refund_agent.run("Refund €49 on order Z-1042, the chair arrived broken.")
for request in result.user_input_requests:   # nothing ran yet — a human decides
    print(request.function_call.name, request.function_call.arguments)
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

06

AI Gateway with Azure API Management

Token budgets, load balancing, content safety, semantic caching and MCP governance — in front of every Foundry endpoint.

10 min · 01:05 → 01:15 · includes DEMO 2

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Why put a gateway in front of Foundry?

Token budgets

Tokens-per-minute and monthly quotas per team, product or subscription key — 429 on rate, 403 on quota.

Resilience

Backend pools across regions and projects with circuit breakers that honor Retry-After.

Visibility & chargeback

Prompt, completion and total token metrics with custom dimensions in Application Insights.

Safety at the edge

Content Safety categories, Prompt Shields and blocklists before a request reaches any model.

Cost

Semantic caching answers repeated questions without calling the model.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

The GenAI gateway policies

Capability Policy / feature Notes
Token rate limit + quota llm-token-limit tokens-per-minute, token-quota, token-quota-period; alias azure-openai-token-limit
Token metrics llm-emit-token-metric prompt / completion / total tokens, up to 5 custom dimensions
Semantic caching llm-semantic-cache-lookup / -store needs an embeddings deployment + Azure Managed Redis (RediSearch)
Content safety llm-content-safety harm categories, shield-prompt, blocklists — 403 on block
Load balancing Backend pools round-robin, weighted or priority
Failover Circuit breaker on backends dynamic trip duration honors Retry-After
MCP MCP server in APIM GA export a REST API as MCP, or pass through to an existing server
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

AI Gateway reference architecture

CONSUMERSBACKENDS Apps & agentsFoundry Guide, copilots Teams / productsGold · Bronze budgets MCP clientsagents, IDEs Azure API Management · AI Gateway llm-token-limit · TPM + quota per product llm-content-safety · categories + Prompt Shields llm-semantic-cache · lookup / store Backend pool · priority / weighted + circuit breaker llm-emit-token-metric · custom dimensions MCP server · from REST API or passthrough Foundry projectSweden Central Foundry projectFrance Central Backend REST API ApplicationInsightstoken metrics
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Policy as code — a token-aware inbound pipeline

<inbound>
  <base />
  <authentication-managed-identity resource="https://cognitiveservices.azure.com" />
  <set-backend-service backend-id="foundry-pool" />
  <llm-token-limit counter-key="@(context.Subscription.Id)"
                   tokens-per-minute="5000" token-quota="200000"
                   token-quota-period="Monthly" estimate-prompt-tokens="false" />
  <llm-content-safety backend-id="content-safety" shield-prompt="true" />
  <llm-emit-token-metric namespace="ai-gateway">
    <dimension name="Subscription ID" />
    <dimension name="API ID" />
  </llm-emit-token-metric>
</inbound>

Gateway → Foundry is keyless too: APIM's managed identity holds the Foundry User role on each backend. Full policies: frkim/apim-demo/infra/policies/.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Governing MCP tools with the gateway

MCP server in API Management GA

  • Export any managed REST API as an MCP server
  • Or pass through to an existing MCP server
  • Streamable HTTP (SSE deprecated); tools only — no resources or prompts yet
  • Developer, Basic, Standard, Premium — classic and v2 tiers

From the Foundry side Preview

  • Manage → AI Gateway pane: create one (Basic v2) or attach an existing v2-tier APIM in the same tenant and subscription
  • “Govern MCP tools by using an AI gateway” — route agent tool traffic through APIM
Same story for models and tools: identity, limits, logging, one place.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

DEMO 2 — AI Gateway in action

# github.com/frkim/apim-demo — Bicep, no azd
az deployment sub what-if -n apimaigw-demo -l swedencentral `
  -f infra\main.bicep --result-format ResourceIdOnly
az deployment sub create -n apimaigw-demo -l swedencentral `
  -f infra\main.bicep

cd demo
python -m ai_gateway all
# or: chat | load-balance | token-limit | content-safety
#     | mcp | agent | metrics

What it proves

Keyless chat · load balancing across two Foundry projects · throttling · safety enforcement · MCP tools · a Responses API agent flow · token telemetry.

Go deeper — AI-Gateway labs

backend-pool-load-balancingtoken-rate-limitingtoken-metrics-emittingsemantic-cachingcontent-safetymodel-context-protocolmcp-from-apiai-foundry-hosted-agents

Labs: github.com/Azure-Samples/AI-Gateway · ~50 Jupyter labs with Bicep and APIM policies

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

07

Ship it

Bicep for the Foundry resource, projects and deployments; GitHub Actions with OIDC; keyless RBAC everywhere.

5 min · 01:15 → 01:20

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Bicep — the Foundry resource and project

resource foundry 'Microsoft.CognitiveServices/accounts@2026-07-01' = {
  name: accountName                        // aif-foundrydemo-dev-<suffix>
  location: location
  kind: 'AIServices'
  sku: { name: 'S0' }
  properties: {
    customSubDomainName: accountName       // custom subdomain for Entra ID auth
    allowProjectManagement: true           // enables child Foundry projects
    disableLocalAuth: true                 // Entra ID only — no keys
  }
}
resource project 'Microsoft.CognitiveServices/accounts/projects@2026-07-01' = {
  parent: foundry
  name: projectName                        // proj-foundrydemo-dev (+ location, identity)
}

Trimmed from infra/modules/foundry.bicep · the subscription-scope main.bicep creates rg-foundrydemo-dev-swc and wires outputs (projectEndpoint, uamiClientId…) into the container app.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Bicep — model deployments and role assignments

@batchSize(1) // deployments on one account must not run concurrently
resource deployments 'Microsoft.CognitiveServices/accounts/deployments@2026-07-01' = [for m in models: {
  parent: foundry
  name: m.name                                   // gpt-5.4-mini, gpt-5.4-nano
  sku: { name: 'GlobalStandard', capacity: m.capacity }
  properties: { model: { format: 'OpenAI', name: m.modelName, version: m.modelVersion } }
}]
resource appIsFoundryUser 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  scope: foundry
  name: guid(foundry.id, appPrincipalId, foundryUserRoleId)
  properties: {
    principalId: appPrincipalId                  // user-assigned MI of the container app
    roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', foundryUserRoleId)
  }
}

The repo also sets versionUpgradeOption: 'NoAutoUpgrade' so a demo never changes model version underneath you.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

GitHub Actions — from push to a ready agent

ci.ymldeploy.yml 1 Validateruff · mypy · pytestweb lint + buildbicep lint · what-if 2 azure/loginOIDC federatedcredentialno stored secret 3 Bicepaz deploymentsub createoutputs → env 4 az acr buildACR Tasksimage tag =git SHA 5 Deploy appredeploy templatewith new imagenew revision 6 Smoke testGET /health/ready200 = agentversion ready Runtime identity: id-foundrydemo-dev → Foundry User on the Foundry resource · AcrPull on the registry Package installs in CI and Dockerfile go through the protected npm / PyPI feeds only
The deck itself is built by a third workflow (deck.yml): Marp → HTML, PDF and PPTX → GitHub Pages.
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Keyless by design

Principal Role Scope
App identity (id-foundrydemo-dev) Foundry User · AcrPull Foundry resource · registry
Presenter / deployer principals Foundry User + Speech User Foundry resource
APIM managed identity (Demo 2) Foundry User each Foundry backend
GitHub Actions OIDC federated credential subscription

Foundry User = the renamed Azure AI User role — same role ID, same permissions, so existing assignments keep working.

# AZURE_CLIENT_ID picks the
# user-assigned identity
cred = DefaultAzureCredential()
project = AIProjectClient(
    endpoint=ENDPOINT,
    credential=cred)

Result

disableLocalAuth: true on the account: there is no key to leak, rotate or store in Key Vault.

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

08

Roadmap, resources, Q&A

Key dates to plan around, what to do next week, and where to learn more.

10 min · 01:20 → 01:30

Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Key dates

Oct 1, 2025Agent Frameworkannouncedopen source Nov 2025Ignite: the nameMicrosoft Foundryworkflows preview Mar 16, 2026Agent Service GAResponses API+ evaluations GA Apr 3, 2026Agent Framework1.0stable APIs, LTS Jun 2, 2026Build 2026:Foundry IQ GAA2A inbound preview Jul 1, 2026Defender agentposture → Agent 365licensing change Oct 2026 · todayHosted agentsGAAgent Framework 1.20 Dec 1, 2026Foundry workflows(preview) retire→ Agent Framework Mar 31, 2027Classic agents(Assistants API)retire
shippedtodayretirement — plan your migration
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Call to action — next week, not next year

  • Clone frkim/foundry-demo and deploy it to a sandbox subscription
  • Inventory Assistants-API agents and hub projects; plan the move to Foundry projects before Mar 31, 2027
  • Replace any Foundry workflows with Agent Framework before Dec 1, 2026
  • Set disableLocalAuth: true and move every caller to Entra ID
  • Turn on tracing + Application Insights for every agent project
  • Add evaluations to CI and gate promotion of new agent versions
  • Put an AI Gateway in front of shared model capacity — start with token limits and metrics
  • Install the Foundry skill in GitHub Copilot for your team
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo
Microsoft Foundry · Technical session

Resources

Microsoft Learn

  • learn.microsoft.com/azure/foundry/what-is-foundry
  • learn.microsoft.com/azure/foundry/concepts/architecture
  • learn.microsoft.com/azure/foundry/agents/overview
  • learn.microsoft.com/azure/foundry/agents/concepts/tool-catalog
  • learn.microsoft.com/azure/foundry/foundry-models/concepts/deployment-types
  • learn.microsoft.com/azure/foundry/concepts/rbac-foundry
  • learn.microsoft.com/azure/foundry/guardrails/guardrails-overview
  • learn.microsoft.com/azure/api-management/llm-token-limit-policy
  • learn.microsoft.com/azure/api-management/mcp-server-overview

Code

  • github.com/frkim/foundry-demo — this session: app, Bicep, workflows, deck
  • github.com/frkim/apim-demo — AI Gateway demo
  • github.com/Azure-Samples/AI-Gateway — ~50 labs
  • github.com/microsoft/agent-framework

Announcements

  • devblogs.microsoft.com/foundry/foundry-agent-service-ga
  • devblogs.microsoft.com/foundry/agent-service-build2026
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo

Q&A · thank you

Questions?

Thank you — now go ship a governed agent.

Slides, app, Bicep and workflows: github.com/frkim/foundry-demo
AI Gateway demo: github.com/frkim/apim-demo · Labs: github.com/Azure-Samples/AI-Gateway
[Speaker name] · [contact]
Microsoft Foundry deep dive · October 2026 · github.com/frkim/foundry-demo

[00:00 · Opening — 10 min block starts] Welcome everyone. Over the next 90 minutes we go from "what is Microsoft Foundry" to a governed agent running in production on Azure, built live from a public repo. Three demos anchor the session: the Foundry Guide agent, an AI Gateway in front of Foundry with Azure API Management, and a menu of short Foundry capability demos — Foundry IQ first. Everything you see is in github.com/frkim/foundry-demo, so you do not need to take notes on code.

Introduce yourself briefly — keep it under a minute; replace the bracketed placeholders before presenting. Set the contract: we only cover the new Foundry model (Foundry resource plus projects), and every feature is labelled GA, Preview or Retiring so nobody leaves with a wrong assumption. Stress that the demos are keyless — managed identity and Entra ID only.

[00:02] Walk the agenda quickly: roughly half concepts, half hands-on. Blocks 4 and 6 are live demos; if anything misbehaves we have a recorded fallback video in the repo. Demo 3 is modular: in the 90-minute format show Foundry IQ plus one or two capabilities the audience cares about; in the extended format run all ten after section 5. Timings are in the speaker notes of every section divider so you can keep pace.

Frame the problem before the product. Most teams we meet have a working prototype but hit walls on sprawl, governance and cost. Agents raise the stakes because they act: they call tools and other agents, so identity and tool-call guardrails become mandatory. Each of these six cards maps to a section later in the session — keep that promise in mind.

One sentence: Foundry is Microsoft's managed platform to build, evaluate and deploy generative AI apps and agents. The name went Azure AI Studio, then Azure AI Foundry, now Microsoft Foundry — the new name shows up across the Ignite 2025 announcements. The renames that matter to engineers: AI Services became Foundry Tools, hubs became a single Foundry resource with projects, Assistants became the Responses API, and the RBAC roles were renamed with the same role IDs, so existing assignments keep working.

These are Microsoft's published figures, each with its date: 70,000 customers and 100 trillion tokens were Build 2025 numbers, before the rename. The catalog line is the live Learn statement — more than 10,000 models from Microsoft, OpenAI, Anthropic, Meta and others. The point is not the size; it's that model choice is now a deployment decision inside one platform.

[00:10 · Section 2 — Platform tour, 15 minutes] We look at the resource model first because every other feature hangs off it: RBAC, networking, deployments and projects. Then models and deployment types, Foundry Tools, the new portal and the developer tooling.

The Foundry resource is a Microsoft.CognitiveServices account of kind AIServices — it's where governance lives: networking, security, model deployments, RBAC. Setting allowProjectManagement to true lets it host child projects; a project is the development boundary for a team — agents, conversations, evaluations, files and traces. Notice there's no hub, no storage account or key vault you must create first. Each project gets its own endpoint, shown at the bottom, and that's the only URL your code needs.

Microsoft is explicit: new agents and model-centric capabilities are only available on Foundry projects, including Agent Service GA. Hub-based projects still exist for prompt flow and managed-compute hosting, but the new portal does not support hubs, standalone Azure OpenAI resources or classic assistants. If you migrate, plan for agent state: threads and messages from the preview agents do not transfer.

This is the entire client bootstrap. AIProjectClient from azure-ai-projects 2.x takes the project endpoint and an Entra credential. From it you get the agents client for creating versioned agents and an OpenAI client already pointed at the Responses API on the v1 route. There is no API key anywhere; locally DefaultAzureCredential uses your az login, in Azure it uses the user-assigned managed identity.

The catalog is broad: OpenAI's GPT-5.x generations, Anthropic's Claude families as GA via the Azure Marketplace, and open-weight models like DeepSeek, Llama, Cohere and Mistral. Model Router lets one deployment pick a model per request; Foundry Local brings the same API to devices. For the demo we use gpt-5.4-mini for the agent and gpt-5.4-nano as the fast comparison model. Always re-check the live catalog — names and versions move quickly.

Deployment type is a residency and economics decision, not a model decision. Global Standard is the default: newest models, lowest price, widest availability. Use Data Zone types when data must stay in the EU, US or APAC zone, provisioned throughput when you need predictable latency at volume, and Batch for large offline jobs at roughly half the cost. Our demo uses Global Standard for both deployments in Sweden Central.

Foundry Tools is the new name for Azure AI Services — the Learn page is literally titled "What are Foundry Tools?". Speech, Language, Translator, Document Intelligence, Content Understanding, Vision, Content Safety and Azure AI Search all sit here. Practically, they share the Foundry resource's identity and RBAC model, so an agent can use them without new credentials. Our video pipeline, for example, uses Speech with the same keyless pattern.

The new portal at ai.azure.com shows Foundry projects only — hubs and classic assistants are not supported there. This table is Microsoft's own GA-readiness snapshot for portal features; note agents core and publishing to Microsoft 365 Copilot and Teams are GA, while agent guardrails, monitoring and the AI Gateway pane are still preview. My recommendation: explore in the portal, but version your agents and infrastructure in code — which is exactly what the demo does.

Developers live in the editor, so Foundry meets them there. The Foundry Toolkit for VS Code is the renamed AI Toolkit. For GitHub Copilot, the Microsoft Foundry skill gives the agent reusable know-how for deployments, agents, evaluation and optimization; the two plugin commands also wire up the Azure and Foundry MCP servers. The DevPack bundles all of this with azd so a new team gets a consistent setup in minutes.

[00:25 · Section 3 — Agents, 15 minutes] This is the heart of the platform. We cover the runtime, the agent types, the tools agents can use, knowledge and memory, and the open-source framework for code-first agents. We finish with the exact Python you'll see running in Demo 1.

Two GA stories exist — don't mix them. The classic, Assistants-based Agent Service went GA at Build 2025 and is now deprecated, retiring March 31, 2027. The next-generation Agent Service, built on the Responses API and wire-compatible with OpenAI agents, went GA on March 16, 2026, together with evaluations. Agents are versioned, conversations are server-side, and you call everything with the standard OpenAI client.

Prompt agents are the default: declarative, no infrastructure, and they're what Demo 1 uses. Hosted agents run your own code in a managed container and accept many frameworks; they reached general availability this autumn. The low-code Workflows feature is the one to avoid for new work — Microsoft retires it on December 1, 2026 and points you to Agent Framework for orchestration. Connected agents are replaced by the A2A tool.

Here's the mental model. Your app uses a plain OpenAI client against the Responses API and references the agent by name. The agent is a versioned bundle of instructions, a model deployment, tools, knowledge and — in preview — memory. Guardrails sit around inputs and tool traffic, and everything emits OpenTelemetry traces into Application Insights, which we'll use in Demo 1.

The left column is everything that's GA today: function calling, code interpreter, file search, Bing grounding, Azure AI Search, OpenAPI, Azure Functions, MCP, outbound A2A and Toolbox. On the right, the preview tools — useful to explore, but call them out explicitly in any production design review. Our demo deliberately sticks to GA tools: the Microsoft Learn MCP server and Code Interpreter.

MCP is the standard way to give agents tools; Foundry supports remote MCP servers as GA, with optional approval round-trips for sensitive calls. A2A version 1.0 lets agents call other agents across platforms; exposing your own agent as an A2A endpoint is still preview. Toolbox lets a platform team curate tools once and publish them behind one MCP endpoint — that's how you stop every team from wiring its own connectors.

Foundry IQ is the dedicated knowledge layer: query planning, parallel hybrid search, reranking and cited synthesis on top of Azure AI Search. It reached GA at Build 2026; Fabric IQ, Work IQ and the serverless tier remain preview. For your code it's just another MCP tool on the agent — the same pattern as the Microsoft Learn server in our demo.

Memory gives agents continuity across sessions with three types: user profile, chat summary and the newer procedural memory. The pipeline extracts, consolidates with an LLM to remove duplicates, then retrieves at run time. Microsoft reported a 7 to 14 point success-rate gain on Tau-bench from procedural memory. It is preview — and memories are personal data, so design retention and deletion from day one.

Agent Framework is the open-source engine that unifies Semantic Kernel's enterprise foundations with AutoGen's orchestration. It hit 1.0 on April 3, 2026; the Python package is at 1.20 today. Use it when you need code-first multi-agent orchestration — it's Microsoft's stated replacement for the retiring Foundry workflows. It speaks MCP and A2A natively and deploys as a Foundry hosted agent, so you don't trade governance for flexibility.

This is the real startup code from the demo, trimmed. One AIProjectClient, one MCPTool pointing at the Microsoft Learn MCP server, and create_version with a PromptAgentDefinition. Each call creates a new immutable version of foundry-guide, which is what you evaluate and roll back. Note require_approval never is fine here because the Learn server is read-only; use always for tools with side effects.

Invocation is the standard OpenAI Responses call. We create a server-side conversation, then reference the agent by name in extra_body. The response contains the final text plus typed output items, including MCP calls — that's how the demo UI shows tool-call chips. For the model-compare tab we call the same client with a model deployment name instead of an agent reference.

Building the agent is half the job; adoption is the other half. Publishing to Microsoft 365 Copilot and Teams is GA and largely automated from the portal. You choose individual or organization scope; organization scope goes through admin approval in the tenant. The same agent version can simultaneously serve your own web app, which is what we'll show next.

[00:40 · Section 4 — Demo 1, 15 minutes] Switch to the browser with the Foundry Guide app already open, plus the Foundry portal and Application Insights in separate tabs. Fallback: the recorded walkthrough in docs/video/foundry-demo.mp4 if the network or the region misbehaves.

Here's the app. Four tabs: agent chat with tool-call chips, model compare between mini and nano, a run history table, and an About page with live configuration. There are zero keys anywhere: the container uses a user-assigned managed identity to call Foundry. Everything ships in a single container — FastAPI serves both the API and the built Vue SPA.

Walk the numbers. One: the browser loads the SPA and calls the FastAPI backend, both in one container app. Two: the backend gets an Entra token from its user-assigned managed identity and calls the Foundry project — agent chat goes to foundry-guide, compare calls go straight to the two deployments. Three: the agent calls the Microsoft Learn MCP server and Code Interpreter. Four: everything is traced into Application Insights with OpenTelemetry.

Follow the checklist; it maps one-to-one to the runbook in docs/session. Start with About to prove the configuration is live, then chat, then compare, then history, then jump to the portal and App Insights to show the same run from the platform side. If anything fails, switch to the recorded video and keep talking over it — the story doesn't change.

This is the request path for a single chat turn. The UI posts to the API, the API authenticates with the managed identity, creates or reuses a Foundry conversation, and runs the agent through the Responses API. The API returns text, the conversation id, the tool calls, token usage and latency, which feed the chips and the history table. Readiness is tied to the agent existing, so a broken deployment never receives traffic.

[00:55 · Section 5 — Observability and governance, 10 minutes] The demo worked; now how do we know it's good, safe and compliant — and keep it that way? This section is mostly preview features, so be precise about status.

Observability in Foundry is OpenTelemetry end to end. Connect Application Insights and server-side agent traces are captured automatically with 90-day retention. On the client, the demo calls configure_azure_monitor and adds OpenAI and agent instrumentation, so each model call, agent run and tool call is a span. Both tracing and the agent monitoring dashboard are preview today — fine for dev, call it out for production sign-off.

Evaluations are GA: run them on datasets or on agent runs, and compare versions before promoting. Continuous evaluation is preview and keeps scoring live traffic. The AI Red Teaming Agent builds on Microsoft's open-source PyRIT and reports an attack success rate; check its current status for your region before relying on it. The agentic risk categories — prohibited actions, data leakage and task adherence — are available in a handful of regions, including Sweden Central where our demo runs.

Guardrails are GA for models and user input; guardrails on tool calls and tool responses — the agent-specific part — are still preview. Prompt Shields, task adherence and custom filtering are GA; spotlighting, which tags lower-trust content to blunt indirect prompt injection, is preview. For agents, assume the tool response is hostile: combine Foundry guardrails, gateway content safety and human approval for tools with side effects.

Governance is where Foundry plugs into the rest of the Microsoft security stack. Control Plane is the central governance surface and can register external A2A agents. Entra Agent ID gives agents real identities with lifecycle and audit; Defender adds threat protection for agents in preview; Purview brings audit, DSPM for AI and eDiscovery through a single toggle. Flag the licensing change: agent discovery and posture in Defender moved to the Microsoft Agent 365 license on July 1, 2026.

[Demo 3 — extended track. In the 90-minute format, run 3.1 Foundry IQ plus one or two demos that match the audience, and present the other slides in 30 seconds each.] Every demo runs on demo-* agents in the same project, never on the app's foundry-guide agent. Steps, code and fallbacks are in docs/session/demo-runbook.md, Demo 3.

Ten independent demos, each with its own fallback. Foundry IQ is the one I always show — knowledge is what turns a clever model into a useful agent. The rest you can pick by audience: platform teams like Toolbox, observability and guardrails; developers like LangGraph and human-in-the-loop.

Portal: Build, Knowledge, open zava-kb and its sources; then Agents, demo-iq, Connect to your knowledge base, and ask the Zava Plus question in the playground. Point at the single MCP tool call, the sub-queries and the citations. Contrast with File search: per-agent files versus a shared, permission-aware knowledge base. Status: the knowledge base object is GA; connecting it to agents and most source types are preview.

MCP gives agents tools, A2A lets agents call agents — Foundry or not. Show the A2A tool call in the run details, then the three-bullet summary. Optional: Operate, Overview, Register asset — external A2A and HTTP agents can be governed by Foundry Control Plane.

Three prompts of increasing difficulty; read the model column — small prompts land on small models. Never promise which model wins; comment on what the output shows. Routing is a cost lever as much as a quality lever: pair it with evaluations.

Guardrails are controls: risk times intervention point times action. Assigned to demo-guarded only — never to the app's agent. With tools and knowledge, the attack surface is the tool response. Defense in depth: tool-response scanning, approvals for side effects, and content safety at the gateway.

Platform teams publish the toolbox, product teams consume one endpoint; change a tool or a skill, bump the version, no agent redeploy. Show it in Build, Tools or in the Foundry Toolkit for VS Code, attach it to demo-toolbox-agent and ask for a cost estimate: 4.80 dollars a day, 144 for 30 days.

Autonomy is a trigger plus an identity plus durable state. Show the background call returning queued immediately, the routine and its run history, then the hosted agent with azd ai agent show. Routines are exposed through the beta client in the SDK — check their status on Learn before calling them GA.

Tracing tells you what happened once; continuous observability tells you every hour whether the agent is still healthy — including quality, scored on sampled live traffic. The evaluation rule is project.evaluation_rules.create_or_update with a ContinuousEvaluationRuleAction; the project's managed identity needs Foundry User.

Same OpenAI-compatible evals API, Foundry's evaluator catalog. Show the T-1 run and its per-row explanations, then Prompt Optimizer on demo-iq, then the Agent Optimizer candidates with the starred winner. Close with CI: the microsoft/ai-agent-evals GitHub Action (preview) gates a release on statistically significant changes.

No framework lock-in: the LangGraph agent and the Deep Agent run on the same Foundry deployment, keyless, and their spans land in the same Application Insights as the Foundry agents. LangChain, LangGraph and Deep Agents are third-party open source; langchain-azure-ai is Microsoft's integration package.

Approve the irreversible, automate the rest. Show the MCP approval request on the Responses API first, then the refund that waits for a human. Resume days later: workflow.run(checkpoint_id=..., responses=...). Deep Agents offer the same with interrupt_on and a LangGraph checkpointer.

[01:05 · Section 6 — AI Gateway, 10 minutes including Demo 2] Foundry governs what happens inside a project; the AI Gateway governs traffic across teams, regions and providers. We'll look at the policies, the architecture, then run the frkim/apim-demo client against a live gateway.

A gateway turns AI consumption into a managed API product. Each team gets a token budget, traffic fails over across regions, and finance gets token metrics with dimensions for chargeback. Safety is enforced centrally, caching reduces cost, and the same gateway governs MCP tools. None of this requires changes in the app beyond pointing it at the gateway URL.

These are the exact policy names to search for in the APIM docs. llm-token-limit enforces rate and quota; llm-emit-token-metric sends token counts to Application Insights. Semantic caching uses a lookup and a store policy and needs an embeddings deployment plus Azure Managed Redis with RediSearch. Load balancing and failover are backend features — pools plus circuit breakers — rather than policies, and MCP server support is GA across the classic and v2 tiers.

Consumers on the left call one gateway URL. Requests flow through the token limit, content safety and the semantic cache, then a backend pool spreads load across Foundry projects in Sweden Central and France Central with circuit breakers. Token metrics land in Application Insights for dashboards and chargeback. The same gateway exposes an MCP server built from a REST API — tools get the same auth, limits and logging as models. This is exactly the frkim/apim-demo topology.

This is what a token-aware inbound section looks like. APIM authenticates to Foundry with its own managed identity, routes to the backend pool, enforces a per-subscription token rate and monthly quota, checks content safety and emits token metrics with two dimensions. Order matters: reject early, before you spend tokens. The full, deployable versions are in the apim-demo repo's policies folder.

MCP support in API Management is GA: export a REST API as an MCP server or proxy an existing one, over streamable HTTP. Today it exposes tools only. From Foundry, the AI Gateway pane and MCP tool governance are preview: you can create a Basic v2 gateway or attach an existing v2 instance. The message: treat tools exactly like models — authenticated, rate-limited and logged in one place.

Switch to the terminal. The apim-demo repo deploys APIM Basic v2, two Foundry projects and all the policies with plain Bicep; the client runs each scenario. Run "load-balance" to show requests alternating regions, "token-limit" to trigger a 429, "content-safety" for a 403, and "metrics" to show token counts in App Insights. For self-study, point people to the Azure-Samples AI-Gateway labs listed here — each is a notebook with Bicep and policies.

[01:15 · Section 7 — Deploy and DevOps, 5 minutes] Everything in Demo 1 was deployed from the repo by a GitHub Actions workflow — no portal clicks. We'll look at the essential Bicep, the pipeline and the identity model.

This is the heart of the infrastructure: an account of kind AIServices with allowProjectManagement set to true, which is what makes it a Foundry resource that can host projects. disableLocalAuth true removes keys entirely; every caller must use Entra ID, which is why the custom subdomain is required. The project is a child resource; its endpoint becomes FOUNDRY_PROJECT_ENDPOINT for the app through a Bicep output.

Deployments are a child array of the account; batchSize 1 serializes them because concurrent deployments on one account fail. The role assignment gives the app's managed identity the Foundry User role scoped to the Foundry resource only — least privilege, no subscription-wide roles. Look up the role ID from the official Foundry RBAC page or az role definition list rather than copying a GUID from a slide.

CI validates everything on each pull request: Python lint, types and tests, the Vue build, Bicep lint and a what-if against the subscription. Deploy logs in with an OIDC federated credential, runs the subscription-scope Bicep, builds the image with ACR Tasks tagged with the commit SHA, redeploys the container app and smoke-tests the readiness endpoint, which only returns 200 when the agent version exists. Even this deck is built by a workflow and published to GitHub Pages.

This table is the entire access model. The app identity gets Foundry User on the account and AcrPull on the registry; presenters get Foundry User plus Speech User for the video pipeline; APIM uses its own identity in Demo 2. Foundry User is the renamed Azure AI User role with the same ID, so nothing breaks after the rename. The same code runs locally and in Azure — DefaultAzureCredential just picks a different identity.

[01:20 · Section 8 — Roadmap and Q&A, 10 minutes] Keep the roadmap to about three minutes and leave at least five minutes for questions. The goal of this block is a short list of dated actions people can take back to their teams.

Read the timeline left to right: Agent Framework announced in October 2025, the Microsoft Foundry name at Ignite, Agent Service GA on the Responses API in March, Agent Framework 1.0 in April, Foundry IQ GA at Build, and hosted agents GA this autumn. The two red dates are the ones to act on: Foundry workflows retire on December 1, 2026 — move to Agent Framework — and classic Assistants-based agents retire on March 31, 2027. Anything else you may have read about broader classic retirement dates isn't confirmed by Microsoft documentation; check the official what's-new pages.

Leave the room with eight concrete actions. The first is easy: clone and deploy the demo repo — it takes one workflow run. The time-bound ones are the retirements: workflows by December 1, 2026 and classic Assistants-based agents by March 31, 2027. The rest are hygiene: keyless auth, tracing, evaluation gates and a gateway for shared capacity.

Everything on this slide is linked from the repo README, so people can just grab the repo URL. The Learn pages are the source of truth for status labels — they change faster than any deck, including this one. If you only open one link, open github.com/frkim/foundry-demo.

[01:25 · Q&A] Open the floor. Good prompts if it's quiet: "How do I migrate an Assistants-based agent?", "When should I use hosted agents instead of prompt agents?", "Where does the AI Gateway sit versus Foundry guardrails?" Use docs/session/qa-prep.md for prepared answers. Close by thanking the audience and pointing once more at the repo URL.