Foundations · Prerequisite

Foundry Foundations

Everything else on this site assumes the model on this page. Learn the resource shape, the vocabulary and the endpoint story once, and the five skill areas stop being five separate products and start being one platform.

What this page covers:

What Microsoft Foundry is

Microsoft Foundry is the unified platform for building, deploying and governing AI applications and agents on Azure. Its pitch is consolidation: agents, models and tools live under one Azure resource provider namespace, with one set of role assignments, one networking configuration, one policy surface, and one observability plane.

Concretely, Foundry gives you four things:

PillarWhat it isWhere it shows up on the exam
Models A catalogue of 10,000+ models from Microsoft, OpenAI, Anthropic, Meta, Mistral, Cohere and others, plus the deployment machinery to run them. Model selection, deployment types, quota and cost — Skill 1
Agents Foundry Agent Service: a managed runtime for prompt agents (declarative) and hosted agents (your container), with conversations, tool calls, versioning and publishing. The heart of Skill 2
Tools & knowledge Built-in tools (web search, file search, code interpreter, Azure AI Search, MCP, OpenAPI…), grouped into reusable toolboxes, plus Foundry Tools — Content Understanding, Language, Speech, Translator, Vision. Skills 2, 3, 4 and 5
Governance & observability Entra identity, Azure RBAC, guardrails, network isolation, Azure Policy; plus tracing, evaluations and Application Insights dashboards. Skill 1, and the responsible-AI objectives across every skill

Framing that wins questions

When a scenario says "the security team requires a single boundary for networking and RBAC across all our AI workloads", the intended answer is almost always one Foundry resource with multiple projects, not one resource per team. Projects are child resources: they inherit the parent's security, connectivity and governance by default, and can add their own RBAC on top. That is the whole point of the design — it takes the IT admin out of the day-to-day loop.

The vocabulary shift you must memorise

Foundry consolidated several previous products, and with them came a full rename. The exam, the portal and the current documentation use the new names. Most third-party material, older Learn modules and many practice tests still use the old ones. Knowing both directions is worth several marks.

DimensionPreviouslyNow
BrandAzure AI Studio → Azure AI FoundryMicrosoft Foundry
Service familyAzure AI Services (Cognitive Services)Foundry Tools
PortalAzure AI Foundry portalFoundry portal (the old one is Foundry (classic))
Agent APIAssistants API (Agents v0.5 / v1)Responses API (Agents v2)
API versioningMonthly api-version parametersv1 stable routes (/openai/v1/)
Resource modelHub + Azure OpenAI + Azure AI ServicesFoundry resource (single, with projects)
SDK azure-ai-inference, azure-ai-generative, azure-ai-ml, AzureOpenAI() across 5+ endpoints azure-ai-projects 2.x + OpenAI() against one project endpoint
Conversation objectsThreads, Messages, Runs, AssistantsConversations, Items, Responses, Agent versions
Content filteringContent filters / RAI policiesGuardrails (a named set of controls)
RBAC rolesAzure AI User / Owner / Account Owner / Project ManagerFoundry User / Owner / Account Owner / Project Manager
Document extractionDocument Intelligence (still exists)Content Understanding for multimodal, generative extraction

Read the question, not the brand

Microsoft does not rewrite every exam item the day a rename ships. If a question says "Azure AI Foundry project", treat it as a Foundry project. If it says "Azure AI Services multi-service resource", treat it as a Foundry resource / Foundry Tools. The concepts are what is being tested. Where a question genuinely hinges on old-versus-new — for example Assistants API versus Responses API, or threads versus conversations — the wording will make that explicit.

Agents (classic) is deprecated

The classic Agent Service (Assistants-style threads/runs) is deprecated and retires on 31 March 2027. New work uses Foundry Agent Service with the Responses API. If an answer option offers to build on threads and runs for a new solution, it is almost certainly the distractor.

The resource model

flowchart TB
  SUB["Azure subscription"] --> RG["Resource group"]
  RG --> FR["Foundry resource<br/>Microsoft.CognitiveServices/accounts<br/>kind = AIServices"]
  FR --> P1["Project: dev"]
  FR --> P2["Project: prod"]
  FR --> DEP["Model deployments<br/>(resource scope)"]
  FR --> CONN["Connections<br/>Search · Storage · App Insights"]
  P1 --> AG1["Agents, files,<br/>vector stores, evals"]
  P2 --> AG2["Agents, files,<br/>vector stores, evals"]

  RG -.legacy.-> HUB["Azure AI hub<br/>+ Storage + Key Vault<br/>(only for open-source models,<br/>managed compute, prompt flow)"]
One Foundry resource per security boundary, projects as folders inside it. The hub is legacy and only needed for a shrinking set of scenarios.

The Foundry resource

The Foundry resource is a single Azure resource that scopes design, deployment, governance and runtime access for generative AI applications and agents. It is the default resource type for anything you create in the Foundry portal, and it supersedes the old combination of hub + Azure OpenAI + Azure AI Services. It carries:

  • Model deployments — created at resource scope and usable by the projects underneath.
  • Connections — to Azure AI Search, Storage, Application Insights, MCP servers and more.
  • Security settings — managed identity, private endpoints, customer-managed keys, Azure Policy.
  • Azure OpenAI backward compatibility — the same endpoint shapes and API surface.

The Foundry project

A project is a child resource of the Foundry resource: a folder that organises one team's or one application's work. Agents, files, vector stores, evaluation runs, datasets and traces live in a project. By default a project inherits the parent's settings; it can also carry its own RBAC assignments so a developer can self-serve without an admin in the loop.

The hub — legacy, but still examinable

The Azure AI hub is the older resource type, built on Azure Machine Learning, that required a dependent Storage account and Key Vault. New features land on the Foundry resource, but a hub is still required for a small set of scenarios:

ScenarioNeeds a hub?Why
Agents, Foundry Models, evaluations, tracingNoNative to Foundry projects
Open-source model deployments (Hugging Face, NVIDIA NIM)YesRequire managed compute, which only hubs provide
Managed compute endpoints / compute instancesYesAzure Machine Learning capability
Prompt flowYesNeeds a compute runtime
Azure Machine Learning interoperabilityYesHubs are AML workspaces underneath

Hub-vs-project questions have a tell

If the scenario mentions Hugging Face, NVIDIA NIM, fine-tuning an open-source model on your own compute, prompt flow or Azure Machine Learning, the answer involves a hub. Everything else — and certainly anything phrased as "new solution", "agents", "Responses API" — is a Foundry project. Also remember what does not migrate from hub to Foundry project: preview agent state (messages, threads, files) and open-source model deployments. Model deployments, data files, fine-tuned models and vector stores do carry over.

Other resource types you will meet

Azure OpenAI resource
A narrower resource that exposes OpenAI models and APIs only. Still valid where a security team refuses to enable the full Foundry surface, but the model catalogue shows only Azure OpenAI models. There is an in-place upgrade to a Foundry resource that preserves the endpoint, API keys and existing state.
Azure AI Search
A separate resource for indexing and retrieval. You connect it to Foundry; it is never inside the Foundry resource. It powers RAG, the Azure AI Search tool and Foundry IQ knowledge bases.
Azure Cosmos DB / Azure Storage / Application Insights
Optional "bring your own resources" for conversation state, file storage and telemetry, connected when compliance or operations demand you own the data store.

Foundry Models

The catalogue splits along a line that matters for billing, SLA and support — and that the exam likes to test.

Foundry Models sold by AzureModels from partners and community
ExamplesAll Azure OpenAI models (GPT family, o-series, embeddings, image, audio), plus selected models from top providersAnthropic, and specific models from Mistral, Cohere, Meta and others
BillingAzure meters, as First Party Consumption ServicesAzure Marketplace, under the Commercial Marketplace Terms
SLA and supportCovered by Azure SLAs, supported by MicrosoftProvider defines licence terms and price
GuardrailsGuardrail system applies (except audio transcription models)Varies by model

Choosing a model for the task

The very first objective in Skill 1 is "choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools". That is a shopping list of trade-offs:

FamilyPick it whenAvoid it when
Large language model (LLM) Broad world knowledge, complex synthesis, open-ended generation, hard tool orchestration Latency or cost per call dominate, or the task is narrow and repetitive
Small language model (SLM) — Phi family, "mini" tiers High volume, tight latency, edge or on-device, well-scoped tasks like classification, routing or extraction The task needs deep reasoning or long-tail knowledge
Reasoning models (o-series and equivalents) Multi-step planning, maths, code, agentic decomposition where accuracy beats speed Chatty, latency-sensitive front ends; they think longer and cost more
Multimodal models Input mixes text with images, audio or video — captioning, visual Q&A, document understanding, audio reasoning You need deterministic, schema-locked extraction with confidence scores (use Content Understanding)
Embedding models Vectorising content for similarity, clustering and vector/hybrid retrieval You need generation — embeddings only produce vectors
Image / video generation (GPT-image family, Sora) Creating or editing visual assets from prompts and reference media Analysing existing media — that is multimodal understanding, not generation
Foundry Tools (Language, Speech, Translator, Content Understanding, Vision) The task is a solved, bounded NLP/vision/speech problem where you want a stable API, predictable cost, confidence scores and no prompt engineering The task needs free-form reasoning or a bespoke output shape a prompt can express better

The generative-vs-task-service judgement call

AI-103 repeatedly asks you to choose between "prompt a model" and "call a Foundry Tool". A useful rule: deterministic, auditable, high volume and well defined → Foundry Tool (sentiment, PII redaction, language detection, OCR, translation, transcription). Open-ended, contextual, bespoke output shape → generative model (summarising to a house style, extracting a schema nobody has a prebuilt model for, reasoning over mixed content). Content Understanding deliberately sits in the middle: a schema you define, generative extraction underneath, with confidence scores and source grounding on the way out.

Comparing models before you commit

Foundry has a model leaderboard and benchmarks surface that compares models on quality, cost, throughput and safety across public datasets or your own data, and an evaluation SDK for testing a specific endpoint. Model selection is the first stage of the evaluation lifecycle (base model selection → pre-production evaluation → post-production monitoring); see Skill 2 for the evaluators themselves.

Deployment options and deployment types

Two levels of choice, and the exam expects you to keep them apart. First the deployment option (how the model is hosted), then, for serverless, the deployment type (where data is processed and how you pay).

flowchart TD
  A["Need to run a model"] --> B{"Open-source / custom /<br/>Hugging Face / NIM?"}
  B -- Yes --> MC["Managed compute<br/>(dedicated VMs, billed by uptime,<br/>needs a hub + compute quota)"]
  B -- No --> C["Serverless API<br/>on the Foundry resource"]
  C --> D{"Data residency<br/>requirement?"}
  D -- "None" --> E["Global"]
  D -- "US / EU / APAC" --> F["Data Zone"]
  D -- "Specific geography" --> G["Standard or<br/>Regional Provisioned"]
  E --> H{"Traffic pattern?"}
  F --> H
  H -- "Bursty / variable" --> I["Standard<br/>(pay per token)"]
  H -- "High and steady, low<br/>latency variance" --> J["Provisioned<br/>(PTUs)"]
  H -- "Large async jobs" --> K["Batch<br/>(~50% cheaper)"]
Deployment decision path: option first, then type.

Deployment options

OptionWhat it isWhere it lives
Serverless API preferred Microsoft hosts the model; you call an API. Supports all deployment types, content filtering, keyless auth, private networking and provisioned throughput. Foundry resource (or Azure OpenAI resource, limited catalogue)
Managed compute A dedicated endpoint on compute you provision, billed per compute uptime. Required for Hugging Face models and NVIDIA NIMs. Hub resources only; needs compute quota
Instant access preview Call supported models by name with no deployment at all. Ideal for prototyping. Foundry project (limited regions during preview)

Deployment types (serverless)

Three categories — standard (pay per token), provisioned (reserved capacity, priced in PTUs) and batch (discounted asynchronous) — crossed with three data-processing scopes. A Developer type also exists for evaluating fine-tuned models, with no SLA.

TypeSKU name in codeData processingUse it for
Global StandardGlobalStandardAny Azure regionThe default. Newest models first, lowest price, highest default quota, broadest regions
Global ProvisionedGlobalProvisionedManagedAny Azure regionReserved, predictable throughput with global routing
Data Zone StandardDataZoneStandardWithin US, EU or APAC data zoneResidency inside a data zone, pay per token
Data Zone ProvisionedDataZoneProvisionedManagedWithin US, EU or APAC data zoneResidency and reserved throughput
StandardStandardCustomer-specified Azure geographyStrict geography-level residency
Regional ProvisionedProvisionedManagedCustomer-specified Azure geographyGeography residency with reserved capacity
Global / Data Zone BatchGlobalBatchGlobal or data zoneLarge asynchronous jobs — roughly 50% cheaper, not time-sensitive
DeveloperDeveloperRegionalEvaluating a fine-tuned model. No SLA, lowest cost, temporary

High-yield deployment facts

  • Data at rest always stays in the designated Azure geography — the deployment type governs where inferencing is processed, not storage.
  • Global = may be processed in any Azure region. Data Zone = only within US, EU (the Azure EU Data Boundary, which can include EFTA countries such as Norway and Switzerland) or APAC. Standard/Regional = within the specified geography.
  • New deployment types arrive in a fixed order: Global first, then Data Zone, then geography-based. Geography-based types arrive last and have no guaranteed date.
  • "High consistent volume, latency variance is hurting us" → provisioned (PTUs), not more Standard quota.
  • "Millions of documents to classify overnight, cost matters, latency does not" → Batch.
  • Managed compute deployments do not use these types at all.

Foundry Tools

Foundry Tools is the new name for what were Azure AI Services (and before that, Cognitive Services). They are available through the Foundry resource and, in most cases, directly in the Foundry portal as playgrounds, as agent tools, and as MCP servers.

ToolDoesMain exam home
Content Understanding Generative, schema-driven extraction from documents, images, audio and video, with confidence scores, source grounding, classification and segmentation. Outputs markdown or JSON. Skills 3 and 5
Azure Language PII detection and redaction, NER (prebuilt and custom), language detection, sentiment and opinion mining, key phrase extraction, summarisation, text analytics for health, CLU, question answering. Skill 4
Azure Speech Speech to text, text to speech (standard, HD and MAI voices), custom speech, custom neural voice, personal voice, avatars, speech translation, and the real-time Voice Live API. Skill 4
Azure Translator Text and document translation across 100+ languages, plus Custom Translator for domain vocabulary. Skill 4
Azure AI Vision Classic image analysis: captions and dense captions, OCR/Read, object and people detection, smart crops, spatial analysis. Skill 3
Azure AI Content Safety The classification models behind Guardrails: harm categories, Prompt Shields, groundedness detection, protected material. Skills 1 and 3
Document Intelligence The established prebuilt/custom document model service. Content Understanding is the newer, generative path; both still exist. Skill 5

Containers and disconnected environments

Several Language tools ship as containers (sentiment analysis, NER, PII detection, text analytics for health, custom NER, summarisation), and some can run in disconnected environments. If a scenario has an air-gapped facility or data that cannot leave the premises, containers are the answer — generative models in Foundry are not.

Connections

A connection is how a Foundry resource or project reaches something outside itself: an Azure AI Search service, a Storage account, an Application Insights workspace, an MCP server, a Language resource, a Bing grounding resource. Connections can be created at resource scope (shared by every project) or project scope (private to one project).

Each connection carries an authentication method, and the choice matters:

Auth methodWhen to useCaveat
Microsoft Entra ID (managed identity)Default and recommended. The project's or agent's managed identity authenticates.Target resource needs a matching role assignment — this is the step people forget
API keyQuick setup, third parties that only support keysNot supported with private virtual networking for the Azure AI Search tool
OAuth On-Behalf-Of (OBO)The agent must act as the signed-in user, respecting their permissionsRequires identity passthrough support in the target
UnauthenticatedGenuinely public endpointsRare, and a red flag in enterprise scenarios

The classic connection trap

"I created the connection but the agent gets 403 / cannot read the data." The connection existing is not the same as the identity being authorised. When you connect a resource created outside Foundry, you must add the Foundry account's or project's managed identity to a role on that resource — for example Storage Blob Data Reader on a storage account, or a Search role on an Azure AI Search service.

One endpoint, one API

The old world had you juggling five or more endpoints and SDK packages. Foundry gives you a single project endpoint:

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

Everything hangs off it: model inference, agents, conversations, files, vector stores, evaluations and traces. The OpenAI-compatible surface lives at /openai/v1/ with stable v1 routes instead of monthly api-version strings.

Python · first call
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

# Every Foundry project exposes exactly one endpoint:
# https://<resource-name>.services.ai.azure.com/api/projects/<project-name>
project = AIProjectClient(
    endpoint="https://my-foundry.services.ai.azure.com/api/projects/my-project",
    credential=DefaultAzureCredential(),   # keyless: Entra ID token, no API key
)

# The project client hands you an OpenAI-compatible client bound to the project.
openai = project.get_openai_client()

response = openai.responses.create(
    model="gpt-5-mini",                    # the deployment name in your project
    input="Summarise the AI-103 exam in one sentence.",
)
print(response.output_text)

Three details worth memorising from that snippet

  • AIProjectClient comes from azure-ai-projects 2.x. The 1.x API is the classic one and is not compatible.
  • project.get_openai_client() returns an OpenAI client already bound to the project — you do not construct AzureOpenAI() with a key and an api-version any more.
  • The call is openai.responses.create(...), not chat.completions.create(...). The Responses API is the current surface; chat completions still work for plain model calls but agents and tools are built on responses.

Three ways to build, in one table

Detail lives in Skill 2, but the shape of the choice belongs here because it frames everything else.

Prompt agentHosted agentEphemeral (Responses API direct)
You supplyInstructions, model, tools — declarativelyYour code and framework, as a container or .zipYour own runtime, anywhere
Foundry runsEverythingYour container, with managed endpoint, scaling and identityNothing — you call the API
Agent resource in FoundryYes, versionedYes, versionedNo — the definition lives in your code
Cost modelInference + tool usageInference + tool usage + container computeInference + tool usage
Best forFast start, production agents without custom orchestrationCustom code and orchestration, multi-agent systems, custom protocolsAgent logic that ships and versions with your app

Identity, RBAC and keyless authentication

sequenceDiagram
  autonumber
  participant App as Your app
  participant Entra as Microsoft Entra ID
  participant Proj as Foundry project endpoint
  participant Model as Model deployment

  App->>Entra: DefaultAzureCredential requests a token<br/>(scope: ai.azure.com)
  Entra-->>App: Access token (no key stored anywhere)
  App->>Proj: POST /openai/v1/responses<br/>Authorization: Bearer token
  Proj->>Proj: Check Azure RBAC (Foundry User / Agent Consumer)
  Proj->>Model: Route to deployment, apply guardrails
  Model-->>Proj: Completion + content filter annotations
  Proj-->>App: Response object
A keyless call: Entra issues a token, Azure RBAC authorises it at the project, guardrails run on the way in and out.

The five Foundry roles

Azure separates management actions (control plane: create resources, deploy models) from development actions (data plane: build agents, call models). This is the single most common source of "why can't I do anything?" in Foundry — and a favourite exam target.

RoleCreate projectsCreate accountsBuild in a project
(data actions)
Assign rolesManage modelsPublish agentsCall agent endpoints
Foundry Agent Consumer✘✘✘✘✘✘✔
Foundry User✘✘✔✘✘✘✔
Foundry Project Manager✘✘✔✔ (Foundry User only)✘✔✔
Foundry Account Owner✔✔✘✔ (limited set)✔✘✘
Foundry Owner✔✔✔✔ (limited set)✔✔✔
Azure Owner✔✔✘✔ (any role)✔✔✘
Azure Contributor✔✔✘✘✔✘✘
Azure Reader✘✘✘✘✘✘✘

The RBAC facts that get tested

  • Azure Owner and Contributor grant no data-plane access. A subscription Owner still cannot build in a project without a Foundry role. "The developer is a Contributor but cannot create an agent" → assign Foundry User.
  • Least privilege for a developer = Foundry User. Least privilege for something that only calls an agent = Foundry Agent Consumer.
  • Fine-tuning needs both planes. Only Foundry Owner has both; otherwise combine Foundry User (data) + Foundry Account Owner (control).
  • Publishing an agent needs at least Foundry Project Manager at resource scope.
  • Do not assign roles beginning with Cognitive Services, and do not use Azure AI Developer — despite the name it is scoped to AML workspaces and hubs, not Foundry projects.
  • Two assignments get you started: Foundry User on the resource for your user principal, and Foundry User for the project's managed identity. Both are automatic only when you create the project in the portal and you can assign roles — not via SDK or CLI.

Keyless, managed identity and network isolation

  • Keyless credentials mean Entra ID tokens instead of API keys. In code that is DefaultAzureCredential (or AzureCliCredential locally, a managed identity in Azure). No secret is stored, nothing to rotate, and access is revoked by removing a role assignment.
  • Agent identity: each agent can have its own dedicated Entra identity, so it authenticates to external MCP servers and APIs with scoped permissions rather than sharing the project's credentials. Hosted agents get a dedicated identity automatically.
  • Private networking: private endpoints and VNet integration. Prompt agents support private networking; hosted agents support bring-your-own VNet, where each session runs in a VM-isolated sandbox attached to your network.
  • Network egress controls preview restrict which outbound destinations a hosted agent may reach, configured in the same guardrail (RAI policy).

Developer surfaces

SurfaceBest for
Foundry portal (ai.azure.com)Exploring the catalogue, playgrounds, building prompt agents with no code, running evaluations, reading traces
SDKs — Python, C#, JavaScript/TypeScript, JavaApplication code. Python is what AI-103 shows you
Azure Developer CLI (azd)Scaffolding, running and deploying hosted-agent projects from the command line
Visual Studio Code + Foundry extensionBuilding and debugging agents and workflows in the editor
REST APIAnything without an SDK; the exam occasionally shows curl against /openai/v1/responses
Coding agents + MCPDriving Foundry from GitHub Copilot or similar, via the Foundry MCP server and skill

Foundations glossary

Foundry resource
The single Azure resource that scopes models, agents, tools, RBAC, networking and policy.
Foundry project
A child resource of the Foundry resource; the workspace where agents, files, vector stores and evaluations live.
Deployment
A named, callable instance of a model in your resource. The name you pass as model=.
Responses API
The current inference and agent API (Agents v2). Replaces the Assistants API.
Conversation
Server-side multi-turn state. Replaces "thread". Holds items (replacing "messages").
Agent version
An immutable snapshot of an agent definition. Replaces "assistant"; enables rollback and comparison.
Toolbox
A curated, versioned collection of tools exposed through one managed MCP-compatible endpoint, reusable across agents and frameworks.
Guardrail
A named collection of controls; each control pairs a risk, an intervention point and an action.
Foundry IQ
The managed knowledge layer built on Azure AI Search that turns enterprise content into reusable, permission-aware knowledge bases for agents.
PTU
Provisioned Throughput Unit — the unit of reserved model capacity for provisioned deployment types.
Foundry Tools
The renamed Azure AI Services: Content Understanding, Language, Speech, Translator, Vision, Content Safety.

Checkpoint before moving on

You should now be able to answer, without looking: what resource do I create for a new agent solution; when do I still need a hub; what is the difference between Global Standard and Data Zone Standard; which role does a developer need versus an application that only calls an agent; and what replaced threads and runs. If any of those is shaky, re-read that section — every skill page below assumes them.