🤖

🔷 Microsoft Azure

Free Developing AI Apps and Agents on Azure (AI-103) Study Resources

Microsoft's AI developer exam, rebuilt around Microsoft Foundry — agents, retrieval-augmented generation, and multimodal work in Python. Cover all five skill areas as Microsoft weights them today: planning and managing a solution (25–30%), generative AI and agentic solutions (30–35%), then computer vision, text analysis, and information extraction at 10–15% each. With an AI tutor, three blueprint-weighted mock exams, and 640 flashcards written against current Microsoft Learn documentation — every one carrying a quotation verified against the live page. Expects Python and familiarity with Azure.

591
Practice Questions
68
Study Notes
640
Flashcards

Developing AI Apps and Agents on Azure (AI-103) Study Notes & Guides

68 AI-generated study notes covering the full Developing AI Apps and Agents on Azure (AI-103) curriculum. Showing 10 complete guides below.

Lesson2,778 words

Choose an appropriate method for retrieval and indexing

AI-103 › Unit 1: Plan and manage an Azure AI solution › Choose the appropriate Foundry services for generative AI and agents › Choose an appropriate method for retrieval and indexing

Read full article

Choose an appropriate method for retrieval and indexing

Retrieval is where most grounded solutions actually fail, and it fails quietly. The model produces a fluent answer from the wrong material, and nothing in the response signals that search returned the wrong documents. This lesson covers the decisions that determine whether the right content reaches the model at all: how content gets in, how it is enriched, how it is queried, and who plans the query.

Why This Matters

Three properties make retrieval design consequential.

Retrieval failures are invisible downstream. If search returns the wrong three documents, a good model summarizes them faithfully. Groundedness scores well. The answer is wrong. Only a measurement aimed at the retrieval step — not the response — reveals it.

Ingestion decisions are expensive to reverse. Enrichment runs at indexing time: skillsets "chunk text, generate vectors, and apply other transformations" as content flows through. Adding chunking or vectorization later is not a configuration change; the documents already in the index were written without it, so the corpus must be reprocessed.

The access-control model is chosen here. Whether a user sees only what they are entitled to is decided by the knowledge source, not by anything downstream. Once a restricted document is in the context window, every later control is a mitigation rather than a boundary.

The exam tests this as a set of paired decisions — push or pull, vectors or not, classic or agentic, indexed or remote — each turning on one stated property.

Prerequisites

  • What an index, a query, and a ranked result set are.
  • That an embedding is a dense vector and vector search finds near neighbours in that space.
  • The distinction between lexical matching (tokens) and semantic matching (meaning).
  • That Azure AI Search is the retrieval engine underpinning Foundry IQ knowledge bases.

Learning Objectives

By the end of this lesson you will be able to:

  1. Choose push or pull ingestion from the two documented conditions.
  2. Decide whether a workload needs vectors at all, and configure integrated vectorization when it does.
  3. Select among full-text, vector, hybrid, and multimodal queries, and add the semantic ranker appropriately.
  4. Distinguish classic search from agentic retrieval, including their differing region support.
  5. Choose indexed or remote knowledge sources, and identify which supports user-permission inheritance.

Building Blocks

The two workloads. Indexing "loads content into an index and makes it searchable. Internally, inbound text is tokenized and stored in inverted indexes, while inbound vectors are stored in vector indexes." Querying targets that populated index. The diagram separates them for clarity, but "in Azure AI Search, they're the same component operating in read-write and read-only modes."

The one format rule. "Azure AI Search can only index JSON documents." Push uploads JSON directly; pull "retrieve[s] and serialize[s] data into JSON."

Push and pull. Pull uses an indexer over a supported data source — Azure Blob Storage, Azure Cosmos DB, Microsoft SharePoint, Microsoft OneLake, and others. Push uploads from your own code. The rule: "If you don't have a supported data source, or if your content and index must be synchronized in real time, the push method is your only option."

Skillsets and enrichment. AI enrichment applies "custom or built-in skills for text, images, and layout", chunking, vectorizing, and transforming content during indexing. A custom skill calls your own endpoint from inside the skillset. Index projections control where enriched output is written.

Query types. Full-text, vector, hybrid, and multimodal — the last querying "content containing both text and images in a single multimodal pipeline". Integrated vectorization generates the embeddings so the application does not.

Relevance tuning. The semantic ranker, synonym maps, scoring configuration, filters, faceted navigation, and autocomplete — all aimed at "improv[ing] intent matching and result quality".

Classic search and agentic retrieval. Two engines on one service, differing in who plans the query.

Classic search against agentic retrieval

Search corpus

A search index

Knowledge sources

Search target

One index defined by a schema

A knowledge base over one or more sources

Query plan

No plan, just a request

LLM-assisted or user-provided

Response

Flattened results by schema

Answer or raw data, activity log, references

Region restrictions

No

Yes

Deep Dive

Getting content in

The push/pull decision has a default and two exceptions, and both exceptions push you the same way.

Use pull when the content lives in a supported data source and some staleness is acceptable. The indexer handles retrieval, change detection, serialization to JSON, and scheduling — work you would otherwise write and operate.

Use push when either exception applies: the source is not supported, or the index must track the source in real time. A line-of-business system with no indexer and a no-staleness requirement triggers both at once.

The operational consequence of pull is a monitoring obligation. An indexer run reporting Success with 0 documents has done exactly what it was told: change detection surfaced nothing. That is a statement about what the indexer saw, not about the index being correct — and it reaches users as omitted content, which nobody reports as an error. Ingestion health therefore needs the document count and item-level errors beside the status, not the status alone.

Two questions decide ingestion

  1. Is the source supported?

    No → push. There is no indexer to configure.

Do you need vectors?

The guidance here is deliberately sceptical, and it is worth quoting because the default assumption runs the other way: "Do you need vectors? LLMs and agents don't require vectors. Only use them if you need similarity search or if you have content that can be homogenized into vectors."

Vectors cost an embedding stage at ingest, storage for the vector index, and embedding of every query. They buy paraphrase matching. If your queries are identifiers, part numbers, codes, and exact phrases, that purchase returns very little — and vector search is actively weak there, because an identifier is a token to match rather than a meaning to approximate.

When you do adopt them, integrated vectorization means the service generates embeddings in-pipeline rather than the application embedding content before ingest and queries before search.

Choosing the query type

Full-text for lexical precision — identifiers, codes, exact phrases. Vector for similarity and paraphrase. Hybrid to "combine full-text search with vector search to balance precision and recall", which is the answer whenever a scenario names both query styles. Multimodal when text and images must be queried together.

Then separate retrieval from ranking. Hybrid decides what is retrieved; the semantic ranker decides what comes first. Relevance complaints frequently need the second even when the right document was already in the candidate set — so a stem complaining about ordering rather than absence is pointing at ranking.

Classic or agentic

Classic search is "an index-first retrieval model for predictable, low-latency queries. Each query targets a single, predefined search index and returns ranked documents in one request–response cycle. No LLM-assisted planning, iteration, or synthesis occurs during retrieval." Your application composes and merges.

Agentic retrieval targets a knowledge base representing a domain: "one or more knowledge sources, an optional LLM for query planning and answer synthesis, and parameters that govern retrieval behavior." Each query "undergoes planning, decomposition into focused subqueries, parallel retrieval from knowledge sources, semantic reranking, and results merging", returning an answer or raw data plus an activity log and references.

Two practical differences decide real designs. First, who writes the planning code — the service, or you. Second, regional support: the comparison table marks region restrictions No for classic and Yes for agentic, and the getting-started checklist tells you to choose a supported region when using agentic retrieval.

Indexed or remote, and the access-control question

Knowledge sources come in two kinds: "indexed sources use the same indexing and query engines as classic search, while remote sources bypass indexing and are queried live." Remote costs a live query and is never stale; indexed is fast and as current as the last run.

That choice is also the access-control decision. The design checklist asks "Do you need user-based permission inheritance?" and answers: "Remote SharePoint is designed for this scenario, but you can also inherit user permissions attached to content in Azure Blob Storage or ADLS Gen2. For all other scenarios, you can use the security filter workaround."

This matters because trimming has to happen at retrieval. Once a restricted document is in the context window, the model has it, and filtering the generated answer is a mitigation applied after the boundary was crossed.

Worked Examples

Example 1 — an engineering catalogue. Users search exact part identifiers such as BRG-6204 and also ask descriptive questions about tolerances.

Two query styles in one requirement names hybrid search. Vector alone fails on the identifier — it returns conceptually similar bearings rather than the one asked for — and a synonym map cannot match a paraphrase that shares no terms with the document. If users then complain that the right document appears fourth rather than first, that is a ranking problem: add the semantic ranker.

Example 2 — two sources, two ingestion methods. Standards live in Blob Storage and may lag by an hour; live pricing lives in a system with no indexer and must never be stale.

Blob Storage is supported and an hour of lag is acceptable, so pull. The pricing system triggers both push exceptions — unsupported source, real-time synchronization — so push is the only option. One index, two ingestion paths, chosen per source rather than per system.

Example 3 — a scanned corpus with an enrichment bug. OCR then entity recognition; entities come back empty for scanned pages but work for digital PDFs.

The asymmetry localizes it. A digital PDF carries a text layer, so the entity skill finds content in the document's own text field. A scanned page has no text until OCR produces it, and OCR writes to its own output. If the entity skill still reads the original field it receives nothing — and returns nothing, with a Success status. Skills form a chain, and the chain is expressed by wiring each skill's input to the previous skill's output.

Visual Explanations

The ingestion and query pipeline:

Loading Diagram...
Figure 1 — Mermaid diagram

Classic against agentic, and where knowledge sources sit:

Loading Diagram...
Figure 2 — Mermaid diagram

Common Mistakes

Adopting vectors by default. They are for similarity search. On identifier-heavy corpora they cost more than they return and match worse.

Answering a ranking complaint with re-indexing. Freshness and relevance are different problems with different fixes.

Reading indexer Success as "content arrived". Success with zero documents means change detection found nothing — check the count and item errors.

Adding enrichment after the first full ingest. Skillsets run at indexing time, so the change requires reprocessing.

Trimming permissions after retrieval. Once the document is in context, the boundary has already been crossed.

Using classic search then writing the merge logic yourself when the requirement explicitly says the retrieval layer should plan — that is what agentic retrieval is.

Forgetting agentic retrieval's regional restrictions. Classic search has none; agentic does, and the design must choose a supported region.

Practice Exercises

  1. Content is in Cosmos DB (supported) and may lag 30 minutes; a second source has no indexer and must never be stale. Which ingestion method for each, and which rule decides?
  2. Users search exact SKUs and ask paraphrased questions. Which query type, and why does vector-only fail?
  3. An indexer reports Success with 0 documents while new files are missing from answers. What is the most consistent explanation?
  4. A requirement says the retrieval layer, not the application, should plan across four collections. Which engine, and what does the response carry beyond the answer?
  5. Which knowledge-source kind supports per-user permission inheritance, and what is the fallback elsewhere?
Answers
  1. Pull for Cosmos DB (supported source, staleness acceptable); push for the second (unsupported source and real-time synchronization — either exception alone would force push).
  2. Hybrid search, to "balance precision and recall". Vector-only fails because a SKU is a token to match exactly, not a meaning to approximate; raising k returns more near neighbours, not the exact hit.
  3. Change detection surfaced nothing, so the run legitimately did no work — the new files were not visible to the indexer when it ran. Investigate commit timing, scope, and the indexer identity's access.
  4. Agentic retrieval against a knowledge base. The response carries an activity log and references alongside an LLM-formulated answer or raw source data.
  5. Remote sources — remote SharePoint is designed for it, and Blob Storage / ADLS Gen2 can also inherit permissions. Elsewhere the fallback is the security filter.

Summary & Concept Map

Retrieval design is four paired decisions. Push or pull: pull for supported sources, push when the source is unsupported or the index must be real-time. Vectors or not: only for similarity search, because they cost a stage and match poorly on identifiers. Which query: full-text for tokens, vector for meaning, hybrid for both, with the semantic ranker deciding order rather than membership. Classic or agentic: who plans the query, at the cost of regional restrictions. Underneath all four sits the access-control choice, made when you pick indexed or remote sources — and enrichment, which runs at indexing time and is therefore expensive to add late.

Loading Diagram...
Figure 3 — Mermaid diagram
Loading flashcards…

Sources and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026), reviewed 2026-08-20. Microsoft Learn controls every changing product contract — availability, preview status, quotas, limits, regional support, naming, and retirement dates all move independently of this lesson. Where a scenario turns on a specific number or a GA/preview boundary, confirm it against the product's own page before relying on it.

LO Quick Note888 words

Quick Note — Choose an appropriate method for retrieval and indexing

AI-103 › Unit 1: Plan and manage an Azure AI solution › Choose the appropriate Foundry services for generative AI and agents › Choose an appropriate method for retrieval and indexing

Read full article

Quick Note — Choose an appropriate method for retrieval and indexing

A team indexes an engineering catalogue with vector search alone because vectors sound modern. Then a user searches BRG-6204 — an exact part number — and gets a list of conceptually similar bearings, none of them the one asked for. Vectors approximate meaning; an identifier is a token to match. The fix is not a better embedding model, it is hybrid search: run both and fuse the results.

Retrieval target

Choose an appropriate method for retrieval and indexing
Closed-book recall
5 minutes
Open Microsoft Learn after a miss

Decision anchors

PromptCompact answer
Classic search vs agentic retrievalClassic search — index-first, one query against one index, one request-response cycle, no LLM-assisted planning. Agentic retrieval — a query against a knowledge base of one or more knowledge sources, with planning, decomposition into subqueries, parallel retrieval, semantic reranking, and merging. Classic has no region restrictions; agentic does.
Hybrid searchCombines full-text with vector search to balance precision and recall. Lexical handles identifiers, codes, and exact phrases; vector handles paraphrase. Any stem naming both query styles is asking for hybrid.
Do you need vectors at all?"LLMs and agents don't require vectors. Only use them if you need similarity search or if you have content that can be homogenized into vectors." Vectors add an embedding stage, storage, and pipeline cost — adopt them for a reason, not by default.
Push vs pullPull (indexer) when the content is in a supported data source. Push is your only option if the source is unsupported or if index and source must be synchronized in real time. Either way, Azure AI Search can only index JSON documents.
Integrated vectorizationThe service generates the embeddings in-pipeline, so the application does not embed content at index time or queries at search time.
Indexed vs remote knowledge sourcesIndexed sources use the same engines as classic search. Remote sources bypass indexing and are queried live — current without an ingestion run, and the route for user-permission inheritance (remote SharePoint is designed for it; a security filter is the fallback elsewhere).
Enrichment runs at indexing timeSkillsets chunk, vectorize, and transform during indexing. Changing a skillset means re-running ingestion, not patching the index — plan enrichment before the first full ingest.

Read the answers once, then cover the right-hand column and reconstruct each one from the prompt. A useful answer names the requirement, the capability that satisfies it, and the nearest alternative it rejects. If you can only recognize the answer after seeing it, retrieval is not yet secure.

Ninety-second explanation

Without notes, explain:

  1. When is push the only permitted ingestion method?
  2. Why does vector search alone fail on part numbers?
  3. What does a knowledge base do that a single index query does not?
  4. Why is adding chunking to an existing pipeline more expensive than it looks?
  5. Which retrieval choice is also an access-control decision?

Then check yourself against current Microsoft Learn. Record the missing decision rule, not merely the missed product name, in your error log.

Loading flashcards…

When to go deeper

Go deeper when the design turns on permission inheritance or on agentic retrieval's regional support — both are documented per-source and per-region. Start from Introduction to Azure AI Search.

Source and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026). Reviewed 2026-08-20. Microsoft Learn controls changing product contracts — availability, limits, preview status, naming, and retirement dates move, and this note is deliberately compact.

Lesson3,097 words

Choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools

AI-103 › Unit 1: Plan and manage an Azure AI solution › Choose the appropriate Foundry services for generative AI and agents › Choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools

Read full article

Choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools

Model selection is the first architectural decision in a Foundry solution and the one most often made backwards. Teams reach for the most capable model available, discover the bill, and then tune prompts to claw back cost that a different model would never have incurred. This lesson builds a repeatable selection method: eliminate cheaply, measure late, and let the requirement — not the leaderboard — name the model.

Why This Matters

A model choice sets your cost curve, your latency floor, and your failure modes for the life of the workload. Three properties make it unusually unforgiving.

Cost scales with volume, and reasoning is invisible. Reasoning models generate reasoning tokens in addition to the tokens you can see. Those tokens "never appear in the message content, but they occupy space in the context window and are billed as output tokens." A summarization endpoint returning 200 visible words can be billed for thousands of tokens. At ten million requests a day, choosing a frontier reasoning model for a six-way classification is not a small inefficiency — it is the entire budget.

Capability you do not use is capability you still pay for. A model that can plan a multi-step research task brings that machinery to every request, including the ones that need a single label. The extra depth does not make a fixed-label classification more correct; the answer space was six options either way.

Some constraints cannot be bought off. Data residency, egress prohibitions, and genuinely offline operation are absolute. No amount of model quality satisfies a rule that says the audio must not leave the device. These constraints eliminate whole deployment families in one move, which is why they belong early in the decision rather than late.

The exam tests this as a reading skill. A well-written scenario names the deciding property in one sentence — ten million messages a day, no connectivity at the site, values feed a pricing engine — and the rest is context. Learning to find that sentence is most of the objective.

Prerequisites

Before this lesson you should be comfortable with:

  • The distinction between a model and a deployment — you deploy a model and address it by the deployment name you chose, which need not match the underlying model name.
  • What an embedding is: a dense vector representing meaning, used for similarity search rather than for generating an answer.
  • The basic shape of a Foundry project and the fact that models are reached through a project endpoint.
  • That Foundry Tools are prebuilt capabilities — Document Intelligence, Speech, Language, Vision, Content Safety, AI Search — distinct from the generative models in the catalogue.

Learning Objectives

By the end of this lesson you will be able to:

  1. Apply a four-step elimination order — modality, complexity and envelope, placement, evaluation — to any selection scenario.
  2. Distinguish when a small language model outperforms a frontier model on the criteria that matter.
  3. Explain how reasoning tokens and reasoning_effort change the cost calculus of reasoning models.
  4. Decide when model-router earns its dispatch step and when it is overhead.
  5. Choose between a Foundry Tool and a generative model for a well-defined task.

Building Blocks

Frontier reasoning models. The most capable tier — multi-step reasoning, planning, and tool-calling orchestration. They deliberate internally, producing reasoning tokens that are billed as output. The reasoning_effort parameter governs how much they think, with supported values including none, minimal, low, medium, high, xhigh, and max. Crucially, effort is a request parameter, not a property of the deployment: one deployment can serve a none-effort routing call and a high-effort analysis call in the same pipeline.

Small language models (SLMs). Compact models sized for narrow, high-volume, latency-sensitive work — classification, routing, extraction against a fixed label set. The Phi-4 family is the reference example. They are not "worse" models; they are correctly sized ones.

Multimodal models. Accept images alongside text in a single request and reason over both — scenes, diagrams, charts. The right choice when the questions asked of an image are open-ended and unpredictable.

Embedding models. Return dense vectors. text-embedding-3-large is the reference. They enable similarity search and RAG grounding, and they never return a label or an answer on their own.

Image and video generation models. gpt-image-2 is generally available and supports arbitrary resolutions — both edges a multiple of 16 px, long edge up to 3,840 px (4K), aspect ratio up to 3:1. The gpt-image-1 series — gpt-image-1, gpt-image-1.5, gpt-image-1-mini — is in limited access preview and restricted to the fixed sizes 1024x1024, 1024x1536, and 1536x1024. Video generation is served by Sora 2 through an asynchronous jobs API.

Foundry Tools. Prebuilt capabilities with maintained schemas and classifiers. Document Intelligence returns extracted fields as strongly typed dataInvoiceDate as a date, SubTotal as a currency — so "normalization happens automatically without any configuration." Content Safety classifies harm categories and detects injection. AI Search performs hybrid retrieval with a semantic ranker.

model-router. A deployable model that assesses each incoming request and forwards it to a suitable model in its pool, behind a single endpoint.

Foundry Local. Runs a model on the device, for scenarios where connectivity is absent or data must not leave the hardware boundary.

What each family is for

Frontier reasoning

Multi-step reasoning, planning, orchestration

The answer space is small and fixed

Small language model

Narrow task, high volume, tight latency

The task genuinely needs deliberation

Multimodal

Open-ended questions about an image

The same fields are needed every time

Embedding

Similarity search, RAG grounding

You need a label or an answer

Foundry Tool

A maintained schema already covers it

The task is open-ended or novel

Deep Dive

The elimination order

Selection is a filter, and the order matters because each step is cheaper than the next.

1. Modality. Absolute, and it eliminates whole families in one move. An embedding model cannot generate an image; an image model cannot classify text. No capability argument survives a modality mismatch, so this test costs nothing and removes the most candidates.

2. Complexity and the envelope. Now narrow within the surviving family. Ask what the task actually requires: does it need multi-step deliberation, or is it a single judgement against a small answer space? Then apply the envelope — throughput, latency target, cost per request. A narrow task at high volume with a tight latency target names a small language model without further argument.

3. Placement. Where is the model permitted to run? Data residency, egress prohibitions, sovereignty, and offline operation are constraints that can eliminate every cloud-hosted candidate regardless of tier. This step comes third because it is still free to apply and can invalidate everything above it — but it is written third because it is scenario-specific rather than universal.

4. Evaluate on your own data. Only now is there a short list worth measuring. Evaluation is the expensive step — it needs datasets, evaluator runs, and interpretation — so it goes last, against candidates that have already survived the free filters. Benchmarks comparing models on public datasets help at this stage; they do not replace measurement on your own task.

Eliminate cheaply, measure late

  1. Modality

    Absolute. Rules out entire families at zero cost.

Reasoning models and the cost of thinking

The economics of reasoning models are unintuitive because the expensive part is invisible. Reasoning tokens are billed as output tokens and consume the context window, and a single request "can spend anywhere from a few hundred to tens of thousands of reasoning tokens depending on how hard the problem is."

Two consequences follow. First, token analytics that count only visible output will understate the bill; read completion_tokens_details.reasoning_tokens on a Chat Completions response, or output_tokens_details.reasoning_tokens on a Responses API response, to see what was actually spent.

Second, the output cap covers reasoning too. max_completion_tokens (Chat Completions) and max_output_tokens (Responses) both cover "reasoning tokens, visible output tokens, and formatting tokens." A cap sized for the visible answer can therefore be exhausted before any visible output is produced — and the documented result is that "you pay for input and reasoning tokens but receive no answer." Applications must check status on every response rather than treating an empty body as an empty answer. The guidance suggests reserving around 25,000 tokens for reasoning plus output while learning a workload's appetite, then tuning down.

The lever that controls the spend is reasoning_effort. Because it is a request parameter, a pipeline can set it per step — none or low on mechanical routing and classification, higher only where deliberation earns its cost.

When routing helps, and when it does not

model-router is deployed like any other model and dispatches each request to a suitable model in its pool. It earns its place when request complexity genuinely varies — the classic shape being a large majority of simple lookups and a small minority needing depth. Cost then tracks complexity without the team building and maintaining a classifier.

It stops being worth the dispatch step when traffic is homogeneous. Ten million instances of the same simple classification have no complexity variance to exploit; the router adds a hop and still forwards to a small model. Choosing the small model directly is simpler and cheaper.

Routing also interacts with governance. Because the serving model becomes a per-request property, any requirement to state which model produced a given output means capturing that from the response and storing it with the output. Reconstructing it later fails, because the pool's contents and the router's behaviour change over time.

Tool or model?

The sharpest recurring decision is not which model but whether a model at all. Reach for a Foundry Tool when the task is well-defined, a schema or classifier already exists, and you want typed, consistent output with a maintained contract. Reach for a model when the task is open-ended, the output is prose, or nothing prebuilt covers it.

The trap is that a well-prompted frontier model will often produce the right values for a task a tool was built for. What it cannot supply is the guarantee: a maintained schema, automatic type normalization, and stability when the input layout changes. A prompt shifts that maintenance onto you, and the failure mode — a renamed field that parses cleanly and feeds a wrong number downstream — is silent.

Worked Examples

Example 1 — high-volume intent classification. Ten million short customer messages a day must be sorted into six fixed categories at the lowest cost per message.

Modality: text in, label out — every text model survives. Complexity and envelope: the answer space is six options and volume dominates cost, which names a small language model. Placement: unconstrained. Evaluate: measure candidate SLMs on a labelled sample of real messages. A frontier reasoning model would spend reasoning tokens on a six-way choice ten million times; model-router would add a dispatch step to homogeneous traffic and still route to a small model.

Example 2 — invoice field extraction feeding a pricing engine. Standard supplier invoices; the downstream service rejects anything not matching its schema.

The phrase standard plus typed values moves this out of model selection entirely. Document Intelligence with prebuilt-invoice returns fields whose schemas are "defined and maintained by Microsoft," with InvoiceDate as a date and SubTotal as a currency. A generative model would often produce the right values and would offer no guarantee of the right shape.

Example 3 — offline field inspection. Inspectors dictate findings at remote sites with no connectivity, and policy forbids audio leaving the device.

Placement decides this before anything else. Both constraints eliminate every cloud-hosted candidate regardless of capability or price, so the answer is an on-device deployment. Choosing a cheaper cloud model would satisfy neither constraint — the audio still leaves the device.

Visual Explanations

The selection filter, in order:

Loading Diagram...
Figure 1 — Mermaid diagram

Where a Tool short-circuits the whole tree:

Loading Diagram...
Figure 2 — Mermaid diagram

Common Mistakes

Choosing by capability instead of by requirement. The most capable model is the right answer only when the task needs that capability. A stem describing a narrow, high-volume task is not asking which model is best.

Treating reasoning models as having one cost per call. Effort is per request. A pipeline that leaves every step at the default effort pays frontier deliberation prices on its routing decisions.

Sizing the output cap for the visible answer. The cap covers reasoning tokens too, so a tight cap on a reasoning model produces billed requests with empty bodies.

Reaching for model-router on uniform traffic. Routing exploits variance. With none, it is a hop.

Assuming a prompt can replace a schema. A prompt asks; a tool guarantees. When the consumer is another system rather than a person, the guarantee is the requirement.

Applying placement constraints last. Discovering after benchmarking that no cloud model is permitted wastes the benchmark. Residency and egress are free to check and eliminate the most candidates.

Confusing GA with preview when a stem says "generally available". Among image models, only gpt-image-2 is GA; the gpt-image-1 series is limited access preview on fixed sizes.

Practice Exercises

  1. A workload classifies 8 million short messages daily into six categories, lowest cost per message. Which family, and which two properties decided it?
  2. A team migrates a prompt-tuned workload to a reasoning model and many requests return empty bodies while still being billed. Diagnose it and name the two parameters involved.
  3. Traffic is 90% simple FAQ lookups and 10% multi-step tax reasoning, on one interactive endpoint. What do you deploy, and what would provisioned throughput solve instead?
  4. Extraction of vendor, date, and total from standard invoices, output consumed by a pricing service. Tool or model, and what property makes it decisive?
  5. A regulated service routes through model-router and an auditor must name the model behind any archived output. What must the design do, and why does a later lookup fail?
Answers
  1. A small language model. Decided by the small fixed answer space (no deliberation required) and volume dominating cost.
  2. Reasoning tokens are generated before the visible answer and count against the same limit. Raise max_completion_tokens (or max_output_tokens) to leave headroom, and lower reasoning_effort where depth is unnecessary. Confirm consumption in completion_tokens_details.reasoning_tokens.
  3. model-router — complexity varies per request and the team wants no classifier. Provisioned throughput solves predictable latency and guaranteed rate limits, a different problem.
  4. A Foundry Tool — Document Intelligence with a prebuilt model. Decisive property: strongly typed output against a maintained schema, because the consumer is a system that rejects anything off-shape.
  5. Capture the serving model from each response and store it with the output. A later lookup fails because the router's pool and behaviour change over time, so current state cannot reconstruct a past request.

Summary & Concept Map

Model selection is elimination, not comparison. Modality is absolute and free to check; complexity and the cost envelope pick the tier; placement can invalidate everything above it; evaluation on your own data comes last because it is the expensive step. Reasoning models are powerful and their cost is invisible — reasoning tokens are billed as output, share the output cap, and are governed per request by reasoning_effort. model-router converts complexity variance into cost savings and adds nothing to uniform traffic. And before choosing any model, ask whether a Foundry Tool already owns the task with a maintained schema.

Loading Diagram...
Figure 3 — Mermaid diagram
Loading flashcards…

Sources and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026), reviewed 2026-08-20. Microsoft Learn controls every changing product contract — availability, preview status, quotas, limits, regional support, naming, and retirement dates all move independently of this lesson. Where a scenario turns on a specific number or a GA/preview boundary, confirm it against the product's own page before relying on it.

LO Quick Note1,041 words

Quick Note — Choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools

AI-103 › Unit 1: Plan and manage an Azure AI solution › Choose the appropriate Foundry services for generative AI and agents › Choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools

Read full article

Quick Note — Choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools

A retail team routes 10 million short support messages a day into six fixed intent categories, and puts a frontier reasoning model behind it because "accuracy matters". The bill arrives: the model spent reasoning tokens deliberating over a six-way choice, ten million times, and reasoning tokens are billed as output tokens. A small language model answers the same question at a fraction of the cost, because the task was never hard — it was just frequent. The selection error was not picking a weak model; it was never asking what the task actually required.

Retrieval target

Choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools
Closed-book recall
5 minutes
Open Microsoft Learn after a miss

Decision anchors

PromptCompact answer
Order of eliminationModality first — it rules out whole families and no capability argument overrides it. Then complexity and the cost/latency envelope, which picks the tier. Then placement — residency, egress, offline operation — which can eliminate every cloud-hosted candidate at once. Evaluate on your own data last, because measurement is the expensive step.
Small language model (SLM)For narrow, high-volume, latency-sensitive work: classification, routing, extraction with a fixed label set. The Phi-4 family is the reference example. Reach for it when the task has a small answer space and volume dominates cost.
Frontier reasoning modelFor multi-step reasoning, planning, and tool-calling orchestration. Generates reasoning tokens that never appear in the message content but occupy the context window and are billed as output tokens — so it is the most expensive way to answer an easy question.
model-routerA deployable model that assesses each request and forwards it to a suitable model in its pool. Earns its place on mixed traffic (simple majority, hard minority). On a homogeneous stream of one simple task it adds a dispatch step and still routes to a small model.
Embedding modelReturns a dense vector, not an answer or a label. text-embedding-3-large supports similarity search and RAG grounding. If a stem asks for a category, an embedding alone is never the answer — a classifier still has to sit on top.
Foundry Tool vs Foundry ModelA Tool is a prebuilt capability with a maintained schema or classifier — Document Intelligence, Speech, Content Safety, Vision, AI Search. Choose a tool when the task is well-defined and the schema already exists; choose a model when the task is open-ended or nothing prebuilt covers it.
Placement: on-deviceData-egress rules, sovereignty, or genuinely offline sites are answered by running the model on the device (Foundry Local), not by picking a smaller cloud model. A small model in the cloud still sends the data off the device.

Read the answers once, then cover the right-hand column and reconstruct each one from the prompt. A useful answer names the requirement, the capability that satisfies it, and the nearest alternative it rejects. If you can only recognize the answer after seeing it, retrieval is not yet secure.

Ninety-second explanation

Without notes, explain:

  1. Which property of a task makes a small language model the right choice rather than a cheap frontier model?
  2. Why are reasoning tokens a cost concern even when the visible answer is short?
  3. When does model-router stop being worth its dispatch step?
  4. What kind of requirement overrides every capability argument?
  5. Give a task where a Foundry Tool beats a well-prompted frontier model, and say why.

Then check yourself against current Microsoft Learn. Record the missing decision rule, not merely the missed product name, in your error log.

Choose an appropriate model for each task, including LLMs, small language models, multimodal models, and Foundry Tools — quick retrieval

When to go deeper

Go deeper when a scenario turns on a specific limit, SKU capability, or preview status — those move, and a compact note cannot track them. Start from Foundry Models sold by Azure for the catalogue and availability, then the individual model's page for parameters.

Source and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026). Reviewed 2026-08-20. Microsoft Learn controls changing product contracts — availability, limits, preview status, naming, and retirement dates move, and this note is deliberately compact.

Lesson2,815 words

Choose appropriate memory, tool, and knowledge integration services for agent solutions

AI-103 › Unit 1: Plan and manage an Azure AI solution › Choose the appropriate Foundry services for generative AI and agents › Choose appropriate memory, tool, and knowledge integration services for agent solutions

Read full article

Choose appropriate memory, tool, and knowledge integration services for agent solutions

An agent is a model, a set of instructions, and a set of tools. This objective is about the third part and the stores behind it: how an agent reaches knowledge, how it remembers, and how it acts. The recurring error is collapsing several distinct mechanisms into one — usually "memory" — and discovering later that none of the requirements was actually met.

Why This Matters

Agent scenarios routinely bundle three or four requirements that sound like the same thing: recall what the user told us, answer from the corporate corpus, keep a record for audit, and call the ticketing API. Each is a different mechanism with different durability, scope, and governance.

Choosing wrongly is expensive in a specific way: the design appears to work. An agent given a knowledge base instead of memory will still answer questions — it simply will not remember the user's stated preference next month. An agent whose transcripts live only in telemetry will still be observable — it simply cannot satisfy a seven-year audit. These failures surface long after the design review.

There is also a governance dimension. The tool integration you choose decides who executes the code, whose identity the downstream system sees, and who can change the tool underneath you. Those are security decisions wearing the costume of an implementation detail.

Prerequisites

  • What an agent is: a model, instructions, and tools.
  • That the Responses API is the single entry point behind every agent type.
  • The difference between prompt agents (configuration only) and hosted agents (your code, run by Foundry).
  • Basic familiarity with vector search as a grounding mechanism.

Learning Objectives

By the end of this lesson you will be able to:

  1. Distinguish memory, conversation state, and knowledge and select each for its own requirement.
  2. Choose among File Search, the Azure AI Search tool, and a knowledge base for grounding.
  3. Select the correct tool type by asking who executes the call.
  4. Explain what a toolbox provides and why its versioning matters.
  5. Choose an authentication approach for a tool, including when On-Behalf-Of is required.

Building Blocks

Memory (preview). Durable recall of facts about the user across sessions. It is explicitly a preview capability — "some tools, including memory and web search, are in preview" — which means no SLA and not recommended for production. A readiness review must record that.

Conversation state. The record of what was said. store=false prevents service-side persistence; bring your own resources puts it in infrastructure you control, with "Azure Cosmos DB for conversation state" named for compliance and operational needs. Hosted agents additionally get session-level state persistence from the platform.

File Search. Augments an agent "with knowledge from uploaded files or proprietary documents by using vector search." For documents supplied to the agent, not for a governed corpus.

Azure AI Search tool. Grounds agents "with data from an existing Azure AI Search index." No re-ingestion; the owning team's tuning continues to apply.

Knowledge base (Foundry IQ). One or more knowledge sources with optional planning and synthesis, reusable across agents and permission-aware.

Tool types by executor. Built-in tools are executed by the service — web search, Code Interpreter, File Search, Azure AI Search, Azure Functions, function calling, plus preview entries such as Custom Code Interpreter, Image Generation, Browser Automation, Computer Use, Microsoft Fabric, and SharePoint. OpenAPI tools connect "to external HTTP APIs by using an OpenAPI 3.0 or 3.1 specification". Function calling defines functions where "your application executes the function and returns the result". MCP connects "to tools hosted on an MCP server endpoint… best for tools shared across multiple agents or maintained by a different team". A2A (preview) connects agents to other agents.

Toolbox. "Define a curated set of tools once, manage them centrally… and expose them through a single MCP-compatible endpoint. Any MCP-compatible agent runtime or client can consume a toolbox." It is the recommended way to give agents tools, and it is versioned: "create a new version, test it, and promote it to default when you're ready."

Structured inputs. Tool configuration such as vector_store_ids, container IDs, and MCP endpoints is fixed at agent creation by default; structured inputs "allow you to override these values at runtime without creating a new agent version".

Four stores, four jobs

Memory (preview)

Facts about the user

Recall must survive across sessions

Conversation state

The record of what was said

Retention, audit, or resuming matters

File Search

Files uploaded to the agent

A user hands the agent documents

Knowledge base

Governed collections

Several sources, planned and merged by the service

Deep Dive

Memory is not conversation state

These are the two most-confused mechanisms, and the distinction is about purpose, not storage.

Memory answers what should the agent recall and use? It is selective and durable — a user's stated dietary restriction told once in March should shape an answer in June. It is a preview capability.

Conversation state answers what was said? It is a complete record, and it exists for retention, audit, and resumption. Its governance question is where it lives: store=false for no service-side persistence, or bring-your-own Cosmos DB when the organization must own it.

The practical test: if the requirement mentions personalization, it is memory. If it mentions retention, audit, or regulators, it is conversation state. If it mentions both, you need both.

Three questions about state

  1. Don't persist it

    store=false — no service-side persistence of the conversation.

Grounding: match the shape of the corpus

Three mechanisms, distinguished by who owns the content and how many sources.

File Search is for content the agent is handed. It builds a vector store from uploaded files with no pipeline to run. The tell in a stem is a user uploading something during a conversation.

The Azure AI Search tool is for an index that already exists. The tell is language about existing investment — maintained, tuned, already indexed by the platform team. Re-uploading such a corpus through File Search duplicates it and discards the enrichment and relevance tuning that went into it.

A knowledge base is for several governed collections that must be planned and merged by the service. The tell is multiple sources plus an explicit statement that the application should not contain the planning logic.

A common wrong answer attaches several index tools to one agent for a multi-source requirement. That makes source selection a per-question tool choice by the model, so nothing merges or ranks across collections — the agent picks one source and answers from it.

Multi-tenancy without multiple agents

A recurring design problem: one agent definition, several tenants, each grounded in its own store. The naive answers are an agent version per tenant (multiplying maintenance) or a tenant name in the prompt (which cannot restrict what the retrieval tool searches).

Structured inputs solve it. Tool properties that support runtime override include file_search.vector_store_ids, code_interpreter.container and container.file_ids, and mcp.server_label, server_url, and headers. The documented use case is exactly this: "Different users need different vector stores or files based on their context."

Tool type follows the executor

The cleanest way to choose a tool type is to ask who runs the code.

  • The service runs it → a built-in tool.
  • An external HTTP API, already described by a specification → an OpenAPI tool. Rewriting the spec as hand-maintained wrappers throws away documentation someone else maintains.
  • Your own application runs itfunction calling.
  • Another team owns it, or several agents share itMCP.

Then toolbox sits above all of them as the recommended packaging: one curated set, one MCP endpoint, consumable by any MCP-compatible runtime regardless of framework. Its versioning is the operational payoff — a breaking change becomes a new version you test and then promote, rather than an edit that takes effect the moment it is saved.

Authentication decides whose permissions apply

Supported options are "key-based access, Microsoft Entra (using the agent's managed identity or the project's managed identity), OAuth identity passthrough (On-Behalf-Of), and unauthenticated access, where appropriate."

The decisive question is whose identity the downstream system sees. With a managed identity it is the agent or project — identical for every user, so a junior employee's query can return documents they are not entitled to, with nothing in the response revealing it. With OBO, the calling user's identity flows through and their own entitlements apply at the source.

Each agent can also hold a dedicated Microsoft Entra identity, "enabling secure, scoped access to resources and APIs without sharing credentials" — and for hosted agents this is "automatic, dedicated per agent."

Worked Examples

Example 1 — three requirements, three mechanisms. An agent must recall a user's stated preferences months later, answer from a 400,000-document corpus the company already indexes, and keep a durable conversation record for audit.

Memory for the preferences. The Azure AI Search tool for the existing index — no re-ingestion, tuning preserved. Bring-your-own Cosmos DB for conversation state. The tempting wrong answer uses tracing for the audit record; traces are telemetry, sampled and retained for diagnostics, and treating an observability sink as a system of record is how a retention obligation fails.

Example 2 — one agent, three tenants. Identical behaviour, per-tenant document stores, and no appetite for three agent definitions.

Structured inputs on file_search.vector_store_ids, supplied per request. An agent version per tenant triples the maintenance; three toolboxes attached simultaneously would give the agent access to all three stores at once, which is worse than the original problem.

Example 3 — two integrations, two tool types. The agent calls a partner REST API described by an OpenAPI 3.1 specification, and separately raises tickets through code the team owns and runs.

OpenAPI tool for the partner API — the specification already exists. Function calling for ticket creation, because "your application executes the function and returns the result." MCP would be right if the ticketing tool were shared across agents or owned by another team; here it is neither.

Visual Explanations

Choosing the integration:

Loading Diagram...
Figure 1 — Mermaid diagram

Packaging and identity around the tools:

Loading Diagram...
Figure 2 — Mermaid diagram

Common Mistakes

Using memory as a grounding corpus. It holds facts about the user, not a document collection.

Using conversation state for personalization, or memory for audit. Retention is not recall, and recall is not a record.

Re-uploading an already-indexed corpus through File Search. It duplicates content and discards tuning.

Attaching several index tools for a multi-source requirement. Cross-source ranking never happens.

Creating an agent version per tenant. Structured inputs exist precisely to avoid this.

Choosing MCP by default. It is best for tools shared across agents or owned by another team; for one external API with a spec, an OpenAPI tool is simpler.

Using a managed identity where the user's own permissions must apply. That returns the same results to everyone — use OBO.

Treating a preview tool as production-ready. Memory and web search are preview: no SLA.

Practice Exercises

  1. Distinguish memory from conversation state in one sentence each, and give the requirement wording that selects each.
  2. An agent must ground on four governed collections and the firm does not want planning logic in application code. What do you use, and what is wrong with attaching four index tools?
  3. One agent definition, three tenants, per-tenant vector stores. What mechanism, and which property does it override?
  4. An agent calls a partner API described by OpenAPI 3.1, and separately runs ticket-creation code the team owns. Name both tool types and the rule that decides.
  5. SharePoint answers must respect each signed-in user's permissions. Which authentication option, and what fails with a managed identity?
Answers
  1. Memory — durable recall of facts about the user across sessions; selected by wording about personalization or remembering a stated preference. Conversation state — the record of what was said; selected by wording about retention, audit, or regulators.
  2. A knowledge base, which plans, decomposes, retrieves in parallel, reranks, and merges. Four index tools push source selection into the model's per-question tool choice, so nothing merges or ranks across collections.
  3. Structured inputs, overriding file_search.vector_store_ids at runtime "without creating a new agent version".
  4. OpenAPI tool for the partner API (an external HTTP API already described by a specification) and function calling for tickets ("your application executes the function"). The rule: ask who runs the code.
  5. OAuth identity passthrough (On-Behalf-Of). A managed identity means the downstream system sees the agent or project, identical for every user — so results reflect the service's access, not the user's, and nothing in the response reveals it.

Summary & Concept Map

Agent integration is a set of small, sharp distinctions. Memory recalls facts about the user and is in preview. Conversation state is the record, and its governance question is where it lives. Grounding splits three ways by corpus ownership: files handed to the agent, an index that already exists, or several governed collections planned by the service. Tool type follows the executor — service, external API with a spec, your application, or another team — with toolbox as the recommended packaging and its versioning as the operational safeguard. And authentication is not plumbing: it decides whose permissions apply at the far end.

Loading Diagram...
Figure 3 — Mermaid diagram
Loading flashcards…

Sources and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026), reviewed 2026-08-20. Microsoft Learn controls every changing product contract — availability, preview status, quotas, limits, regional support, naming, and retirement dates all move independently of this lesson. Where a scenario turns on a specific number or a GA/preview boundary, confirm it against the product's own page before relying on it.

LO Quick Note949 words

Quick Note — Choose appropriate memory, tool, and knowledge integration services for agent solutions

AI-103 › Unit 1: Plan and manage an Azure AI solution › Choose the appropriate Foundry services for generative AI and agents › Choose appropriate memory, tool, and knowledge integration services for agent solutions

Read full article

Quick Note — Choose appropriate memory, tool, and knowledge integration services for agent solutions

An agent is asked to do three things: recall a user's stated preferences months later, answer from a corpus the platform team already indexes, and keep a durable record of every conversation for audit. A team that reaches for one mechanism — usually memory — satisfies none of them properly. These are three different stores with three different jobs, and the exam rewards telling them apart.

Retrieval target

Choose appropriate memory, tool, and knowledge integration services for agent solutions
Closed-book recall
5 minutes
Open Microsoft Learn after a miss

Decision anchors

PromptCompact answer
Memory toolDurable recall of facts about the user across sessions. In preview — no SLA, not recommended for production. Not a grounding corpus and not an audit record.
File SearchGrounds an agent in files uploaded to it, using vector search. Right for documents a user hands the agent; wrong for a governed enterprise corpus that already has a pipeline.
Azure AI Search toolGrounds agents "with data from an existing Azure AI Search index" — no re-ingestion, and the owning team's enrichment and relevance tuning keep applying. The answer whenever a stem says an index is already maintained.
Foundry IQ knowledge baseOne or more knowledge sources, an optional LLM for planning and synthesis, and retrieval parameters. Use it when several collections must be planned and merged by the service, and when grounding must be permission-aware.
Conversation stateThe record of what was said. Use bring your own resources — your own Azure Cosmos DB — when retention and control must sit with your organization. store=false is the different requirement: do not persist at all.
ToolboxA curated set of tools defined once and exposed through a single MCP-compatible endpoint, consumable by any MCP-compatible runtime. The recommended way to give agents tools. Versioned: create a version, test it, promote it to default.
Which tool typeBuilt-in — the service executes (web search, code interpreter, file search, Azure AI Search). OpenAPI tool — an external HTTP API with a specification. Function callingyour application executes and returns the result. MCP — tools shared across agents or owned by another team.

Read the answers once, then cover the right-hand column and reconstruct each one from the prompt. A useful answer names the requirement, the capability that satisfies it, and the nearest alternative it rejects. If you can only recognize the answer after seeing it, retrieval is not yet secure.

Ninety-second explanation

Without notes, explain:

  1. Distinguish memory from conversation state in one sentence each.
  2. A corpus is already indexed and tuned by another team — what do you attach, and why not File Search?
  3. What preview status must a readiness review record, and what follows from it?
  4. What does toolbox versioning let you do that editing a tool in place does not?
  5. Which knowledge-source kind supports per-user permission inheritance?

Then check yourself against current Microsoft Learn. Record the missing decision rule, not merely the missed product name, in your error log.

Loading flashcards…

When to go deeper

Go deeper when the design depends on agent identity and authentication for a tool — key-based, Microsoft Entra via managed identity, or OAuth On-Behalf-Of passthrough, which is what makes retrieval respect the calling user's own permissions.

Source and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026). Reviewed 2026-08-20. Microsoft Learn controls changing product contracts — availability, limits, preview status, naming, and retirement dates move, and this note is deliberately compact.

Lesson2,733 words

Choose the appropriate Foundry services for generative tasks, grounding, vector search, agent workflows, or multimodal processing

AI-103 › Unit 1: Plan and manage an Azure AI solution › Choose the appropriate Foundry services for generative AI and agents › Choose the appropriate Foundry services for generative tasks, grounding, vector search, agent workflows, or multimodal processing

Read full article

Choose the appropriate Foundry services for generative tasks, grounding, vector search, agent workflows, or multimodal processing

The previous objective asked which model. This one asks a broader question: which service owns each part of the solution. Most real builds decompose into three or four capabilities, and the architectural error is consolidation — pushing extraction, safety, and retrieval into one long prompt and accepting approximations where guarantees were available.

Why This Matters

A generative build is rarely one call. An expense-approval pipeline needs fields out of scanned receipts, a screen against injection attempts, and answers grounded in policy documents. Each of those has a service built for it, with a maintained contract behind it.

Consolidating them into a single prompted model produces three approximations. The extraction returns strings you must parse and normalize. The safety screen is an instruction competing for attention with everything else in the context. The grounding is whatever the model remembers. All three work in demos and degrade in ways that are hard to detect, because none of them fails loudly.

The reverse error is also real: reaching for an agent runtime, a knowledge base, and a toolbox when the requirement is one prompt and one answer. Every service you add is configuration, identity, cost, and a failure mode. Selection is about matching the requirement to the smallest set of services that carries the necessary guarantees.

The exam frames this as decomposition. A scenario lists three or four requirements in separate sentences, and the answer is the combination that satisfies each one with the service designed for it.

Prerequisites

  • The model families and the elimination order from the previous objective.
  • That Foundry Tools are prebuilt capabilities distinct from catalogue models.
  • Basic familiarity with retrieval as a concept: an index, a query, and ranked results.
  • The idea that an agent differs from a model call by deciding actions at runtime.

Learning Objectives

By the end of this lesson you will be able to:

  1. Map each common requirement — extraction, safety, retrieval, multimodal understanding, tool-calling — to the service that owns it.
  2. Distinguish Azure AI Search from Foundry IQ and explain how they relate.
  3. Decide when a workload needs Foundry Agent Service rather than a direct model call.
  4. Explain why the resource type you provision constrains which services are reachable.
  5. Choose between Document Intelligence and Content Understanding for a given extraction task.

Building Blocks

Azure AI Search. The retrieval and grounding engine. It supports "full-text, vector, hybrid, and multimodal queries over local (indexed) and remote content", provides AI enrichment to "chunk, vectorize, and otherwise make raw content searchable", and offers relevance tuning including the semantic ranker, synonym maps, filters, and faceted navigation. It ships two engines: classic search for single-index request-response queries, and agentic retrieval for multi-query, LLM-assisted planning.

Foundry IQ. Not a separate search product but "the managed knowledge layer that transforms enterprise content into reusable, permission-aware knowledge bases for agents", underpinned by Azure AI Search. An agent references a knowledge base for what to ground on; the knowledge base decides how.

Azure Document Intelligence in Foundry Tools. OCR and intelligent document processing — prebuilt models with schemas "defined and maintained by Microsoft", custom extraction and classification models, and layout analysis that returns tables, selection marks, and paragraph roles.

Azure Content Understanding. Processes "unstructured data of any type (image, documents, audio, video) and extracting structured insights based on pre-defined or user-defined formats". Its breadth across modalities is what distinguishes it.

Azure AI Content Safety. Four harm categories with severity ratings, Prompt Shields for direct and indirect attacks, protected material detection for text and code, and custom blocklists.

Azure Language and Azure Speech. Text analysis — PII detection, NER, language detection, text analytics for health as core capabilities — and the speech surface: real-time, fast, and batch transcription, text to speech, speech translation, and Voice Live.

Foundry Agent Service. The runtime for agents. "An agent can call tools, access external data, and make decisions across multiple steps to complete a task", and the Agent Runtime "manages conversations, tool calls, and agent lifecycle." Two agent types: prompt agents (configuration only, no code or compute to maintain) and hosted agents (your code, run by Foundry).

Which service owns which requirement

Retrieval and ranking

Azure AI Search

Full-text, vector, hybrid, multimodal queries; relevance tuning

Reusable grounding for agents

Foundry IQ

Permission-aware knowledge bases over one or more sources

Documents with a known schema

Document Intelligence

Typed field extraction, layout, OCR

Any modality into your shape

Content Understanding

Image, documents, audio, video → structured insight

Safety and injection

Content Safety

Harm categories, Prompt Shields, protected material, blocklists

Runtime decisions

Foundry Agent Service

Tool calls and multi-step action

Deep Dive

Grounding: three shapes, three answers

Grounding questions look alike and split on how many sources and who plans the search.

One index you already maintain. Attach the Azure AI Search tool, which grounds agents "with data from an existing Azure AI Search index." Nothing is copied or re-ingested, and the owning team's enrichment and relevance tuning keep applying. Any stem describing existing, tuned investment is testing whether you point at it rather than rebuild.

Files handed to the agent. Use File Search, which augments agents "with knowledge from uploaded files or proprietary documents by using vector search." This is for documents a user supplies during a conversation, not for a governed enterprise corpus.

Several governed collections, planned by the service. Use a knowledge base. Each query "undergoes planning, decomposition into focused subqueries, parallel retrieval from knowledge sources, semantic reranking, and results merging", and the response carries "an activity log and references" alongside the answer. The distinguishing property is that planning and merging happen in the service rather than in your application code.

The trap in this area is answering a multi-source requirement with several index tools attached to one agent. That pushes source selection into the model's per-question tool choice, so nothing ever merges or ranks across collections — the agent picks one and answers from it.

Reading a grounding requirement

  1. How many sources?

    One → index tool or File Search. Several → knowledge base.

Extraction: Document Intelligence or Content Understanding

Both extract structure from unstructured input, and they split on modality breadth and schema ownership.

Document Intelligence is documents and images, with a deep model family: prebuilt-read for text and searchable PDF, prebuilt-layout for tables, selection marks, and paragraph roles, and per-document-type prebuilt models whose field schemas Microsoft maintains. Its output is strongly typed — dates as dates, amounts as currency — which is why it fits pipelines feeding another system.

Content Understanding is broader: any modality, into "pre-defined or user-defined formats". It also offers standard and pro modes, where pro "is designed for advanced use cases that require multi-step reasoning and complex decision-making" and can reason over input content and reference data together.

Choose Document Intelligence when the input is documents and a maintained schema exists. Choose Content Understanding when the input spans modalities, or when the output shape is one you are defining, or when the task is a judgement rather than an extraction.

Agent or model call?

The line is definitional. "Unlike a simple chatbot that only generates text, an agent can call tools, access external data, and make decisions across multiple steps to complete a task." If nothing must be decided after the request arrives — one prompt, one answer — a direct model call is simpler, cheaper, and easier to reason about.

Requirements that genuinely indicate an agent: choosing among tools at runtime, acting and then reacting to the result, maintaining conversation state across turns, or coordinating other agents. Requirements that do not: schema-valid output (that is structured outputs on a plain call), safety screening (that is content filtering on the deployment), or low cost at volume (which argues against agent overhead).

The resource type constrains everything

A subtle but decisive planning point. "A Foundry resource provides unified access to models, agents, and tools" through a project endpoint of the form https://<resource-name>.services.ai.azure.com/api/projects/<project-name>. By contrast, "an Azure OpenAI resource provides only the /openai/v1 endpoint."

That means a team who provisioned an Azure OpenAI resource and later wants file search, code interpreter, or agents cannot get there by configuration — the surface is absent, not disabled. No client version, API version, or setting reaches an endpoint the resource does not have. Service selection therefore includes a provisioning decision made early and awkward to reverse.

Worked Examples

Example 1 — expense approval. Three requirements: key-value pairs from scanned receipts; screening for jailbreak and injection attempts; answers grounded in procurement policy with hybrid retrieval and semantic ranking.

Three requirements, three services: Document Intelligence (prebuilt-receipt, prebuilt-invoice), Content Safety (Prompt Shields plus harm filters), Azure AI Search (hybrid retrieval, semantic ranker). Options offering networking components, storage and analytics services, or perception tools mismatched to the tasks are testing whether you recognise the Foundry Tools surface at all.

Example 2 — a claims assistant. The team needs similarity search over product descriptions, and separately an assistant that decides which of several tools to call across a multi-step task.

Similarity search is Azure AI Search with vector queries — remembering that vectors are adopted for a reason: "LLMs and agents don't require vectors. Only use them if you need similarity search." The multi-step tool decision is Foundry Agent Service, because something must be decided at runtime. Neither service substitutes for the other: an agent uses retrieval, it does not provide it.

Example 3 — supplier evidence packs. Certificates, photographs of installed equipment, and recorded site interviews must be reduced to something an assistant can reason over, with specific values also going to a register.

The modality span decides it: Content Understanding, which handles image, documents, audio, and video. Document Intelligence would cover the certificates and photographs and not the interviews. And because two consumers need two shapes, the analyzer should emit both a readable representation for the assistant and typed fields for the register — from one analysis, not two.

Visual Explanations

Requirement to service:

Loading Diagram...
Figure 1 — Mermaid diagram

How the grounding pieces stack:

Loading Diagram...
Figure 2 — Mermaid diagram

Common Mistakes

Consolidating three requirements into one prompt. A prompt asks; a service guarantees. The failure is silent and shows up downstream.

Adding an agent runtime for a single-turn task. If nothing is decided after the request arrives, the runtime is overhead.

Attaching several index tools instead of a knowledge base. Source selection becomes a per-question tool choice, so cross-source ranking never happens.

Re-uploading a corpus that is already indexed. File Search is for files handed to the agent; an existing tuned index is reached with the Azure AI Search tool.

Assuming vectors are mandatory for grounding. They are adopted when you need similarity search, and they cost an embedding stage, storage, and pipeline.

Treating Content Understanding and Document Intelligence as interchangeable. They overlap on documents and diverge sharply on audio, video, and judgement tasks.

Provisioning an Azure OpenAI resource for a build that will need agents. Only /openai/v1 is served; agents and platform tools are unreachable by construction.

Practice Exercises

  1. A build needs invoice fields, injection screening, and hybrid retrieval over policy manuals. Name the three services and the property that selects each.
  2. A team already runs a tuned 400,000-document Azure AI Search index. An agent must use it. What do you attach, and why not File Search?
  3. Which requirement in a stem tells you an agent runtime is needed rather than a direct model call?
  4. An evidence pack contains PDFs, photographs, and recorded interviews. Which extraction service, and what rules out the alternative?
  5. A workload on an Azure OpenAI resource cannot attach code interpreter. Diagnose it.
Answers
  1. Document Intelligence (standard document types with maintained schemas and typed output), Content Safety (Prompt Shields for direct and indirect attacks), Azure AI Search (hybrid retrieval with a semantic ranker).
  2. The Azure AI Search tool, which grounds on an existing index — no re-ingestion, and the team's enrichment and tuning keep applying. File Search is for files uploaded to the agent and would duplicate a governed corpus.
  3. Something must be decided at runtime across multiple steps — choose a tool, act, read the result, decide again. Schema-valid output, safety screening, and low cost at volume do not indicate an agent.
  4. Content Understanding, because it processes "any type (image, documents, audio, video)". Document Intelligence covers the PDFs and photographs but not the recorded interviews.
  5. An Azure OpenAI resource provides only the /openai/v1 endpoint — agents and platform tools are absent, not disabled. Move to a Foundry resource and call the project endpoint.

Summary & Concept Map

Service selection is decomposition. Count the distinct requirements in the scenario, then name the service that owns each with a real guarantee behind it: Azure AI Search for retrieval and ranking, Foundry IQ for reusable permission-aware grounding, Document Intelligence for typed fields from documents, Content Understanding for any modality into a shape you define, Content Safety for harm and injection, and Foundry Agent Service when actions are decided at runtime. Resist both consolidation and sprawl — and remember that the resource type you provision decides which of these are reachable at all.

Loading Diagram...
Figure 3 — Mermaid diagram
Loading flashcards…

Sources and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026), reviewed 2026-08-20. Microsoft Learn controls every changing product contract — availability, preview status, quotas, limits, regional support, naming, and retirement dates all move independently of this lesson. Where a scenario turns on a specific number or a GA/preview boundary, confirm it against the product's own page before relying on it.

LO Quick Note901 words

Quick Note — Choose the appropriate Foundry services for generative tasks, grounding, vector search, agent workflows, or multimodal processing

AI-103 › Unit 1: Plan and manage an Azure AI solution › Choose the appropriate Foundry services for generative AI and agents › Choose the appropriate Foundry services for generative tasks, grounding, vector search, agent workflows, or multimodal processing

Read full article

Quick Note — Choose the appropriate Foundry services for generative tasks, grounding, vector search, agent workflows, or multimodal processing

An expense-approval build needs three things: fields out of scanned receipts, a screen for jailbreak attempts, and answers grounded in procurement policy. A team that reaches for one frontier model and a long prompt gets all three approximately. The same build assembled from Document Intelligence, Content Safety, and AI Search gets typed fields with a maintained schema, a purpose-built injection detector, and hybrid retrieval with a semantic ranker — three guarantees instead of three hopes.

Retrieval target

Choose the appropriate Foundry services for generative tasks, grounding, vector search, agent workflows, or multimodal processing
Closed-book recall
5 minutes
Open Microsoft Learn after a miss

Decision anchors

PromptCompact answer
Grounding and vector searchAzure AI Search — full-text, vector, hybrid, and multimodal queries; integrated vectorization generates embeddings in-pipeline; semantic ranker reorders by meaning. It also underpins Foundry IQ, the managed knowledge layer that turns enterprise content into reusable, permission-aware knowledge bases.
Structured extraction from documentsAzure Document Intelligence in Foundry Tools — prebuilt models (prebuilt-invoice, prebuilt-receipt, prebuilt-layout, prebuilt-read) with schemas defined and maintained by Microsoft, returning strongly typed values.
Any modality into a shape you defineAzure Content Understanding — processes "unstructured data of any type (image, documents, audio, video)" and extracts structured insights against pre-defined or user-defined formats.
Safety screeningAzure AI Content Safety — four harm categories, Prompt Shields for direct and indirect attacks, protected material detection, custom blocklists.
Agent workflowsFoundry Agent Service — the runtime that "manages conversations, tool calls, and agent lifecycle". Choose it when something must be decided at runtime: pick a tool, act, read the result, decide again. One prompt and one answer does not need it.
Resource type mattersA Foundry resource provides unified access to models, agents, and tools through a project endpoint. An Azure OpenAI resource provides only the /openai/v1 endpoint — no agents, no platform tools. Choosing the wrong resource type makes tools unreachable by configuration, not by setting.

Read the answers once, then cover the right-hand column and reconstruct each one from the prompt. A useful answer names the requirement, the capability that satisfies it, and the nearest alternative it rejects. If you can only recognize the answer after seeing it, retrieval is not yet secure.

Ninety-second explanation

Without notes, explain:

  1. Which service provides hybrid retrieval, and what does the semantic ranker add on top?
  2. What distinguishes Content Understanding from Document Intelligence?
  3. Which requirement in a stem tells you an agent runtime is needed rather than a model call?
  4. Why can a build on an Azure OpenAI resource fail to attach file search or code interpreter?
  5. What is Foundry IQ, and what does permission-aware buy you?

Then check yourself against current Microsoft Learn. Record the missing decision rule, not merely the missed product name, in your error log.

Choose the appropriate Foundry services for generative tasks, grounding, vector search, agent workflows, or multimodal processing — quick retrieval

When to go deeper

Go deeper when the choice depends on a service's current preview status or regional availability — agentic retrieval carries region restrictions that classic search does not. Start from Introduction to Azure AI Search and the Foundry Tools overviews.

Source and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026). Reviewed 2026-08-20. Microsoft Learn controls changing product contracts — availability, limits, preview status, naming, and retirement dates move, and this note is deliberately compact.

Lesson2,891 words

Apply responsible AI instrumentation, including evaluators, safety evaluations, and explanation tooling

AI-103 › Unit 1: Plan and manage an Azure AI solution › Implement responsible AI across generative AI and agentic systems › Apply responsible AI instrumentation, including evaluators, safety evaluations, and explanation tooling

Read full article

Apply responsible AI instrumentation, including evaluators, safety evaluations, and explanation tooling

Filters block content at runtime. Evaluation tells you whether the system was going to produce that content in the first place — and whether it still behaves the way it did last month. This objective is about the measurement side of responsible AI: which evaluator answers which question, when in the lifecycle you run it, and what an adversarial probe adds that a scored dataset cannot.

Why This Matters

Three ideas separate people who pass this objective from people who guess.

Evaluators are not interchangeable. Each answers one specific question, and the giveaway is what it needs as input. An evaluator that requires ground truth cannot be used where no reference answer exists. One that compares response to retrieved context is not measuring correctness against the world.

Safety measurement is not the same as safety filtering. A filter blocks the output that already exists. A safety evaluation or a red-team run tells you the propensity — how often, under what provocation, and in which category — before real users find out.

Instrumentation is lifecycle-shaped. The same evaluator means different things at model selection, in pre-production, and against live traffic. Post-production adds two modes people confuse constantly: continuous evaluation on sampled production traffic, and scheduled evaluation against a fixed dataset.

Prerequisites

  • What an evaluator is: a scorer that takes a query, response, and possibly context or ground truth.
  • The difference between an AI-assisted evaluator (a judge model) and a computed metric.
  • That groundedness means supported by supplied context, not true in general.
  • Basic familiarity with tracing and Application Insights from the observability objective.

Learning Objectives

By the end of this lesson you will be able to:

  1. Select an evaluator from a stated requirement, using its required inputs as the discriminator.
  2. Distinguish Groundedness from Groundedness Pro, and know which needs no model deployment.
  3. Apply the agent evaluators to tool-using systems.
  4. Set evaluation_level correctly and respect the no-mixing rule.
  5. Choose between continuous and scheduled evaluation, and say when red teaming is the right instrument.

Building Blocks

The three lifecycle stages. Evaluation runs at base model selection (benchmarks and leaderboards to shortlist), pre-production (your own datasets, adversarial simulation, red teaming before release), and post-production (operational metrics, continuous evaluation, scheduled evaluation, scheduled red teaming, alerts).

Evaluator families.

FamilyAnswersNotable members
General purposeIs the response well-formed and on point?Coherence, Fluency, Relevance, Response Completeness
Textual similarityHow close to a reference?F1, BLEU, ROUGE, METEOR, GLEU, Similarity
RAGDid retrieval and grounding work?Retrieval, Document Retrieval, Groundedness, Groundedness Pro
Risk and safetyCould this cause harm?Violence, Sexual, Self-harm, Hate and unfairness, Indirect attack, Protected material, Code vulnerability, Ungrounded attributes
AgentDid the agent act correctly?Intent Resolution, Task Adherence, Task Completion, Task Navigation Efficiency, Tool Call Accuracy, Tool Selection, Tool Input Accuracy, Tool Output Utilization, Tool Call Success
Rubric (preview)Does it meet my written criteria?Rubric-based scoring
Azure OpenAI gradersCustom judging primitivesModel Labeler, String Checker, Text Similarity, Model Scorer

The two groundedness evaluators. Groundedness is AI-assisted, scores 1–5, and "requires a model deployment to act as a judge". Groundedness Pro (preview) is "powered by Azure AI Content Safety", returns a binary pass/fail with reasoning, and — the exam-relevant point — does not require a model deployment.

Document Retrieval versus Retrieval. Document Retrieval measures retrieval quality using ground truth labels — it needs a labelled reference set. Retrieval assesses "how well the retrieved chunks address the query" without one.

Evaluation level. evaluation_level accepts "turn" (the default — each exchange scored separately) or "conversation" (the thread as a whole). You cannot mix levels in a single run; a run is one level or the other.

AI Red Teaming Agent. Built on PyRIT, it "runs automated scans for content safety risks", "simulates adversarial probing", and produces scorecards over risk categories and attack strategies, so teams can measure risk before deployment. It can also be scheduled post-production.

Cluster analysis. Groups failing cases so you see the pattern rather than a list of individual low scores — the difference between "score fell 4%" and "this class of query fails".

Continuous, scheduled, and red teaming

Input

Sampled production traffic

A fixed test dataset

Generated adversarial probes

Answers

How is the live system doing right now?

Has behaviour drifted?

What can be provoked out of it?

Controls the variable

No — traffic changes

Yes — inputs are held constant

By category and strategy

Built on

Evaluators over traces

Evaluators over a dataset

PyRIT

Deep Dive

Picking an evaluator by its inputs

The reliable way to choose is to ask what the evaluator must be handed.

Nothing but the response — Coherence, Fluency. Useful for form, silent about truth.

Response plus the query — Relevance, Response Completeness, Intent Resolution.

Response plus retrieved context — Groundedness, Groundedness Pro, Retrieval. These answer "is this supported by what we gave it", which is the only question a RAG stack can honestly ask without a reference set.

A reference answer — the similarity family, and Document Retrieval. If the scenario says no labelled data exists, these are eliminated immediately.

Tool definitions and the call trace — the agent family.

That last family repays a closer look, because its members are more finely divided than most people expect. Tool Selection asks whether the right tool was chosen; Tool Input Accuracy asks whether the arguments passed to it were correct; Tool Output Utilization asks whether the agent actually used what came back; Tool Call Success asks whether the call succeeded. An agent that picks the right tool, passes a malformed argument, and then ignores the error is failing three distinct evaluators — and a scenario describing exactly that behaviour is naming one of them.

Choosing an evaluator from a requirement

  1. Name the failure being described

    Wrong tool? Unsupported claim? Repetitive text? Ignored instruction?

Groundedness, Groundedness Pro, and the deployment constraint

Both evaluate the same property — is the response supported by the supplied context — and differ in mechanism and output.

Groundedness is AI-assisted. A judge model scores 1–5, giving a graded signal that suits tracking a number over time. It requires a model deployment.

Groundedness Pro is preview, powered by Azure AI Content Safety, returns binary pass/fail with reasoning, and requires no model deployment. That last point is the discriminator: a scenario that rules out deploying a judge — cost, region, governance — is pointing at Pro. A scenario that wants a graded trend line is pointing at the 1–5 evaluator.

The common error is treating groundedness as factuality. It is not. A response perfectly grounded in a wrong document scores well. Groundedness measures fidelity to the context; correctness of the context is a retrieval and content problem.

Turn against conversation, and the rule you cannot break

evaluation_level defaults to "turn", scoring each exchange independently. "conversation" scores the thread as a whole, which is what you need for properties that only exist across turns — did the agent stay on task, did it carry constraints forward, did it resolve the intent by the end.

The rule to remember: you cannot mix evaluation levels in a single run. A requirement to score both per-turn quality and whole-conversation adherence means two runs, not one run with mixed settings. Answer options offering a single run with both are testing exactly this.

What red teaming adds that datasets cannot

A dataset measures behaviour on inputs you thought of. Red teaming measures behaviour on inputs an adversary thinks of.

The AI Red Teaming Agent is built on PyRIT and automates the probing: it generates adversarial prompts across risk categories, applies attack strategies, and returns a scorecard so results are comparable between runs and across model versions. Because it is scriptable it belongs in the pre-production gate, and because risk can reappear with a model or prompt change it also belongs on a schedule in production.

Note what it is not. It does not replace filters — it tells you what the filters and system prompt are letting through. And it does not replace safety evaluators on ordinary traffic: an application can be adversarially robust and still produce harmful output on innocuous prompts.

Explanation tooling: from a score to a cause

A quality number tells you something changed; it does not tell you what. Three instruments turn scores into causes.

Traces show the actual path — which tool ran, with what input, what came back, how long each span took. When an evaluator flags a response, the trace is where you find out whether the model reasoned badly or the retrieval returned nothing.

Cluster analysis groups similar failures so a pattern emerges. Fifty scattered low scores are noise; fifty low scores that all involve a date range are a defect with an address.

Evaluator reasoning — Groundedness Pro's pass/fail carries reasoning, and the AI-assisted evaluators explain their score. That text is often the fastest route to the cause.

Used together, the loop is: an alert or a scheduled run flags a drop, cluster analysis names the failing class, traces expose the mechanism, and a targeted dataset confirms the fix.

Worked Examples

Example 1 — no reference answers. A support assistant must be measured for whether answers are supported by the retrieved knowledge base. No labelled answer set exists, and governance forbids deploying an extra judge model.

Groundedness Pro — it evaluates support against context, returns binary pass/fail with reasoning, and requires no model deployment. Plain Groundedness needs a judge; the similarity family and Document Retrieval need ground truth that does not exist.

Example 2 — the agent that ignores its own tool. An agent calls the correct pricing tool, passes a malformed date range, and then answers as if the error had not happened.

Three agent evaluators name three distinct faults: Tool Selection passes, Tool Input Accuracy fails on the malformed argument, Tool Output Utilization fails because the returned error was ignored. Tool Call Success captures whether the call itself succeeded. Naming the specific evaluator matters more than concluding "the agent is wrong".

Example 3 — drift after a model upgrade. A team must detect behaviour change after a version change, and separately watch live quality.

Scheduled evaluation against a fixed dataset isolates the model as the variable — the inputs are held constant, so a score change is attributable. Continuous evaluation on sampled production traffic covers live quality but cannot separate model change from traffic change. Both, for different questions.

Visual Explanations

Evaluator choice as a function of available inputs:

Loading Diagram...
Figure 1 — Mermaid diagram

The post-production loop:

Loading Diagram...
Figure 2 — Mermaid diagram

Common Mistakes

Treating groundedness as factual correctness. It measures support by the supplied context.

Choosing Groundedness when a judge deployment is excluded. Pro requires none.

Choosing Document Retrieval without ground truth. It needs labels; Retrieval does not.

Collapsing the agent evaluators into one. Selection, input accuracy, output utilization, and call success are distinct.

Mixing turn and conversation levels in one run. Not permitted — run twice.

Using continuous evaluation to detect drift. Sampled traffic changes underneath you; drift needs a fixed dataset.

Treating red teaming as a substitute for filters or safety evaluators. It measures what they let through.

Scoping safety evaluation to sensitive-sounding applications only.

Practice Exercises

  1. Distinguish Groundedness from Groundedness Pro on three axes, and say which is chosen when deploying a judge is ruled out.
  2. Which evaluators require ground truth?
  3. An agent picks the right tool, sends a bad argument, and ignores the error. Name the evaluator for each fault.
  4. State the evaluation_level values and the rule about combining them.
  5. Why does drift detection require a fixed dataset rather than sampled traffic?
Answers
  1. Mechanism — AI-assisted judge against Azure AI Content Safety. Output1–5 against binary pass/fail with reasoning. Requirement — Groundedness requires a model deployment; Groundedness Pro does not, which is why Pro is the answer when a judge is excluded.
  2. The similarity family (F1, BLEU, ROUGE, METEOR, GLEU, Similarity) and Document Retrieval. Retrieval does not — it assesses how well retrieved chunks address the query.
  3. Tool Selection passes. Tool Input Accuracy fails on the malformed argument. Tool Output Utilization fails because the returned error was not used. Tool Call Success records whether the call itself succeeded.
  4. "turn" (the default, per-exchange) and "conversation" (whole thread). You cannot mix levels in a single run — measuring both means two runs.
  5. Because the inputs must be held constant for a score change to be attributable to the system. Sampled production traffic changes with user behaviour, so a shift cannot be separated from a change in what is being asked.

Summary & Concept Map

Responsible AI instrumentation is evaluator selection plus lifecycle placement. Choose evaluators by required inputs: no ground truth eliminates the similarity family and Document Retrieval; support-by-context is groundedness, where Pro needs no judge deployment and returns binary pass/fail while the AI-assisted evaluator scores 1–5; tool-using systems get the agent family, whose members separate selection, input accuracy, output utilization, and call success. Set evaluation_level to turn or conversation and never mix them in one run. In production, continuous evaluation watches sampled live traffic while scheduled evaluation on a fixed dataset is what detects drift, scheduled red teaming on PyRIT probes what filters let through, and cluster analysis plus traces turn a score into a cause.

Loading Diagram...
Figure 3 — Mermaid diagram
Loading flashcards…

Sources and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026), reviewed 2026-08-20. Microsoft Learn controls every changing product contract — availability, preview status, quotas, limits, regional support, naming, and retirement dates all move independently of this lesson. Where a scenario turns on a specific number or a GA/preview boundary, confirm it against the product's own page before relying on it.

Lesson2,795 words

Configure safety filters, guardrails, risk detection, and content moderation

AI-103 › Unit 1: Plan and manage an Azure AI solution › Implement responsible AI across generative AI and agentic systems › Configure safety filters, guardrails, risk detection, and content moderation

Read full article

Configure safety filters, guardrails, risk detection, and content moderation

Content filtering is one of the few areas of Foundry with meaningful defaults, and most exam questions here turn on knowing exactly what those defaults are. Some protections are on out of the box; one important one is off; and the direction in which you are allowed to weaken them is asymmetric.

Why This Matters

Three properties make the defaults worth memorising rather than reasoning about.

A safe default is not a complete default. Harm-category filtering applies without configuration, but the shield covering instructions hidden in retrieved documents is off unless you enable it. A team running on defaults is protected against the attack that arrives in the user's prompt and exposed to the one that arrives in a supplier's PDF.

Weakening is gated in one direction only. Making filters stricter is self-service; turning them off on completions requires approval. That asymmetry tells you which direction the platform considers risky.

Two severity scales coexist. The content filtering system classifies into four levels — safe, low, medium, high — and you set a threshold there. The Content Safety API returns numeric severities that differ by modality. Questions frequently hinge on which surface is being described.

Prerequisites

  • That a content filter is a configuration object applied to a model deployment.
  • The difference between a prompt (input) and a completion (output).
  • What prompt injection is, and that content can arrive from retrieved documents as well as from a user.
  • That filters are created at the resource level and associated with deployments.

Learning Objectives

By the end of this lesson you will be able to:

  1. State the default filtering configuration and what it covers.
  2. Distinguish direct and indirect Prompt Shields, including their differing defaults.
  3. Configure thresholds, annotate-only, and blocklists, and know which changes need approval.
  4. Distinguish the content filtering severity levels from the Content Safety API scales.
  5. Apply a filter to a deployment, and override it per request.

Building Blocks

The four harm categories. Content Safety "recognizes four distinct categories of objectionable content": Hate and Fairness (Hate), Sexual, Violence, Self-Harm (SelfHarm). "Classification can be multi-labeled" — one sample can be both Sexual and Violence. The harm-categories table also lists Task Adherence, which "helps ensure AI Agents consistently behave in alignment with user instructions and task objectives", identifying "misaligned tool invocations, improper tool input or output relative to user intent".

The default configuration. "The content filtering system… uses an ensemble of multi-class classification models to detect four categories of harmful content (violence, hate, sexual, and self-harm) at four severity levels respectively (safe, low, medium, and high)… The default content filtering configuration is set to filter at the medium severity threshold for all four content harms categories for both prompts and completions."

Configurability. All customers can set thresholds to Low, medium, high (strictest), Medium, high, or High only, separately for prompts and completions. No filters and Annotate only are available for prompts, and for completions "If approved" — "Approval is required for turning the content filters partially or fully off on completions."

The other filters, with their defaults.

FilterStatusDefaultApplies to
Prompt Shields for direct attacks (jailbreak)GAOnUser prompt
Prompt Shields for indirect attacksGAOffUser prompt
Protected material — codeGAOnCompletion
Protected material — textGAOnCompletion
GroundednessPreviewOffCompletion
PIIPreviewOffCompletion

Blocklists. "You can apply a blocklist as either an input or output filter, or both… Select one or more blocklists from the dropdown, or use the built-in profanity blocklist. You can combine multiple blocklists into the same filter."

Scope and application. "Content filters can be configured at the resource level. Once a new configuration is created, it can be associated with one or more deployments." A per-request override exists: the x-policy-id header, where "the request-level content filtering configuration will override the deployment-level configuration, for the specific API call" — though it "is not available for image input (chat with images) scenarios."

The API severity scales. Text — "supports the full 0-7 severity scale… If the user specifies, it can return severities in the trimmed scale of 0, 2, 4, and 6." Image — "supports the trimmed version… The classifier only returns severities 0, 2, 4, and 6." Image with text (multimodal) — "supports the full 0-7 severity scale."

Direct against indirect Prompt Shields

Where the payload arrives

The user's own prompt

Content the system ingests

Who is attacking

The user

A third party

Status

GA

GA

Default

On

Off — you must enable it

Requires

Document embedding and formatting

Deep Dive

The exposure hiding in the defaults

The single most examinable fact in this objective is that indirect-attack Prompt Shields is off by default.

The two shields address different threats. The direct-attack shield "filters / annotates user prompts that might present a Jailbreak Risk" — the user themselves trying to break the system. The indirect-attack shield covers "Indirect Attacks, also referred to as Indirect Prompt Attacks or Cross-Domain Prompt Injection Attacks, a potential vulnerability where third parties place malicious instructions inside of documents that the generative AI system can access and process."

Any RAG or agent system ingests third-party content — supplier PDFs, web pages, email, tool responses. On a default configuration, that entire surface is unprotected while something called "Prompt Shields" is switched on, which is exactly why the misconception survives.

Enabling it has a prerequisite worth knowing: the indirect shield "Requires: Document embedding and formatting", so the documents must be presented in the documented structure for the service to distinguish content from instructions.

Thresholds, and the asymmetry of weakening

Threshold configuration is straightforward: pick which severities are filtered, separately for prompts and completions. "Content detected at the 'safe' severity level is labeled in annotation output but isn't subject to filtering and isn't configurable."

What matters is the governance asymmetry. Tightening — moving from medium, high to low, medium, high — is self-service. Loosening on completions to No filters or Annotate only "requires approval", available through the Limited Access Review for modified content filters.

Annotate only is worth understanding as a distinct mode rather than a synonym for off: it "runs the respective model and returns annotations via API response, but it will not filter content." That makes it the right choice when you need to measure prevalence before enforcing, or when an application wants to make its own decision from the annotation.

Creating and applying a filter

  1. Create at the resource

    Filters are resource-level configurations, not deployment settings.

Two severity vocabularies

Confusing these produces confidently wrong answers.

The content filtering system — the thing you configure on a deployment — classifies into four levels: safe, low, medium, high. You set the threshold in those terms.

The Content Safety API — called directly — returns numeric severities, and the range depends on modality. Text supports the full 0–7 scale, optionally returning a trimmed 0/2/4/6 where "each two adjacent levels are mapped to a single level". Image supports only the trimmed scale, returning nothing but 0, 2, 4 and 6. Multimodal — image with text — supports the full 0–7.

The image restriction is the detail most often tested, and the reasoning trap is assuming the ceiling was lowered. It was not: multimodal returns 7, so nothing is being reserved. The image model simply reports at coarser resolution.

Blocklists: the enumerable case

A blocklist matches terms you can name in advance, and can be applied as an input filter, an output filter, or both, with multiple blocklists combined into one filter and a built-in profanity list available.

That makes it exactly right for a defined, enumerable set — a partner's prohibited symbol list, a set of internal identifiers that must never appear in output — and exactly wrong for an open-ended behaviour where an adversary chooses the wording. The general rule: if you can write the list down, a blocklist fits; if the attacker picks the phrasing, you need a detector.

Where filters live, and the request override

Filters are created at the resource level and associated with one or more deployments. The association is the step that changes behaviour, and skipping it is the classic mistake — a carefully built configuration that is not attached affects nothing, and testing in the playground then measures the default policy.

For cases needing per-call variation, the x-policy-id request header names a custom configuration and overrides the deployment-level one for that call. Two caveats: a configuration that does not exist returns InvalidContentFilterPolicy, and the override "is not available for image input (chat with images) scenarios", where the default filter is used.

Worked Examples

Example 1 — a poisoned supplier document. A RAG assistant summarizes supplier PDFs. One contains hidden text instructing the model to reveal its system prompt. The deployment uses the default filter configuration.

Prompt Shields for indirect attacks is off by default and must be enabled; the direct-attack shield is on but inspects the user's prompt, which never contained the payload. Harm categories do not apply — an instruction to disclose a prompt is not hate, sexual, violence, or self-harm content. A blocklist cannot anticipate the attacker's wording.

Example 2 — a surprised safety team. A platform screens uploaded images and finds the API returns only 0, 2, 4 and 6, while its text pipeline returns a finer scale.

The image model supports only the trimmed scale; text supports the full 0–7 and can optionally return trimmed. Multimodal supports the full range, so nothing is reserved for it — the image classifier simply reports at coarser resolution.

Example 3 — brand symbols and provenance. Partners require that a defined set of prohibited symbols never appears, and that generated images can later be shown to be machine-generated.

A custom blocklist for the enumerable symbol list, applied to the output filter. Content Credentials for provenance. Harm categories cannot be extended with a partner list, and protected material detects known copyrighted content, which is a different question from provenance.

Visual Explanations

What the defaults cover, and what they leave open:

Loading Diagram...
Figure 1 — Mermaid diagram

Two severity vocabularies:

Loading Diagram...
Figure 2 — Mermaid diagram

Common Mistakes

Assuming Prompt Shields covers retrieved content by default. The indirect shield is off.

Expecting harm categories to catch injection. They classify harmful content, not instructions.

Treating annotate-only as off. It runs the model and returns annotations without filtering.

Believing loosening is symmetric with tightening. Turning filters off on completions requires approval.

Confusing the four filtering levels with the API's numeric scale. And within the API, assuming image supports 0–7.

Creating a filter and not associating it with a deployment. The association changes behaviour.

Using a blocklist against an adversary who chooses the wording. Blocklists fit enumerable sets.

Reaching for Prompt Shields to stop a leak. Shields are inbound; leakage is an output concern.

Practice Exercises

  1. State the default filtering configuration precisely — categories, threshold, and which directions.
  2. A supplier PDF carries hidden instructions. Which control, what is its default, and why does the other shield not help?
  3. Which filter changes require approval, and in which direction?
  4. The image API returns only 0, 2, 4, 6. Explain, and say what multimodal returns.
  5. A partner supplies a list of prohibited symbols and separately wants provenance on generated images. Name both controls.
Answers
  1. Four categories (violence, hate, sexual, self-harm) filtered at the medium severity threshold, on both prompts and completions — so content at medium or high is filtered while low and safe are not.
  2. Prompt Shields for indirect attacks, which is GA but Off by default and requires document embedding and formatting. The direct-attack shield is on but inspects the user's prompt; the payload arrived in ingested content it never sees.
  3. Turning content filters partially or fully off on completions — including Annotate only for completions. Making filters stricter is self-service.
  4. The image model supports only the trimmed scale (0, 2, 4, 6). Text supports the full 0–7 with trimming optional, and image with text (multimodal) supports the full 0–7 — so nothing is being reserved for multimodal.
  5. A custom blocklist (enumerable terms, applied to the output filter) and Content Credentials for provenance. Protected material is about known copyrighted content, not provenance.

Summary & Concept Map

Content moderation in Foundry is a defaults question first. Four harm categories are filtered at medium on both prompts and completions without configuration; direct-attack Prompt Shields and protected material for text and code are on; indirect-attack Prompt Shields, groundedness, and PII are off — and the indirect shield is the gap that matters for any system ingesting third-party content. Tightening is self-service and loosening completions needs approval. Filters are resource-level objects that only take effect once associated with a deployment, with x-policy-id for per-request overrides. And keep the two severity vocabularies apart: four named levels where you set thresholds, numeric scales at the API where image returns only the trimmed 0/2/4/6.

Loading Diagram...
Figure 3 — Mermaid diagram
Loading flashcards…

Sources and freshness

Written against current Microsoft Learn documentation for the AI-103 skills measured (16 April 2026), reviewed 2026-08-20. Microsoft Learn controls every changing product contract — availability, preview status, quotas, limits, regional support, naming, and retirement dates all move independently of this lesson. Where a scenario turns on a specific number or a GA/preview boundary, confirm it against the product's own page before relying on it.

More Study Notes (58)

Govern agent behavior with oversight modes, constraints, and tool-access controls

AI-103 › Unit 1: Plan and manage an Azure AI solution › Implement responsible AI across generative AI and agentic systems › Govern agent behavior with oversight modes, constraints, and tool-access controls

2,863 words

Implement auditing through trace logging, provenance metadata, and approval workflows

AI-103 › Unit 1: Plan and manage an Azure AI solution › Implement responsible AI across generative AI and agentic systems › Implement auditing through trace logging, provenance metadata, and approval workflows

2,624 words

Configure security including managed identity, private networking, keyless credentials, and role policies

AI-103 › Unit 1: Plan and manage an Azure AI solution › Manage, monitor, and secure AI systems › Configure security including managed identity, private networking, keyless credentials, and role policies

2,695 words

Manage quotas, scaling, rate limits, and cost footprints for model and agent workloads

AI-103 › Unit 1: Plan and manage an Azure AI solution › Manage, monitor, and secure AI systems › Manage quotas, scaling, rate limits, and cost footprints for model and agent workloads

2,663 words

Monitor data ingestion quality, search index health, and relevance performance

AI-103 › Unit 1: Plan and manage an Azure AI solution › Manage, monitor, and secure AI systems › Monitor data ingestion quality, search index health, and relevance performance

2,552 words

Monitor model performance, drift, safety events, and grounding quality

AI-103 › Unit 1: Plan and manage an Azure AI solution › Manage, monitor, and secure AI systems › Monitor model performance, drift, safety events, and grounding quality

2,601 words

Choose appropriate deployment options

AI-103 › Unit 1: Plan and manage an Azure AI solution › Set up AI solutions in Foundry › Choose appropriate deployment options

2,430 words

Configure model and agent deployments

AI-103 › Unit 1: Plan and manage an Azure AI solution › Set up AI solutions in Foundry › Configure model and agent deployments

2,761 words

Design Azure infrastructure for AI apps and agent-based solutions

AI-103 › Unit 1: Plan and manage an Azure AI solution › Set up AI solutions in Foundry › Design Azure infrastructure for AI apps and agent-based solutions

2,689 words

Integrate Foundry projects with CI/CD pipelines

AI-103 › Unit 1: Plan and manage an Azure AI solution › Set up AI solutions in Foundry › Integrate Foundry projects with CI/CD pipelines

2,637 words

Build agents that integrate retrieval, function-calling, and conversation memory

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build agents by using Foundry › Build agents that integrate retrieval, function-calling, and conversation memory

2,865 words

Build autonomous or semiautonomous workflows with safeguards and approval flow controls

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build agents by using Foundry › Build autonomous or semiautonomous workflows with safeguards and approval flow controls

2,613 words

Define agent roles, goals, conversation-tracking approach, and tool schemas

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build agents by using Foundry › Define agent roles, goals, conversation-tracking approach, and tool schemas

2,862 words

Implement orchestrated multi-agent solutions

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build agents by using Foundry › Implement orchestrated multi-agent solutions

2,638 words

Integrate agent tools, including APIs, knowledge stores, search, content understanding, and custom functions

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build agents by using Foundry › Integrate agent tools, including APIs, knowledge stores, search, content understanding, and custom functions

2,770 words

Integrate monitoring into deployed agents, evaluate agent behavior, and perform error analysis

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build agents by using Foundry › Integrate monitoring into deployed agents, evaluate agent behavior, and perform error analysis

2,715 words

Configure an application to connect to a Foundry project

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build generative applications by using Foundry › Configure an application to connect to a Foundry project

2,523 words

Deploy and consume LLMs, small models, code models, and multimodal models

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build generative applications by using Foundry › Deploy and consume LLMs, small models, code models, and multimodal models

2,635 words

Design workflows, tool-augmented flows, and multistep reasoning pipelines

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build generative applications by using Foundry › Design workflows, tool-augmented flows, and multistep reasoning pipelines

2,571 words

Evaluate models and apps, including detecting fabrications, relevance, quality, and safety

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build generative applications by using Foundry › Evaluate models and apps, including detecting fabrications, relevance, quality, and safety

2,678 words

Implement retrieval-augmented generation (RAG) in an application

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build generative applications by using Foundry › Implement retrieval-augmented generation (RAG) in an application

2,747 words

Integrate generative workflows into applications by using Foundry SDKs and connectors

AI-103 › Unit 2: Implement generative AI and agentic solutions › Build generative applications by using Foundry › Integrate generative workflows into applications by using Foundry SDKs and connectors

2,693 words

Implement model reflection, chain-of-thought evaluations, and self-critique loops

AI-103 › Unit 2: Implement generative AI and agentic solutions › Optimize and operationalize generative AI systems › Implement model reflection, chain-of-thought evaluations, and self-critique loops

2,693 words

Orchestrate multiple models, flows, or hybrid LLM and rules engines

AI-103 › Unit 2: Implement generative AI and agentic solutions › Optimize and operationalize generative AI systems › Orchestrate multiple models, flows, or hybrid LLM and rules engines

2,646 words

Set up observability by implementing tracing, token analytics, safety signals, and latency breakdowns

AI-103 › Unit 2: Implement generative AI and agentic solutions › Optimize and operationalize generative AI systems › Set up observability by implementing tracing, token analytics, safety signals, and latency breakdowns

2,625 words

Tune generation behavior, such as prompt engineering and adjusting model parameters

AI-103 › Unit 2: Implement generative AI and agentic solutions › Optimize and operationalize generative AI systems › Tune generation behavior, such as prompt engineering and adjusting model parameters

2,698 words

Configure image-editing workflows, including inpainting, mask-based edits, and prompt-driven modifications

AI-103 › Unit 3: Implement computer vision solutions › Design and implement image- and video-generation solutions › Configure image-editing workflows, including inpainting, mask-based edits, and prompt-driven modifications

2,607 words

Implement a solution that generates images from text prompts and reference media

AI-103 › Unit 3: Implement computer vision solutions › Design and implement image- and video-generation solutions › Implement a solution that generates images from text prompts and reference media

2,488 words

Implement a solution that generates videos from text prompts and reference media

AI-103 › Unit 3: Implement computer vision solutions › Design and implement image- and video-generation solutions › Implement a solution that generates videos from text prompts and reference media

2,776 words

Implement workflows to edit generated videos

AI-103 › Unit 3: Implement computer vision solutions › Design and implement image- and video-generation solutions › Implement workflows to edit generated videos

2,657 words

Select and apply appropriate generation and editing controls provided by the platform

AI-103 › Unit 3: Implement computer vision solutions › Design and implement image- and video-generation solutions › Select and apply appropriate generation and editing controls provided by the platform

2,596 words

Build a solution that analyzes visual context by using multimodal models

AI-103 › Unit 3: Implement computer vision solutions › Design and implement multimodal understanding workflows › Build a solution that analyzes visual context by using multimodal models

2,693 words

Configure apps to produce concise or detailed captions for single or multiple images

AI-103 › Unit 3: Implement computer vision solutions › Design and implement multimodal understanding workflows › Configure apps to produce concise or detailed captions for single or multiple images

2,575 words

Configure generation of alt-text and extended image descriptions aligned to accessibility guidelines

AI-103 › Unit 3: Implement computer vision solutions › Design and implement multimodal understanding workflows › Configure generation of alt-text and extended image descriptions aligned to accessibility guidelines

2,759 words

Configure single-task and pro-mode Content Understanding pipelines

AI-103 › Unit 3: Implement computer vision solutions › Design and implement multimodal understanding workflows › Configure single-task and pro-mode Content Understanding pipelines

2,572 words

Implement a solution that enables question-answering grounded in visual evidence

AI-103 › Unit 3: Implement computer vision solutions › Design and implement multimodal understanding workflows › Implement a solution that enables question-answering grounded in visual evidence

2,722 words

Implement solutions that identify objects, components, or regions within images or video

AI-103 › Unit 3: Implement computer vision solutions › Design and implement multimodal understanding workflows › Implement solutions that identify objects, components, or regions within images or video

2,784 words

Implement video analysis workflows to process and interpret video segments

AI-103 › Unit 3: Implement computer vision solutions › Design and implement multimodal understanding workflows › Implement video analysis workflows to process and interpret video segments

2,746 words

Implement visual understanding by configuring Azure Content Understanding in Foundry Tools to extract visual characteristics

AI-103 › Unit 3: Implement computer vision solutions › Design and implement multimodal understanding workflows › Implement visual understanding by configuring Azure Content Understanding in Foundry Tools to extract visual characteristics

2,679 words

Detect and mitigate indirect prompt injection via embedded text in images

AI-103 › Unit 3: Implement computer vision solutions › Implement responsible AI for multimodal content › Detect and mitigate indirect prompt injection via embedded text in images

2,898 words

Enforce visual policy rules such as watermarks, prohibited symbols, brand requirements, and inappropriate content detection

AI-103 › Unit 3: Implement computer vision solutions › Implement responsible AI for multimodal content › Enforce visual policy rules such as watermarks, prohibited symbols, brand requirements, and inappropriate content detection

2,789 words

Implement filters to classify unsafe or disallowed visual content

AI-103 › Unit 3: Implement computer vision solutions › Implement responsible AI for multimodal content › Implement filters to classify unsafe or disallowed visual content

2,760 words

Build solutions that translate text by using Azure Translator in Foundry Tools or LLM-powered translation flows

AI-103 › Unit 4: Implement text analysis solutions › Apply language model text analysis › Build solutions that translate text by using Azure Translator in Foundry Tools or LLM-powered translation flows

2,716 words

Configure detection of sentiment, tone, safety issues, and sensitive content

AI-103 › Unit 4: Implement text analysis solutions › Apply language model text analysis › Configure detection of sentiment, tone, safety issues, and sensitive content

2,727 words

Customize language model outputs for domain tasks, such as compliance summarization and domain extraction

AI-103 › Unit 4: Implement text analysis solutions › Apply language model text analysis › Customize language model outputs for domain tasks, such as compliance summarization and domain extraction

2,713 words

Implement solutions to extract entities, topics, summaries, and structured JSON outputs using generative prompting and Foundry Tools

AI-103 › Unit 4: Implement text analysis solutions › Apply language model text analysis › Implement solutions to extract entities, topics, summaries, and structured JSON outputs using generative prompting and Foundry Tools

2,862 words

Enable multimodal reasoning from audio inputs

AI-103 › Unit 4: Implement text analysis solutions › Implement speech solutions › Enable multimodal reasoning from audio inputs

2,619 words

Implement workflows to convert speech to text and text to speech for agentic interactions

AI-103 › Unit 4: Implement text analysis solutions › Implement speech solutions › Implement workflows to convert speech to text and text to speech for agentic interactions

2,683 words

Integrate speech as an agent modality, including custom speech models

AI-103 › Unit 4: Implement text analysis solutions › Implement speech solutions › Integrate speech as an agent modality, including custom speech models

2,639 words

Translate speech into other languages by using language models and Foundry Tools

AI-103 › Unit 4: Implement text analysis solutions › Implement speech solutions › Translate speech into other languages by using language models and Foundry Tools

2,489 words

Configure RAG ingestion flow including documents and OCR

AI-103 › Unit 5: Implement information extraction solutions › Build retrieval and grounding pipelines › Configure RAG ingestion flow including documents and OCR

2,796 words

Configure semantic search, hybrid search, and vector search for grounding

AI-103 › Unit 5: Implement information extraction solutions › Build retrieval and grounding pipelines › Configure semantic search, hybrid search, and vector search for grounding

2,781 words

Connect retrieval pipelines directly to workflows and agent tools

AI-103 › Unit 5: Implement information extraction solutions › Build retrieval and grounding pipelines › Connect retrieval pipelines directly to workflows and agent tools

2,771 words

Implement enrichment by using custom or built-in skills for text, images, and layout

AI-103 › Unit 5: Implement information extraction solutions › Build retrieval and grounding pipelines › Implement enrichment by using custom or built-in skills for text, images, and layout

3,088 words

Ingest and index content such as documents, images, audio, and video

AI-103 › Unit 5: Implement information extraction solutions › Build retrieval and grounding pipelines › Ingest and index content such as documents, images, audio, and video

2,839 words

Extract information by using multimodal pipelines that combine OCR, layout analysis, and field extraction

AI-103 › Unit 5: Implement information extraction solutions › Extract content from documents › Extract information by using multimodal pipelines that combine OCR, layout analysis, and field extraction

2,807 words

Implement analyzers for generating structured or markdown outputs for downstream reasoning using Content Understanding

AI-103 › Unit 5: Implement information extraction solutions › Extract content from documents › Implement analyzers for generating structured or markdown outputs for downstream reasoning using Content Understanding

2,953 words

Produce clean, grounded representations to use with agents and RAG by using Content Understanding

AI-103 › Unit 5: Implement information extraction solutions › Extract content from documents › Produce clean, grounded representations to use with agents and RAG by using Content Understanding

2,897 words

Ready to practice? Jump straight in — no sign-up needed.

Take practice tests, review flashcards, and read study notes right now.

Take a Practice Test

Developing AI Apps and Agents on Azure (AI-103) Practice Questions

Try 15 sample questions from a bank of 591. Answers and detailed explanations included.

Q1hard

A team wants higher-quality transcription of pre-recorded audio than the base model provides, with deep contextual understanding and the ability to steer output with a prompt — without training a custom model.

Which capability fits, and what are its supported tasks?

A.

Batch transcription, whose asynchronous processing allows more model passes per file

B.

Custom speech, which is the only route to improved accuracy

C.

Speech translation, whose real-time model also improves same-language transcription

D.

LLM speech (preview) — an LLM-enhanced speech model supporting transcribe and translate on pre-recorded audio, with prompt-tuning and ultra-fast inference

Show answer & explanation

Correct Answer: D

  1. Deductive proof: LLM speech is described as taking "advantage of a large language model (LLM)-enhanced speech model", currently supporting "transcribe: Convert pre-recorded audio into text" and "translate: Convert pre-recorded audio into text in a specified target language." Its stated benefits are "improved quality, deep contextual understanding, multilingual support, and prompt-tuning capabilities", sharing "the same ultra-fast inference performance as fast transcription." No training is involved, which is what separates it from custom speech.
  2. Distractor breakdown:
    • A: Batch transcription changes submission and scale, not the model. Asynchronous processing does not buy extra quality.
    • B: Custom speech does improve accuracy — by training on acoustic, language, and pronunciation data, which the stem excludes. It is also not the only route, as LLM speech demonstrates.
    • C: Speech translation converts spoken audio across languages in real time. It is not a same-language transcription quality feature.
  3. undefined

{"v":1,"title":"Improving transcription quality","columns":[{"key":"llm","label":"LLM speech (preview)","highlight":true},{"key":"cs","label":"Custom speech"}],"rows":[{"label":"Requires training","cells":{"llm":"No","cs":"Yes — acoustic, language, pronunciation data"},"winner":"llm"},{"label":"Steerable per request","cells":{"llm":"Prompt-tuning","cs":"No"},"winner":"llm"},{"label":"Audio scope","cells":{"llm":"Pre-recorded only","cs":"Real-time and batch"},"winner":"cs"},{"label":"Maturity","cells":{"llm":"Preview","cs":"Established"},"winner":"cs"}]}

4. **Reference**: [What is Azure Speech?](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/overview)
Q2medium

Which document-analysis output most directly stops chunking cutting through tables and section headings?

A.

prebuilt-read, which returns page text in reading order

B.

An embedding model with a larger context window

C.

prebuilt-layout, which returns tables, selection marks, and paragraph roles such as title and sectionHeading

D.

A higher ocr.highResolution setting, sharpening small print

Show answer & explanation

Correct Answer: C

  1. Deductive proof: Better boundaries require knowing where the structure is. The layout model extracts "text, tables, selection marks, and document structure", and assigns paragraphs logical roles — title, sectionHeading, pageHeader, pageFooter, footnote, pageNumber. The docs point at this use directly: "It's best to use paragraph roles with unstructured documents to help understand the layout of the extracted content for a richer semantic analysis."
  2. Distractor breakdown:
    • A**: Returns text and paragraphs but no paragraph roles, tables, or selection marks — a chunker built on it still cannot see where a section starts or a table ends.
    • D**: Improves character recognition. Perfectly recognized text can still be chunked in the wrong places.
    • B**: Context size affects how much text becomes one vector, not where the pipeline chose to cut.
  3. undefined

{"v":1,"kind":"exam-tip","title":"Chunk on structure, not character count","body":"Fixed-size windows split tables and sections because they cannot see them. Layout output makes chunking a structural decision — and in v4.0 markdown, tables are represented as HTML tables, so a table survives as one object."}

4. **Reference**: [Document layout analysis](https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/prebuilt/layout)
Q3easy

A team must expose their own custom tools to agents, and they already run their logic in Azure Functions.

What is the documented path?

A.

Rewrite each function as a built-in tool, since custom code cannot be exposed as a tool

B.

Connect a custom MCP server hosted on Azure Functions, using the Functions MCP webhook endpoint /runtime/webhooks/mcp

C.

Publish the functions to the public tool catalog so agents can discover them

D.

Wrap the functions in a Logic App, which is the only supported way to reach Azure Functions from an agent

Show answer & explanation

Correct Answer: B

  1. Deductive proof: The path is named exactly. "You can also connect custom MCP servers hosted on Azure Functions using the Functions MCP webhook endpoint (/runtime/webhooks/mcp) to expose custom tools to your agents." These integrations can also be exercised in the playground "to validate tool connectivity, permissions, and behavior before publishing."
  2. Distractor breakdown:
    • A: Custom capability is explicitly supported through several routes — MCP servers, OpenAPI tools, the Azure Functions tool, and function calling. Rewriting working logic to fit a built-in tool discards it for no reason.
    • C: The public catalog is for tools published broadly; an organization-scoped set belongs in a private tool catalog, and neither is how you connect your own service.
    • D: Logic Apps connectors do appear in the catalog — as "MCP servers converted from Azure Logic App Connectors" — but that is one option, not a requirement, and there is a direct Azure Functions path.
  3. undefined

{"v":1,"title":"Ways to bring your own capability","items":[{"key":"MCP server","value":"Best for tools shared across agents or owned by another team"},{"key":"MCP on Azure Functions","value":"/runtime/webhooks/mcp"},{"key":"OpenAPI tool","value":"An external HTTP API described by OpenAPI 3.0 or 3.1"},{"key":"Function calling","value":"Your app executes and returns the result"},{"key":"Azure Functions tool","value":"Agent calls your function for custom actions and dynamic data"}]}

4. **Reference**: [What is Microsoft Foundry Agent Service?](https://learn.microsoft.com/en-us/azure/foundry/agents/overview) &middot; [Types of tools in Foundry Agent Service](https://learn.microsoft.com/en-us/azure/foundry/agents/concepts/tool-catalog)
Q4medium

How should the assistant reach the maintenance content, given the platform team already maintains and tunes the index?

A.

Re-upload the manual through File Search, giving the agent its own vector store

B.

Export the index to blob storage and attach it as a knowledge source

C.

Rebuild the corpus as a knowledge base, since agents cannot query an index directly

D.

Attach the Azure AI Search tool, grounding the agent in the existing index

Show answer & explanation

Correct Answer: D

  1. Deductive proof: The tool exists for exactly this situation — Azure AI Search: "Ground agents with data from an existing Azure AI Search index." Nothing is copied or re-ingested, so the platform team's enrichment, relevance tuning, and operational ownership all continue to apply.
  2. Distractor breakdown:
    • A**: Duplicates a corpus that is already indexed and throws away the tuning that went into it. Two copies then drift.
    • B**: Moves the content backwards through the pipeline — a queryable index becomes files that would need indexing again.
    • C**: False premise. The built-in tool grounds an agent in an index directly; a knowledge base is the right answer when you need several sources planned and merged, which is not this scenario.
  3. undefined

{"v":1,"kind":"exam-tip","title":"Existing investment is a signal","body":"When a stem says a pipeline is already built, tuned, or maintained by another team, it is testing whether you point at it rather than rebuild. Reach for a knowledge base when the requirement is multi-source planning, not when one good index already exists."}

4. **Reference**: [Types of tools in Foundry Agent Service](https://learn.microsoft.com/en-us/azure/foundry/agents/concepts/tool-catalog)
Q5medium

Which evaluator most directly measures whether answers stay supported by the supplied guidelines?

A.

Relevance, which measures the response against the query

B.

Coherence, which measures logical consistency and flow

C.

Groundedness, which measures how grounded the response is in the retrieved context

D.

Task Adherence, which measures whether the agent follows its system instructions

Show answer & explanation

Correct Answer: C

  1. Deductive proof: The requirement compares the answer against the retrieved guidelines, and Groundedness is defined on exactly that relationship — it "measures how grounded the response is in the retrieved context", returning 1–5 via a model-based judgment. It sits in the RAG evaluator group for that reason.
  2. Distractor breakdown:
    • A: Compares the answer to the question. An answer can address the question precisely while inventing the clinical detail.
    • B: Judges the writing. An ungrounded answer is often perfectly coherent, which is what makes it dangerous here.
    • D: An agent evaluator about following system instructions, not about support from source material.
  3. undefined

{"v":1,"kind":"note","title":"A pass/fail variant exists","body":"Groundedness Pro uses the Azure AI Content Safety service and returns a binary pass/fail without requiring a model deployment — useful as a release gate, or where a judge model cannot be deployed in a regulated environment."}

4. **Reference**: [Built-in evaluators reference](https://learn.microsoft.com/en-us/azure/foundry/concepts/built-in-evaluators)
Q6medium

Editors ask questions that require reasoning over what is in a photograph. What should serve those?

A.

An embedding model, matching the question against image vectors

B.

OCR, extracting any text in the image for a text model to read

C.

A custom object detection model trained on the archive

D.

A multimodal model, sent the image alongside the question in a single request

Show answer & explanation

Correct Answer: D

  1. Deductive proof: The requirement is open-ended reasoning about visual content, which is what a multimodal model does — the image and the question travel together in one request, and the model reasons over both. No fixed schema or label set can anticipate the questions editors will ask.
  2. Distractor breakdown:
    • A**: Embeddings support similarity search — find pictures like this one. They do not answer a question about a picture.
    • B**: Recovers only text that happens to be printed in the image, and most editor questions are about the scene rather than any caption within it.
    • C**: Detection finds and locates known classes you trained for. It cannot answer a question it was not trained to anticipate.
  3. undefined

{"v":1,"kind":"exam-tip","title":"Open question or fixed schema?","body":"Unpredictable questions about an image → multimodal model. The same fields every time → a Content Understanding analyzer. Known classes, with positions → a trained detection model. The stem tells you which by how predictable the output is."}

4. **Reference**: [What is Azure Content Understanding in Foundry Tools?](https://learn.microsoft.com/en-us/azure/ai-services/content-understanding/overview)
Q7medium

Which pair covers the standard categories and the eleven bespoke clause categories?

A.

Custom NER for both, trained once on a combined label set

B.

Prebuilt NER for both, with the bespoke categories supplied at request time

C.

Entity linking for the standard categories, custom text classification for the clauses

D.

Prebuilt NER for the standard categories, custom NER for the bespoke clause categories

Show answer & explanation

Correct Answer: D

  1. Deductive proof: The decision table splits on whether a model already knows the schema. "Extract categories of information without creating a custom model" → prebuilt NER, which "identifies different entries in text and categorizes them into predefined types." "Extract categories of information using a model specific to your data" → custom NER, marked customizable, which "enables you to build custom AI models to extract custom entity categories… using unstructured text that you provide."
  2. Distractor breakdown:
    • A**: Trains a model to reproduce categories the prebuilt model already handles — labelling effort spent to match an existing capability.
    • B**: Prebuilt means the type set is fixed; there is no mechanism to add bespoke categories at request time.
    • C**: Entity linking disambiguates entities and returns Wikipedia links; classification assigns a category to a document, not spans within it.
  3. undefined

{"v":1,"title":"Customizable or preconfigured?","items":[{"key":"Prebuilt NER","value":"Preconfigured — fixed types, no training"},{"key":"Custom NER","value":"Customizable — your labels, your data"},{"key":"Both are core","value":"Named entity recognition sits in the core capability list"}]}

4. **Reference**: [What is Azure Language in Foundry Tools](https://learn.microsoft.com/en-us/azure/ai-services/language-service/overview)
Q8easy

A RAG corpus is mostly scanned PDFs — page images with no embedded text layer. The ingestion pipeline currently chunks and embeds, and retrieval returns nothing useful.

What is missing?

A.

A larger embedding model, since scanned pages need higher-dimensional vectors

B.

OCR in the skillset — without it there is no text to chunk, embed, or index

C.

The semantic ranker, which reads text directly from page images

D.

A bigger k value on the vector query, so more candidates are considered

Show answer & explanation

Correct Answer: B

  1. Deductive proof: The pipeline order is fixed — crack, extract text, chunk, embed, index. A scanned PDF is an image; until OCR converts its pixels to characters there is literally nothing for the Text Split skill to chunk or for the embedding skill to vectorize. The blueprint bullet for this objective names the pairing explicitly: "Configure RAG ingestion flow, including documents and using optical character recognition (OCR)."
  2. Distractor breakdown:
    • A: A larger embedding model embeds text. With no text extracted, dimensionality is irrelevant.
    • C: The semantic ranker "applies machine reading comprehension" to retrieved results — text that is already indexed. It cannot read a page image, and it runs at query time rather than ingestion.
    • D: k sizes the candidate pool from an index. An index containing no usable text returns nothing useful at any k.
  3. undefined

{"v":1,"kind":"pitfall","title":"Empty index, healthy indexer","body":"Scanned PDFs frequently produce warnings rather than errors — "indexers that use Foundry Tools can report warnings when image or PDF files don't contain any text to process." The run reports Success, the document count looks plausible, and retrieval quietly returns nothing."}

4. **Reference**: [Skills reference — Azure AI Search](https://learn.microsoft.com/en-us/azure/search/cognitive-search-predefined-skills) · [AI-103 study guide](https://learn.microsoft.com/en-us/credentials/certifications/resources/study-guides/ai-103)
Q9medium

A multi-step agent occasionally takes 40 seconds instead of its usual 6. Aggregate dashboards confirm the spike but cannot say where it occurs. The agent invokes a tool, which triggers another process, which invokes a further tool.

Which property of tracing localizes the delay?

A.

Evaluation scores attached to each run, compared against the latency threshold

B.

Token consumption totals per request, which correlate with elapsed time

C.

Nested spans — each records start and end times and can contain child spans, exposing the full call stack in invocation order

D.

Azure Monitor metric alerts configured on average response duration

Show answer & explanation

Correct Answer: C

  1. Deductive proof: Spans are "the building blocks of traces, representing single operations within a trace. Each span captures start and end times, attributes, and can be nested to show hierarchical relationships, so you can see the full call stack and sequence of operations." The docs name this exact scenario as the motivation — an agent "might invoke a tool, which uses another process, which then invokes another tool", making it "difficult to determine exactly where in the execution the issue was introduced." Tracing exists to answer "Which step introduced an error or latency spike?"
  2. Distractor breakdown:
    • A: Evaluation scores quality, not elapsed time, and they are per-run rather than per-step.
    • B: Token counts correlate loosely with duration but attribute nothing — a slow tool call consumes no model tokens at all, which is precisely the case this would miss.
    • D: Alerts are how you detect the spike, which the stem says is already done. An average over a time window cannot localize a step inside one run.
  3. undefined

{"v":1,"kind":"exam-tip","title":"Detect with metrics, localize with traces","body":"Metrics are aggregates over time — good for alerting, blind to individual runs. Traces are one run in full detail — good for diagnosis, impractical to alert on. A stem that says the problem is known but not located has already ruled out metrics."}

4. **Reference**: [Agent tracing overview](https://learn.microsoft.com/en-us/azure/foundry/observability/concepts/trace-agent-concept)
Q10medium

An application has a standard deployment quota of 100k Tokens Per Minute (TPM). What architectural strategy allows handling short bursts of 150k TPM without failing requests?

A.

Compress tokens into ZIP archives before sending to the API

B.

Disable token counting in the Azure SDK

C.

Deploy across multiple Azure regions with Azure API Management load balancing, or leverage dynamic bursting / global standard deployments

D.

Truncate all user prompts to 10 tokens

Show answer & explanation

Correct Answer: C

  1. Why C is correct: A 100k TPM allocation is a per-region, per-model ceiling, so a 150k burst cannot be served from one deployment. The two workable answers both add capacity rather than shrink demand: spread traffic across multiple deployments or regions behind Azure API Management, or move to a Global Standard deployment, which carries the highest default quota and routes dynamically across Azure's global infrastructure.
  2. Distractor breakdown:
    • A (Compress tokens into ZIP archives): Quota counts tokens after tokenization, not bytes on the wire. Compression changes neither the token count nor the limit.
    • B (Disable token counting in the SDK): Client-side accounting is not what enforces the limit — the service meters requests regardless. This only blinds you to your own consumption.
    • D (Truncate prompts to 10 tokens): Would reduce consumption, and destroy the application. Mutilating input to fit a quota is not an architecture.
  3. undefined

{"v":1,"kind":"exam-tip","title":"Two honest answers to 429","body":"Add capacity — more quota, more deployments, Global Standard's larger pool, or reserved PTU for guaranteed throughput. Or absorb the spike — exponential backoff honouring Retry-After, or a Batch deployment when the work is not time-sensitive. Anything that just hides the counter is wrong."}

4. **Reference**: [Understanding deployment types](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/deployment-types)
Q11easy

A grounding pipeline must return results for a natural-language question and honour a geospatial constraint — hotels within 300 km of a given point — in a single request.

What does hybrid search support here?

A.

Hybrid queries take advantage of existing text-based functionality — filtering, faceting, sorting, scoring profiles, and semantic ranking — while executing a similarity search against vectors in one request

B.

Filters must be applied client-side after retrieval, because vector indexes cannot be filtered

C.

Geospatial constraints require a separate keyword-only query, whose results are intersected with the vector results

D.

Filters and vector search are mutually exclusive; you must choose one per request

Show answer & explanation

Correct Answer: A

  1. Deductive proof: "Hybrid queries take advantage of existing text-based functionality like filtering, faceting, sorting, scoring profiles, and semantic ranking on your text fields, while executing a similarity search against vectors in a single search request." The documented example is precisely this case — a filter using geo.distance(...) le 300 alongside vectorQueries. Mechanically, "filters and facets target data structures within the index that are distinct from the inverted indexes used for full-text search and the vector indexes used for vector search", so the engine can apply the filter result to the hybrid response.
  2. Distractor breakdown:
    • B: Client-side filtering would require returning the unfiltered set, wasting bandwidth and breaking top/paging semantics — and it is unnecessary since filters are supported natively.
    • C: Two queries plus manual intersection reimplements what one hybrid request already does, and loses the unified RRF ranking.
    • D: Directly contradicted. The only documented exclusions are "pure text client-side interactions, such as autocomplete and suggestions."
  3. undefined

{"v":1,"kind":"note","title":"Where to apply the filter","body":"vectorFilterMode chooses pre- or post-filtering. With the semantic ranker the docs lean toward post-filtering as the last step — "but you should test to confirm which behavior is best for your queries", since pre-filtering shrinks the candidate pool before ranking."}

4. **Reference**: [Hybrid search overview](https://learn.microsoft.com/en-us/azure/search/hybrid-search-overview)
Q12easy

An agent gives good final answers, but a reviewer suspects it is taking a longer route than necessary — extra tool calls that add latency without changing the outcome.

Which evaluator measures this most directly?

A.

Task Completion, which measures whether the agent completed the requested task end-to-end

B.

Tool Call Success, which evaluates whether all tool calls executed without technical failures

C.

Task Navigation Efficiency, which determines whether the agent's sequence of steps matches an optimal or expected path

D.

Intent Resolution, which measures how accurately the agent identifies and addresses user intentions

Show answer & explanation

Correct Answer: C

  1. Deductive proof: The complaint is about the path, not the destination, and one evaluator is defined on the path: Task Navigation Efficiency "determines whether the agent's sequence of steps matches an optimal or expected path to measure efficiency."
  2. Distractor breakdown:
    • A: Would score well and hide the problem. The task is completed — that is the premise of the stem — so an end-to-end measure reports success on an inefficient run.
    • B: Would also pass. The extra calls succeeded; being unnecessary is not a technical failure.
    • D: Also fine by assumption. The agent understood the request correctly and then took a scenic route to satisfy it.
  3. undefined

{"v":1,"kind":"exam-tip","title":"Right answer, wrong route","body":"Outcome evaluators cannot see waste, because waste that still reaches the right answer looks like success. When a stem mentions latency, cost, or redundant steps while stating the answers are good, the measurement has to be about the sequence."}

4. **Reference**: [Built-in evaluators reference](https://learn.microsoft.com/en-us/azure/foundry/concepts/built-in-evaluators)
Q13medium

The nightly CI job provisions the project and then fails its integration test with an authorization error. What should the pipeline add?

A.

An explicit role assignment for the test identity, using the role definition ID rather than the display name

B.

A retry with backoff, since role assignments are eventually consistent

C.

An API key generated at provisioning time and injected into the test

D.

A wait for the project's managed identity to be created

Show answer & explanation

Correct Answer: A

  1. Deductive proof: Two documented facts combine. The automatic Foundry User assignment happens only for projects created through the portal UI and "doesn't apply when deploying Foundry from SDK or CLI" — so a pipeline-provisioned project has no role assigned. And because the roles were renamed, the guidance for code is to "use the role definition ID (GUID) instead of the role name… The role IDs and core permissions are unchanged by the rename."
  2. Distractor breakdown:
    • B: Retrying a missing assignment never succeeds. Backoff would hide the cause behind a slow failure.
    • C: Reintroduces a secret and bypasses RBAC entirely — "the key grants full access without role restrictions" — which is the opposite of what a test identity should hold.
    • D: The identity is created with the project. What is missing is an authorization for it, not the identity itself.
  3. undefined

{"v":1,"kind":"exam-tip","title":"Portal conveniences do not carry into pipelines","body":"Anything provisioned as code should assign its own roles explicitly. The failure otherwise appears at first use, long after provisioning, and reads as a broken deployment rather than a missing assignment."}

4. **Reference**: [Role-based access control for Microsoft Foundry](https://learn.microsoft.com/en-us/azure/foundry/concepts/rbac-foundry)
Q14easy

A knowledge base must ingest content from an Azure Blob Storage container that receives new and updated files continuously. The index must stay current without anyone triggering it.

Which component drives this, and how is freshness maintained?

A.

An indexer over the blob data source, run on a schedule so it picks up changed documents and any missed during throttling

B.

A skillset, which polls the data source and re-enriches documents as they change

C.

A vectorizer, which re-embeds the index whenever the source container changes

D.

The search index itself, which subscribes to blob change events automatically

Show answer & explanation

Correct Answer: A

  1. Deductive proof: The indexer "retrieves raw data from a supported data source and drives the pipeline engine", and the documented practice for freshness is explicit: "We recommend running the indexer on a schedule to pick up changed documents or any documents that were missed due to throttling." One component both ingests and keeps current.
  2. Distractor breakdown:
    • B: A skillset is the enrichment configuration the indexer executes — chunking, OCR, embeddings. It has no scheduler and never initiates a run.
    • C: A vectorizer converts a query to a vector at query time. It touches nothing at index time and cannot re-embed stored content.
    • D: An index is a searchable store, not an event subscriber. Nothing about it watches a container.
  3. undefined

{"v":1,"title":"Who does what at ingestion","items":[{"key":"Data source","value":"The connection to Blob, SQL, Cosmos DB, and so on"},{"key":"Indexer","value":"Drives the pipeline and honours the schedule"},{"key":"Skillset","value":"Enrichment the indexer runs — chunking, OCR, embeddings"},{"key":"Index","value":"Where the enriched, chunked, vectorized content lands"}]}

4. **Reference**: [Integrated vectorization overview](https://learn.microsoft.com/en-us/azure/search/vector-search-integrated-vectorization) · [Monitor indexer status and results](https://learn.microsoft.com/en-us/azure/search/search-monitor-indexers)
Q15hard

A call-centre platform must transcribe calls, redact personal information, and extract sentiment, running the whole pipeline on-premises for compliance.

What is the correct assembly?

A.

Run everything through one Speech container, which includes redaction and sentiment

B.

Speech containers for transcription plus Azure Language containers for PII detection and sentiment analysis, both deployed on-premises

C.

Transcribe on-premises with a Speech container, then call the cloud Language service for redaction and sentiment

D.

The pipeline cannot be run on-premises; a private endpoint is the closest available option

Show answer & explanation

Correct Answer: B

  1. Deductive proof: Both services offer containers, and the required features are on both lists. Speech can be run "in the cloud or at the edge in containers", and the call-centre scenario itself is described as "transcribe calls in real time or process a batch of calls, redact personal information, and extract insights such as sentiment." On the Language side, the offered containers include sentiment analysis, language detection, key phrase extraction, custom NER, text analytics for health, and summarization — and PII detection is a core capability of the same service. Assembling containers from both keeps every stage local.
  2. Distractor breakdown:
    • A: Attractive and wrong on ownership. Transcription is Speech; PII detection and sentiment are Language. One container does not span two services.
    • C: Defeats the requirement at the step that matters most. The transcript — which still contains the personal data — would leave the premises to be redacted.
    • D: A private endpoint removes public exposure but still processes data in the service. Containers exist precisely so that data need not leave.
  3. undefined

{"v":1,"kind":"exam-tip","title":"Redact before it travels","body":"In a compliance pipeline, the order and the location of the redaction step are the design. Redacting after the data has crossed the boundary satisfies nobody — the exposure already happened."}

4. **Reference**: [What Is Azure Speech?](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/overview) &middot; [What is Azure Language in Foundry Tools](https://learn.microsoft.com/en-us/azure/ai-services/language-service/overview)

These are 15 of 591 questions available. Take a practice test →

Developing AI Apps and Agents on Azure (AI-103) Flashcards

640 flashcards for spaced-repetition study. Showing 30 sample cards below.

Agentic retrieval and knowledge sources(10 cards shown)

Question

What is agentic retrieval, and what does it do that one query can't?

Answer

In Azure AI Search, agentic retrieval is a multi-query pipeline designed for complex questions posed by users or agents in chat and copilot apps.
Can use a large language model (LLM) to break down a complex query into smaller, focused subqueries for better coverage over proprietary and external content. Subqueries can include chat history for extra context.
Runs subqueries in parallel. Each subquery is semantically reranked to promote the most relevant matches.
⚠ It buys coverage with time: agentic retrieval adds latency compared to a single-query pipeline, but it handles query complexity that a single query can't. The named cases are questions with multiple asks, questions that depend on earlier context in the conversation, queries needing rewriting, and spelling mistakes.

Question

Walk the four steps of the agentic retrieval workflow.

Answer

  1. Workflow initiationyour application calls a knowledge base with a retrieve action that provides a query and conversation history.
  2. Query planningthe knowledge base sends your query and conversation history to an LLM, which generates focused subqueries.
  3. Query executionthe knowledge base sends the subqueries to your knowledge sources. All subqueries run simultaneously and can be keyword, vector, or hybrid search. Each subquery undergoes semantic reranking to find the most relevant matches. References are extracted and retained for citation purposes.
  4. Result synthesisthe system combines all results into a unified response. ⚠ Note what is guaranteed and what isn't: merged content is always returned. Source references and an execution activity log are optional.
    Your app stays in the loop: the pipeline returns grounding data that you can pass to an LLM for answer generation or use directly in your conversation interface.

Question

retrieval reasoning effort — three levels, and the one that changes the architecture.

Answer

minimal removes the LLM from the pipeline entirely. At low and medium retrieval reasoning effort, the knowledge base sends your query and conversation history to an LLM, which generates focused subqueries. At minimal effort, this step is skipped and queries are issued directly to knowledge sources. Reasoning effort defaults to low and is configured on the knowledge base.
The components table says the same thing from the other side — the LLM is used at low and medium retrieval reasoning effort only. Bypassed at minimal effort.
Put plainly: if simplicity and speed are the priority, minimal bypasses LLM processing; low and medium let the LLM plan and select which knowledge sources to query, and medium adds an iterative pass for deeper results.
⚠ Two consequences of minimal: no Azure OpenAI bill for planning, and no source selection — every knowledge source is queried, because nothing is choosing between them.

Question

Which components does an agentic retrieval pipeline require, and what does each do?

Answer

For all agentic retrieval scenarios, a knowledge base and at least one knowledge source are required. Other components are optional and depend on your configuration.
Knowledge baseOrchestrates the pipeline, managing knowledge sources and query parameters.
Knowledge sourceDefines the content used in the pipeline. Can be indexed (backed by a search index on your service) or remote (content retrieved at query time from an external platform).
Search indexStores searchable content (text and vectors) with a semantic configuration.Required for indexed knowledge sources only.
Semantic rankerUsed internally by the agentic retrieval pipeline to rerank results for relevance (L2 reranking).
LLM (Azure OpenAI) — Plans queries and selects knowledge sources.
⚠ Note the semantic ranker is not optional and not something you switch on — it is used internally, which is why agentic retrieval bills for reranking whatever you configure.

Question

Indexed versus remote knowledge sources — what actually differs?

Answer

Whether your content ever enters Azure AI Search.
IndexedAn indexed knowledge source points to a search index that meets the criteria for agentic retrieval. Content is ingested into the index before query time through one of three paths: Queries run locally on your search service using keyword (full text), vector, or hybrid queries.
Remotea remote knowledge source connects directly to an external platform. Content is never ingested into Azure AI Search. Instead, it's retrieved at query time via each platform's native APIs.
Depending on the platform, remote connections reach content either over the public internet (such as Bing) or within your Microsoft tenant (such as SharePoint and Fabric).
⚠ Whichever you use, ranking is shared: for both indexed and remote knowledge sources, all retrieved content flows through the same ranking pipeline. Results are scored for relevance, merged across queries, and reranked before returning in the retrieval response.

Question

Knowledge source — what is it, and what kinds exist?

Answer

A knowledge source is a top-level resource on your Azure AI Search service that defines the content used in an agentic retrieval pipeline. Each knowledge source is either indexed or remote, which determines how the content is ingested, processed, and queried. Knowledge sources are required components of a knowledge base.
Indexed kinds: Search index (Wraps an existing index), Azure blob, Azure SQL (preview), File (preview) (Uploads files directly to Azure AI Search), OneLake, Indexed SharePoint (preview).
Remote kinds: Remote SharePoint (preview), Fabric Data Agent (preview), Fabric Ontology (preview), MCP server (preview) (Retrieves live, tool-backed results from an external MCP server), Work IQ (preview), Web (Retrieves real-time grounding data from Microsoft Bing).
You can reference multiple knowledge sources in a single knowledge base. The agentic retrieval engine queries all of them in a single request.

Question

⚠ How does agentic retrieval bill, and why can't you forecast it the way you forecast semantic ranker?

Answer

Because the unit changes from queries to tokens, and two services bill.
Azure AI Search bills for retrieval tokens consumed during subquery execution and semantic ranking. Azure OpenAI bills for input and output tokens used in LLM-based query planning and answer synthesis.
The comparison the docs draw against the classic single-query pipeline:
UnitQuery basedToken based
Cost per unitUniform cost per queryVariable cost per token (depends on reasoning effort)
Cost estimationEstimate query countEstimate token usage
Free allowanceMonthly free query allowanceMonthly free token allowance
⚠ So a per-query cost model doesn't convert: the same question costs more with three subqueries than with one, and reranking dominates. In the worked example, reranking is $3.30 against $1.02 for all of query planning.
Levers: reduce the number of knowledge sources (indexes); consolidating content can lower fan-out and token volume, and lower the reasoning effort to reduce LLM usage.

Question

What are the lifecycle rules for knowledge sources and knowledge bases?

Answer

Three, and they constrain the order of every deployment script:
Create a knowledge source before you create a knowledge base. Knowledge bases reference knowledge sources by ID, so the knowledge source must exist first.
To delete a knowledge source, first update or delete any knowledge bases that reference it. You can then delete the knowledge source.
A knowledge source and its knowledge base must exist on the same search service.
⚠ That last one rules out a shared-knowledge-source design across services — content sharing has to happen at the index or storage layer instead.
Permissions: to create a knowledge source, you need Search Service Contributor permissions on your search service. If the knowledge source generates an indexer pipeline, you also need Search Index Data Contributor permissions to load an index.

Question

Your knowledge base has five sources but the LLM keeps ignoring one. What controls source selection?

Answer

Three inputs, and one override. The following factors inform selection at low and medium effort:
The name of the knowledge source.
The description of an index (for indexed knowledge sources).
The retrievalInstructions specified in the knowledge base definition or the retrieve action.
Retrieval instructions guide which knowledge sources the LLM selects or skips. They work like a prompt: you can specify brevity, tone, and formatting.
The override: set alwaysQuery to true on a knowledge source definition to include it in every query, regardless of the retrieval reasoning effort.
⚠ So an unhelpfully-named source with no index description is genuinely invisible to the planner. Naming is configuration here, not documentation.

Question

Where does agentic retrieval plug into an agent, and what stays in preview?

Answer

It is the knowledge layer under Foundry IQ, and the basis for custom pipelines. There are two use cases for agentic retrieval. First, it powers Foundry IQ in the Microsoft Foundry portal by providing the knowledge layer for agent solutions. Second, it's the basis for custom agentic solutions you build using the Azure AI Search APIs.
⚠ The GA line runs through the API, not the portal: some agentic retrieval features are generally available in the 2026-04-01 REST API via programmatic access. The Azure portal and Microsoft Foundry portal continue to provide preview-only access to all agentic retrieval features.
So a feature you configured by clicking is not necessarily one you can run in production — check whether the equivalent call exists in the GA API before committing.
Agentic retrieval is available in select regions, and knowledge sources and knowledge bases also have maximum limits that vary by pricing tier and retrieval reasoning effort.

Alt-text and accessible image descriptions(5 cards shown)

Question

⚠ What do captions assume about people by default?

Answer

Gender. By default, captions contain gender terms ("man", "woman", "boy" and "girl"). You have the option to replace these terms with "person" in your results and receive gender-neutral captions.
This matters for alt-text specifically: a caption is inferring gender from appearance, and publishing that inference as an image description asserts something about a real person that the model guessed.
For accessibility work the neutral form is usually the safer default — it describes what is visible without attributing an identity.

Question

How do you turn on gender-neutral captions?

Answer

You can do so by setting the optional API request parameter gender-neutral-caption to true in the request URL.
Three details worth noting:
• It is a request-URL query parameter, not a body field.
• It is optional, and the default is false — gendered terms are what you get if you do nothing.
• It applies to the caption text itself, so the change is in the words returned, not a post-processing step you write.
For an accessibility pipeline this is a one-line configuration with a real editorial consequence.

Question

⚠ Your Vision resource is in a region without Image Analysis 4.0 captioning. Now what?

Answer

If you need to use a Vision resource outside these regions to generate image captions, please use Image Analysis 3.2 which is available in all Azure Vision regions.
So there is a documented fallback rather than a dead end — but it is a different API version with different models, not the same feature elsewhere.
That makes region a design-time decision for an accessibility pipeline: choose a supported region and get 4.0's Florence-based captions, or accept 3.2's older describe-image behaviour everywhere.

Question

⚠ Which resource type must host Image Analysis 4.0 captioning?

Answer

Image captioning in Image Analysis 4.0 is only available in certain Azure data center regions, and you must use an Azure Vision in Foundry Tools resource located in one of these regions to get results from Caption and Dense Captions features.
Two constraints in one sentence — the right resource type (Azure Vision in Foundry Tools) and the right region.
A resource of the correct type in the wrong region fails just as surely as the wrong type, and neither failure is fixable in code.

Question

What does Content Understanding add for accessible document descriptions?

Answer

Annotation detection captures handwritten notes, underlines, and strikeouts.
Those are exactly the marks a sighted reader picks up instantly and a plain text extraction throws away — a struck-through clause, an underlined total, a margin note.
An accessible or searchable rendering of a scanned document that silently drops a strikethrough is worse than incomplete, it is wrong: it presents deleted text as current.
It sits with figure descriptions and layout analysis as the three things that make an extraction faithful rather than merely textual.

Analysing visual context with multimodal models(6 cards shown)

Question

Which modalities can Content Understanding take as input?

Answer

Supports multiple modalities including Documents, Images, Video, and Audio.
One service, one analyzer contract, four input types — which is the point: Content Understanding standardizes the extraction and classification of content, structure, and insights from various content types into a unified process.
The alternative is a different service per modality with a different output shape each, and glue code between them. Here the schema you define is the same regardless of whether the input is a PDF, a photo, a call recording or a broadcast.

Question

How does Content Understanding improve accuracy over a single model call?

Answer

Content Understanding employs multiple AI models to analyze and cross-validate information simultaneously, resulting in more accurate and reliable results.
Cross-validate is the operative word — several models looking at the same content and their agreement being part of the answer, rather than one model's output taken on trust.
That is also what makes confidence scores meaningful: a reliability estimate from 0 to 1 is only worth something if it comes from more than one opinion.

Question

Contextualization

Answer

The contextualization layer prepares context for generative models and post-processes their output.
It includes output normalization and formatting, source grounding calculation, confidence score computation, and context engineering to optimize model usage.
So confidence and grounding are not something the generative model reports about itself — they are computed by the contextualization layer around it. That is why they are trustworthy enough to gate straight-through processing, and it is also why they are billed (contextualization tokens).

Question

⚠ Your video analysis misses a one-frame flash of a logo. Is that a bug?

Answer

No — it is the documented sampling rate. Frame sampling (~ 1 FPS): The analyzer inspects about one frame per second. Rapid motions or single-frame events might be missed.
So anything shorter than about a second is outside what the analyzer can see, by construction. Subliminal frames, fast cuts, a ball crossing a line — all at risk.
That is a design constraint to plan around, not something to tune: if single-frame detection matters, video analysis is the wrong tool and per-frame image analysis is the right one.

Question

⚠ Why can't video analysis read the small print on screen?

Answer

Frame resolution (512 × 512 px): Sampled frames are resized to 512 pixels square. Small text or distant objects can be lost.
A 4K frame is downsampled to 512², so fine detail is destroyed before the model ever sees it. No prompt can recover it.
Practical consequences: on-screen captions, licence plates, product labels and background signage are unreliable in video analysis. If they matter, extract frames yourself at full resolution and run image analysis or OCR on them.

Question

What makes segment-based analysis better than frame-by-frame?

Answer

Identify actions, events, topics, and themes by analyzing multiple frames from each video segment, rather than individual frames.
The four things listed are all things a single frame cannot show: an action needs motion, an event needs a before and after, a topic and a theme need duration.
This is the key benefit Content Understanding claims over other video analysis approaches — reasoning over a segment rather than classifying stills, which is why the segmentation stage matters as much as the extraction stage.

Analyzers, markdown and schema limits(9 cards shown)

Question

How do you get Markdown out of the layout model?

Answer

The layout API can output the extracted text in Markdown format. Use the outputContentFormat=markdown to specify the output format in Markdown. The Markdown content is output as part of the content section.
Markdown is the natural substrate for downstream reasoning because it carries structure that plain text loses — headings become hierarchy, tables stay tabular, and both survive chunking.
On the Content Understanding side the same idea appears as an extraction mode — its faster text-only setting exists to produce clean Markdown for RAG and document ingestion scenarios.
⚠ It is a single request parameter, not a post-processing step — so nothing is lost in translation between the analyzer's structural understanding and the text you index.

Question

⚠ Your v3.1 Markdown parser breaks on v4.0 output. Name the two changes.

Answer

Tables and checkboxes both changed representation. For v4.0 2024-11-30 (GA), the representation of tables is changed to HTML tables to enable rendering of items like merged cells and multirow headers.
Another related change is to use the Unicode checkbox characters ☒ and ☐ for selection marks instead of :selected: and :unselected:.
⚠ And there is a genuine inconsistency to code around: this update means that the content of selection-mark fields contains :selected: even though their spans refer to Unicode characters in the top-level span.
So the field value still says :selected: while the content string now holds . Code that cross-references a field against its span will disagree with itself unless it expects both forms.
The upside is real: HTML tables are what make merged cells and multirow headers survive the round trip at all — Markdown pipe tables cannot express either.

Question

Which field value types can a Content Understanding schema use?

Answer

Content Understanding supports both basic field value types and nested structures, including lists, groups, tables, and fixed tables.
Basic field value types: string, date, time, number, integer, and boolean.
List field: A sequence of values of the same type, represented as an array of basic fields in the API.
Group field: A set of semantically related fields, represented as an object of basic fields in the API.
Table field: A variable number of items with fixed subfields, represented as an array of objects of basic fields in the API.
Fixed table field: A group of fields with shared subfields, represented as an object of objects of basic fields in the API.
Table versus fixed table is the pairing to keep straight: a variable number of rows with fixed columns (invoice line items) is a table; a fixed set of named rows sharing the same columns (a quarterly summary) is a fixed table.

Question

⚠ Your analyzer is rejected for exceeding 1,000 fields but your schema lists far fewer. How is it counted?

Answer

Every named field counts, including subfields. The Max fields limit includes all named fields. For example, a list of strings counts as one field, while a group with string and number subfields counts as three fields.
So a group is itself plus its children — nesting multiplies rather than encapsulating. A group of three subfields repeated across ten sections is 40 fields, not 10.
The limits themselves are uniform across modalities: Max fields 1,000 and Max classify field categories 300 for document, text, image, audio and video alike.
The Max classify field categories limit is the total number of categories across all fields using the classify generation method — a per-analyzer budget shared across every classify field, not a per-field allowance.

Question

Which generation methods are available per modality?

Answer

Documents get one more than everything else.
Documentextract, generate, classify
Text, Image, Audio, Videogenerate, classify
extract is document-only. That is the constraint that decides several designs: pulling a precise, grounded value out of a source location is a document capability. For audio, video, image and plain text, the equivalent job has to be done by generate — which produces a value rather than locating one.
The practical consequence is grounding. An extracted field points at where it came from; a generated one is the model's assertion. Same field in your schema, different epistemic status.

Question

What are the naming and size limits on analyzers and fields?

Answer

Analyzer ID1-64 characters. Alphanumeric, period, and underscore. Pattern [a-zA-Z0-9._]{1,64}. ⚠ Note: no hyphens.
Field names≤ 64 characters, with a much wider Unicode-aware character class that does include the hyphen.
URL properties≤ 8,192 characters
Description properties≤ 1,024 characters
Tags≤ 10 tags; tag key ≤ 64 characters, tag value ≤ 256 characters. Alphanumeric and + - . : = _ / characters. Can be empty.
⚠ The analyzer-ID rule catches people out precisely because hyphens are legal almost everywhere else in Azure — including in the field names right beside it. invoice-v2 is an invalid analyzer ID; invoice_v2 is fine.

Question

What are the resource limits for a Standard (S0) Content Understanding resource?

Answer

Max analyzers100,000
Max analysis/min1,000 pages/images, Four hours of audio, Four hours of video
Max operations/min3,000
⚠ Note the throughput ceiling is expressed per minute and per modality, not as a single request rate — so a document backlog and a video backlog draw on separate allowances.
And the analyzer count is effectively unbounded for design purposes: at 100,000 there is no reason to overload one analyzer with fields for several document types when a classifier plus several focused analyzers reads better and stays inside the 1,000-field limit.

Question

⚠ You POST a 40-page PDF synchronously and get 5 pages back with no error. Why?

Answer

Sync and async have different ceilings, and the sync path truncates silently.
For .pdf, .tiff and image types:
Async≤ 200 MB, ≤ 300 pages
Sync≤ 10 MB, ≤ 5 pages
⚠ And the behaviour past the sync limit is the trap: if there are more than five pages in the document, the service processes only the first five pages. The request can optionally specify the page range to process.
No error, no warning — just a partial answer that looks complete. Any document workload over five pages belongs on the async path.
Office and text formats are measured differently again: ≤ 10M characters async against ≤ 30K characters sync.

Question

How does Content Understanding count a page for a spreadsheet or an email?

Answer

By page-equivalent rules, one per format. For billing purposes, Content Understanding uses page-equivalent rules:
text files and email files (TXT, HTML, MD, XML, MSG, EML) count 3,000 characters as one page (rounded up)
Spreadsheets (XLSX) count one sheet as one page (including hidden sheets)
Presentations (PPTX) count one slide as one page
Word documents (DOCX) use native pagination
Including hidden sheets is the line that surprises people — a workbook with 40 hidden calculation sheets bills as 40+ pages regardless of what anyone can see. Worth auditing spreadsheets before a bulk ingest.

Showing 30 of 640 flashcards. Study all flashcards →

Ready to ace Developing AI Apps and Agents on Azure (AI-103)?

Access all 591 practice questions, study notes, and flashcards — no sign-up required.

Start Studying — Free