AI-103 Cheat Sheet
Plan and manage an Azure AI solution
Choosing Foundry Services for Generative AI and Agents
Read full chapterCheat sheet
Sharp facts the exam loves — scan these before test day.
- Model router is a deployed model that picks an underlying LLM per prompt, and its routing mode sets the cost/quality trade-off
Model router is deployed like any other Foundry model; at request time it analyzes the prompt and routes it to one of its supported underlying models, so you get a single deployment and chat surface instead of managing many. The routing mode controls the trade-off: Balanced (default) picks the cheapest model within a narrow quality band of the best model for that prompt, Cost widens that band for more savings, and Quality always picks the highest-rated model regardless of cost.
Trap Treating model router as a gateway or load balancer across resources. It is a trained routing model inside one deployment, not Azure API Management traffic distribution, and its effective context window is capped by the smallest model in its subset.
6 questions test this
- Your platform team runs a chat application whose prompts vary widely, from trivial FAQ lookups to complex multi-step analysis. Leadership wants one endpoint and one chat surface that automatically sen
- Your team runs a model router deployment in Microsoft Foundry as the single chat surface behind a legal-drafting assistant. Every prompt produces contract language that attorneys rely on, so the busin
- Your team deploys model router in Microsoft Foundry with the default set of all supported underlying models and points a document-analysis agent at it. The agent occasionally submits prompts near 200,
- A teammate wants to cut costs on a Microsoft Foundry research agent by swapping its model for a small language model. The agent tackles open-ended investigative questions that span many domains and re
- An architect on your team proposes putting Azure API Management in front of several separately deployed Foundry chat models and load-balancing requests across them, describing this as 'the same thing
- You operate a high-volume, budget-sensitive batch summarization pipeline on a model router deployment in Microsoft Foundry. The work is latency-insensitive, and you will accept slightly lower quality
- Foundry model leaderboards rank catalog models on quality, safety, performance, and cost before you commit to a deployment
The model leaderboard in the Foundry portal compares curated catalog models across quality (reasoning, knowledge, math, coding), safety, performance (latency and throughput), and estimated cost, with scenario-specific leaderboards and a side-by-side view for up to three models. Leaderboards are the base-model-selection stage of the evaluation lifecycle, ahead of pre-production evaluation.
Trap Treating leaderboard rank as proof of fitness for your workload. Benchmarks run on public datasets, so Microsoft directs you to re-evaluate shortlisted models against your own data with the evaluation SDK.
- Reasoning models emit intermediate reasoning tokens before answering, which changes both latency budgets and the tuning knob you use
A reasoning model generates intermediate reasoning tokens and summarizes them before returning the first response token, so even streaming requests can stall until reasoning finishes and client-side timeouts must be set far higher than for a non-reasoning chat model. You control how much of that work happens with the reasoning effort parameter, not with sampling parameters.
Trap Raising temperature or top_p to make a chat model 'think harder'. Sampling parameters only change token-selection randomness; they add no reasoning pass and no reasoning tokens.
6 questions test this
- A colleague on your Microsoft Foundry project wants a deployed GPT-5-series reasoning model to work harder on a batch of difficult logic puzzles, spending more of its hidden reasoning before it answer
- You deploy an o-series reasoning model in Microsoft Foundry to power an agent that performs deep multi-step financial analysis, and you enable response streaming to show progress. In production the ag
- A regulated customer requires an audit record showing how a GPT-5 reasoning agent in Microsoft Foundry reached each recommendation. A developer plans to store the model's full internal reasoning by re
- You must classify roughly ten million short support tickets a day in Microsoft Foundry into a small, fixed set of intent labels. The task is narrow and well specified, cost per call and per-ticket lat
- You are building an interactive assistant in Microsoft Foundry that handles a broad mix of everyday conversational requests, and product testing shows users expect the first tokens to stream back with
- You are selecting a model class in Microsoft Foundry for an agent that must solve constraint-heavy scheduling problems requiring several dependent logical steps, where working through and checking the
- Choose a multimodal model for open-ended reasoning over content and a purpose-built Foundry Tool when you need schema-bound fields with per-field confidence
A vision-capable chat model is the right choice when the ask is open-ended interpretation, captioning, or question answering over an image or document. When the output must be named business fields in structured JSON with a numeric per-field confidence you can threshold for human review, the requirement points at a schema-driven Foundry Tool analyzer instead.
Trap Assuming a multimodal model's own certainty can gate a review queue. Chat completions return no calibrated per-field confidence score, so there is nothing to compare against a 0.80 threshold.
6 questions test this
- A creative team using Microsoft Foundry uploads a finished marketing image, a product photo with overlaid promotional text, and wants an agent to interpret it: describe the composition and mood, judge
- A logistics company's Microsoft Foundry pipeline ingests scanned delivery receipts from many carriers, whose layouts vary widely. For each receipt the pipeline must return named fields, shipment ID, c
- Your Microsoft Foundry document pipeline currently sends each scanned form to a vision-enabled chat model and, in the prompt, asks the model to also return a 0-to-1 'confidence' for every field so low
- Your Microsoft Foundry pipeline processes scanned insurance claim forms and must return named business fields, policy number, claimant name, and claim amount, as structured JSON. Every field must carr
- You are building a merchandising assistant in Microsoft Foundry for a retail chain. Store managers upload a photo of a product display and ask open-ended, free-text questions such as 'does this look o
- You are building a customer-support agent in Microsoft Foundry that lets users attach a photo of a malfunctioning appliance. The agent must answer open-ended, free-text questions about each image, suc
- Small language models are the class you pick when a narrow task is dominated by latency, volume, or on-device constraints rather than breadth of knowledge
Small language models are compact generative models, typically from under 1 billion to around 14 billion parameters — Microsoft's Phi family is the canonical example — versus large language models with hundreds of billions. Compared with an LLM they need far fewer resources (a single GPU or even CPU), give lower latency and higher throughput per device, and can run on-premises or on-device through Foundry Local, while trading away some breadth of general knowledge. That makes an SLM the right selection for narrow, well-specified, high-volume work such as classification, intent routing, field extraction, or short summarization, and a frontier LLM the right selection when the task needs broad world knowledge or long multi-step reasoning.
Trap Defaulting to the largest frontier model because 'quality matters' when the requirement is thousands of cheap, fast, single-purpose calls — on a focused task a small model can match a larger one at a fraction of the latency and cost. The inverse trap is treating an SLM as simply a cheaper LLM: it is the breadth of general knowledge and long-horizon reasoning that is traded away, not just price, so an open-ended research or planning agent still needs a large model.
7 questions test this
- A hospital wants a Microsoft Foundry-powered assistant on the workstations in its intake clinics that drafts a short plain-language summary of each patient's typed notes. Two constraints are firm: the
- A teammate wants to cut costs on a Microsoft Foundry research agent by swapping its model for a small language model. The agent tackles open-ended investigative questions that span many domains and re
- A product manager insists that a new Microsoft Foundry feature use the largest available frontier model 'because quality matters.' The feature is a single, well-scoped task: tagging each short custome
- A Microsoft Foundry service produces a one-line summary of every incoming chat transcript, running at very high volume with a tight per-request latency budget, and the current large frontier model is
- You must classify roughly ten million short support tickets a day in Microsoft Foundry into a small, fixed set of intent labels. The task is narrow and well specified, cost per call and per-ticket lat
- You are selecting a model class in Microsoft Foundry for an agent that must solve constraint-heavy scheduling problems requiring several dependent logical steps, where working through and checking the
- You are shipping a Windows field-inspection app that must run a short-text summarization model directly on each technician's laptop. The app has to work fully offline in areas with no connectivity, th
- Code-specialized catalog models are a model-selection decision; Code Interpreter is a tool that runs code the deployed model already wrote
The Foundry model catalog carries code-specialized reasoning models - the Codex family such as gpt-5-codex, gpt-5.1-codex, and gpt-5.1-codex-mini - tuned for agentic software work: reading and refactoring files across a repository, writing tests, and opening pull requests from a terminal, VS Code, or a GitHub Actions runner against your Foundry project's deployments. Selecting one of them is a deployment decision about which model authors the code. The Code Interpreter tool sits on a different axis: it gives whatever model you already deployed a sandbox in which to execute Python it has written, for data analysis, computation, and charts over attached files.
Trap Answering a 'raise the quality of generated code' or 'refactor across the repository' requirement by attaching Code Interpreter to a general chat model. Code Interpreter only executes model-written Python in a sandbox against attached files; it does not change which model authors the code and it is not a repository-editing coding agent.
- The fine-tuning technique is chosen by the training data you can actually supply: labeled pairs for SFT, preference pairs for DPO, a grader for RFT
Supervised fine-tuning trains on labeled prompt/completion (or conversational) examples and is the starting technique for task specialization, output format, and instruction following, working best when a problem has finite correct solutions; direct preference optimization requires preferred and non-preferred responses supplied as pairs in the training set and aligns the model to subjective qualities such as tone, style, and content preference without fitting a separate reward model; reinforcement fine-tuning replaces example outputs with a grader that rewards the model incrementally, so it fits complex reasoning problems that have many possible solution paths but checkable answers. Foundry also documents stacking SFT first and DPO afterwards, and whichever technique you use the result is a separate custom model that must be deployed to its own endpoint before any client can call it, so a production deployment adds an ongoing hourly hosting charge to the one-time training cost and the usual per-token inference.
Trap Reaching for DPO because the requirement says 'better answers'. DPO consumes a preferred/non-preferred pair per example; a set of known-good outputs is SFT data, and a task whose correctness a scoring function can judge is RFT territory. Choosing the technique before checking which of those three datasets the team can actually produce is what makes fine-tuning projects stall.
- Azure Translator gives deterministic, repeatable, low-cost machine translation; an LLM translation flow buys nuance at the price of non-determinism
Azure Translator in Foundry Tools is neural machine translation across 100+ languages through a single managed call, producing consistent output run to run at a low per-character cost, which suits high-volume plain copy. An LLM translation flow is the right pick only when tone, domain context, or nuance must be carried, because it costs more per token, adds latency, and can render the same source differently between runs.
Trap Fine-tuning a Custom Translator model per language pair when the source text has no domain terminology. Customization exists to teach in-domain vocabulary and style, so with generic copy it adds per-pair training and maintenance for no quality gain.
10 questions test this
- A consumer-to-consumer marketplace lets individual sellers write short product blurbs, and it must localize millions of these into 25 languages nightly. The copy is casual, generic, and carries no hou
- An aerospace maintenance provider must translate large volumes of service bulletins and repair procedures into six languages. The text is dense with standardized aircraft-component and airworthiness t
- A medical-device manufacturer must translate large volumes of technical service manuals dense with standardized clinical and device terminology into a fixed set of languages. It holds years of profess
- Your compliance team publishes a quarterly library of several thousand Word and PowerPoint files, each running to dozens of pages, in six target languages. The source text is plain corporate prose wit
- You maintain a self-service support portal whose roughly 3 million short help-center articles are re-localized into 18 languages every night, and a downstream job diffs each run against the previous n
- Your localization service in a Microsoft Foundry project carries two very different streams of traffic. Millions of short product-detail strings, plain generic copy with no house terminology, are resu
- A global marketplace is adding in-app chat between buyers and sellers who often speak different languages. The messages are short, casual, plain conversational text; they must be translated in both di
- A consumer brand's creative team localizes a small set of marketing taglines and hero banners into eight markets, where idiom, humor, and the documented brand voice must survive the crossing and the s
- You run a Microsoft Foundry localization pipeline for a travel-booking marketplace that caches every translated string keyed on its exact source text, so an unchanged listing is reused across releases
- A luxury hospitality group localizes concierge replies to guests across a dozen markets from within a Microsoft Foundry project. Each reply must adapt its register per locale, choosing formal or infor
- Foundry guardrails only inspect traffic that passes through a Foundry model or agent, so standalone content must be screened by calling the Content Safety API directly
The Foundry guardrail system applies at model and agent intervention points, so it can only see prompts, tool traffic, and completions flowing through a Foundry deployment. Content that must be moderated before it ever reaches a model, such as a user upload being stored or routed to a human, requires a direct call to the Azure AI Content Safety analyze APIs, which return per-category severity you compare against your own threshold.
Trap Expecting a model deployment's guardrail to screen an attachment the application never sends to the model. If the payload does not traverse an intervention point, no control fires.
6 questions test this
- A support agent built in Foundry Agent Service takes user questions, calls tools, and returns model-generated answers, all flowing through the agent. Security wants hateful, sexual, violent, and self-
- An online marketplace on Microsoft Foundry lets sellers upload listing photos that are published straight to the public catalog; the images are never passed to a vision model or agent. Before a photo
- You maintain a field-service agent in Foundry Agent Service that pulls incident write-ups from a partner's Model Context Protocol (MCP) server, and your application appends each returned write-up verb
- An insurance workflow on Microsoft Foundry extracts the text from claimant-uploaded documents and routes that text to a human adjuster's queue for manual review; it is never submitted to a model or ag
- Your consumer app in a Microsoft Foundry project lets members post a photo with a short caption straight to a public feed, and the post is never sent to a model or an agent. Review shows the problem p
- A community platform built on Microsoft Foundry lets members post product reviews that are written straight to a database and displayed to other shoppers; the review text is never sent to any model or
- Foundry Tools are surfaced through the Microsoft Foundry resource, so one account endpoint and one Entra identity cover the prebuilt AI capabilities
Content Understanding, Speech, Translator, Document Intelligence, and Content Safety are Foundry Tools available as part of the Microsoft Foundry resource rather than as separate standalone accounts you must each provision, connect, and secure. Consolidating them behind one account means a single endpoint, one set of role assignments, and one keyless authentication path for the whole tool surface.
Trap Provisioning a separate Cognitive Services account per capability and then wiring per-service keys, which duplicates the identity and networking work the Foundry resource already centralizes.
- Web and Bing grounding tools retrieve public web content and are documented as unsuitable for private or domain-specific stores
The Web Search and Grounding with Bing Search tools bring real-time public web results with URL citations into an agent's answer, which fits questions about current public information. Grounding with Bing Search retrieves from the web at large rather than specific web domains - to narrow results to domains you choose, use Grounding with Bing Custom Search or Web Search's custom_search_configuration allow/block lists. All of these reach only public, Bing-indexed content, so an internal catalog, policy library, or ticket history must be grounded through Azure AI Search or another knowledge source you own.
Trap Selecting Grounding with Bing to answer from an internal product catalog. It cannot reach private content at all, and its results carry no tenant permission model.
5 questions test this
- A developer-support agent in Microsoft Foundry should ground its answers only in a fixed set of public documentation sites, such as your product's public docs, a standards body's site, and a partner's
- A retailer's support agent in Microsoft Foundry needs to answer from two internal stores: a private product catalog and years of past support-ticket resolutions, both held only in the company's system
- A European insurer is adding a research agent to a Microsoft Foundry project so underwriters can ask questions about a financial regulator's published circulars, which are reissued every month. The in
- A market-intelligence agent in Microsoft Foundry must answer analyst questions about breaking public developments, such as a competitor's newly announced public pricing or a regulator's fresh public g
- You're building an employee help agent in Microsoft Foundry that must answer from an internal HR policy library stored only in your tenant. Answers have to respect each employee's access level, so a u
- Agentic retrieval plans subqueries from the query plus conversation history and runs them in parallel; classic RAG is a single-shot query your application orchestrates
In agentic retrieval an application calls a knowledge base with a retrieve action; an LLM decomposes the request, using conversation history, into focused subqueries that execute simultaneously against the knowledge sources, are each semantically reranked, and are merged into unified grounding data with optional references and an activity log. Classic RAG sends one query to the index and leaves planning and the LLM handoff to your code.
Trap Choosing 'iterative retrieval' as if it were a third selectable pattern. Iterative search is an internal follow-up pass inside agentic retrieval at medium reasoning effort, and it is sequential, so it adds latency rather than parallelism.
9 questions test this
- Your Foundry copilot must ground answers in a SharePoint document library that a compliance team edits continuously. A security review forbids copying those documents into any Azure data store, so Mic
- You are exposing an existing production Azure AI Search index as a search index knowledge source so that a Foundry agent can query it with agentic retrieval. The index was built with an earlier API ve
- You are building a Foundry chat copilot backed by an Azure AI Search knowledge base. Users ask multi-part questions that build on earlier turns, and compliance requires that each answer expose which p
- A Foundry support copilot calls an Azure AI Search knowledge base whose retrieval reasoning effort was set to minimal to hold down latency and token spend. Product now requires the retrieve response i
- Your team already ships a support-lookup service whose application code formulates one hybrid query to an Azure AI Search index and hands the flat result set to the model; queries are short and single
- Your team runs a Foundry copilot against an Azure AI Search knowledge base that fans each user question out to four knowledge sources at low retrieval reasoning effort. After a customer escalation ove
- A Foundry copilot calls an Azure AI Search knowledge base that specifies an LLM and returns a natural-language answer with inline citations on every retrieve request, and the application renders that
- Your team runs two Azure AI Search indexes on one search service, one holding chunked product documentation and one holding chunked release notes, and your application queries them today with a single
- To cut the latency of an agentic retrieval knowledge base on Microsoft Foundry, a teammate asks you to switch it into 'iterative retrieval' mode, believing that is a distinct, lighter-weight pipeline
- Retrieval reasoning effort on the knowledge base decides whether LLM query planning happens at all
Reasoning effort is configured on the knowledge base and defaults to low. At low and medium effort the knowledge base sends the query and conversation history to an LLM to generate subqueries; at minimal effort that planning step is skipped entirely and queries go straight to the knowledge sources. Lowering effort therefore cuts LLM token spend and latency at the cost of decomposition quality.
Trap Assuming minimal effort still uses conversation history. With planning bypassed there is no query rewriting or history-aware decomposition, so layered follow-up questions degrade.
6 questions test this
- A Foundry support copilot calls an Azure AI Search knowledge base whose retrieval reasoning effort was set to minimal to hold down latency and token spend. Product now requires the retrieve response i
- You are migrating an existing Azure AI Search application to a Foundry knowledge base. Your application already builds its own queries, and you want the knowledge base to issue direct text and vector
- Your Foundry copilot's knowledge base answers hard, exploratory questions where the first retrieval pass is frequently too shallow. You want the pipeline to judge whether the initial results are relev
- On a Microsoft Foundry solution, your Azure AI Search knowledge base is set to low reasoning effort, which suits almost all traffic. A weekly batch of complex analytical questions needs deeper query p
- A Foundry copilot calls an Azure AI Search knowledge base that specifies an LLM and returns a natural-language answer with inline citations on every retrieve request, and the application renders that
- To cut the latency of an agentic retrieval knowledge base on Microsoft Foundry, a teammate asks you to switch it into 'iterative retrieval' mode, believing that is a distinct, lighter-weight pipeline
- A knowledge source is either indexed, backed by a search index on your service, or remote, fetched from an external platform at query time
Knowledge sources define the content an agentic retrieval pipeline draws on. An indexed knowledge source is backed by a search index you host on the Azure AI Search service, so content must be ingested first. A remote knowledge source retrieves content from an external platform at query time, which avoids an ingestion pipeline but makes freshness and permissions the source system's responsibility.
Trap Assuming every knowledge source needs its own indexer. Remote sources are queried live and never populate a local index.
- RAG supplies changing facts, fine-tuning shapes behavior and format, and prompt engineering carries per-request instructions; Microsoft documents them as complementary
Retrieval-augmented generation injects retrieved passages at inference time, so refreshed content is reflected as soon as the index updates with no retraining. Fine-tuning adapts behavior, style, task performance, and output format rather than storing new facts, and prompt engineering is where per-conversation instructions such as language or support tier belong. A single scenario often needs all three together.
Trap Fine-tuning on a daily-changing catalog. Weights cannot be updated per transaction, so the model fabricates stale detail while incurring repeated training and hosting cost.
5 questions test this
- A Foundry travel assistant already grounds facts with RAG and uses a fine-tuned model for house style. A new requirement adds a per-conversation toggle: each user picks either a brief summary style or
- You are building a Foundry support assistant over a policy library that editors revise throughout the day. Answers must reflect edits made only hours earlier and must cite the specific source passage
- Your Foundry classification agent relies on a system message that has grown enormous: it now carries dozens of few-shot examples covering edge cases, which drives up tokens and latency on every call.
- Your Foundry project's triage assistant grounds its answers in an Azure AI Search index, but about one reply in four drifts from the mandated four-section report structure. A colleague wants to fine-t
- You are building a Foundry assistant over an 800-page internal underwriting handbook that the legal team revises every week. Answers must reflect the current text within hours of a revision, must cite
- Pull binds an indexer to a supported data source on a schedule; push sends documents from any origin at any moment but gives up skillsets
The pull model attaches an indexer to a supported data source object and automates crawling, change detection and skillset execution on a schedule that can run as often as every five minutes, so index freshness is bounded by that run interval. The push model calls the Index Documents REST API or an SDK client to submit per-document upload, merge, mergeOrUpload and delete actions from your own code, and Microsoft documents no restriction on data source type and no restriction on execution frequency, which makes push the only option when content originates outside the supported sources or when the index must stay in sync faster than any schedule. The price is that skillsets attach to indexers and don't run independently, so AI enrichment and integrated vectorization are unavailable on the push path and your code must produce the chunks, the vectors and the deletes.
Trap Answering a 'source is an on-premises ERP and the index must reflect price changes within seconds' requirement with 'shorten the indexer schedule': five minutes is the floor for a recurring indexer run, so the freshness requirement still fails no matter how the source is staged. The mirror-image trap is choosing push for a Blob-hosted PDF corpus that needs OCR and vectorization, which throws away the only pipeline that can run a skillset.
5 questions test this
- Your Foundry copilot must ground answers in a SharePoint document library that a compliance team edits continuously. A security review forbids copying those documents into any Azure data store, so Mic
- Your catalog service pushes JSON documents into an Azure AI Search index with the Index Documents API, because the records originate in a custom line-of-business application and the index must reflect
- Your Foundry RAG index must stay current with a large Azure SQL Database product table. Rows change often, and you want new, updated, and deleted rows picked up automatically on a recurring schedule w
- A cloud-native pricing microservice on Azure already emits each product update as normalized JSON that maps directly to your Azure AI Search index schema, and it needs no OCR, chunking, or vectorizati
- Your team is ingesting a Blob Storage library of scanned catalogs into an Azure AI Search index for a Foundry RAG agent. The requirement is to use Azure AI Search's built-in integrated vectorization a
- Built-in agent tools are executed by Foundry Agent Service, while custom tools point the agent at an endpoint or specification you supply
Built-in tools such as Web search, Code Interpreter, File Search, Azure AI Search, and Azure Functions are preconfigured capabilities the service executes for you after basic configuration. Custom tools are the Model Context Protocol tool, the OpenAPI 3.0/3.1 tool, and Agent-to-Agent endpoints, which you host or describe yourself. Function calling sits apart: the agent proposes the call and your application executes it and returns the result.
Trap Confusing Function calling with the Azure Functions tool. With Function calling your own process runs the code and returns the value; the Azure Functions tool has the service invoke a deployed Azure Function.
8 questions test this
- Your team already runs a queue-triggered Azure Function in Azure that reprices insurance quotes, and you want a Microsoft Foundry agent to call it during a conversation. The security team requires tha
- You are building a Microsoft Foundry agent for a newsroom that must weave current, publicly reported facts into its drafts and cite the pages it used. You want a capability that Foundry Agent Service
- You are building a Microsoft Foundry agent for a lending desk. A proprietary risk-scoring routine already runs inside your own application process and reads an in-memory session context that must neve
- Eight product teams at your company each maintain Foundry agents that need the same five tools: web search, an Azure AI Search index, and three partner MCP servers. Security wants the tool credentials
- Your Microsoft Foundry billing agent must hand off tax-calculation questions to a separate tax agent that a different team already built, deployed, and exposes over an A2A-compatible endpoint. You do
- A data-analyst copilot you are building in Microsoft Foundry lets users attach a CSV and then asks the agent to compute ad hoc aggregations and return a generated bar chart. You have no code to host a
- Your actuarial team runs a Microsoft Foundry agent on standard agent setup that writes and runs its own Python to answer ad hoc pricing questions, and every calculation depends on a licensed statistic
- You are building a Microsoft Foundry seat-reservation agent. When a traveler confirms a seat, the agent must invoke a method that already lives inside your running web application, mutates an in-memor
- Use the MCP tool for a shared server of tools maintained elsewhere and the OpenAPI tool for one external HTTP API described by a spec
The Model Context Protocol tool connects an agent to tools hosted on an MCP server endpoint, which is the documented fit when the tools are shared across multiple agents or owned by a different team. The OpenAPI tool connects the agent to an external HTTP API described by an OpenAPI 3.0 or 3.1 specification and supports anonymous, API key, and managed identity authentication defined inside the tool definition.
Trap Modeling an API key as a per-operation header parameter in the OpenAPI spec. The connection's key is injected only when the spec declares it as an apiKey security scheme referenced from a security section.
6 questions test this
- Your Microsoft Foundry agent must call an internal orders service exposed as a single REST API behind Microsoft Entra ID. The vendor publishes a complete OpenAPI 3.1 specification for it, your team ow
- You are extending a Microsoft Foundry logistics agent to call one third-party shipment-tracking service. The vendor owns and operates the service and publishes a complete OpenAPI 3.0 specification for
- Your platform team maintains a central set of internal tools (ticketing, inventory, and entitlements) on a single server that exposes them over the Model Context Protocol, and several Foundry agents a
- You are extending a Microsoft Foundry travel agent to call a single third-party currency-conversion REST API. The vendor publishes a complete OpenAPI 3.1 specification for the service, the API is owne
- Eight product teams at your company each maintain Foundry agents that need the same five tools: web search, an Azure AI Search index, and three partner MCP servers. Security wants the tool credentials
- Your Microsoft Foundry billing agent must hand off tax-calculation questions to a separate tax agent that a different team already built, deployed, and exposes over an A2A-compatible endpoint. You do
- A Foundry toolbox bundles many tools behind one MCP-compatible endpoint with central credential handling and versioning
A toolbox is a curated bundle of tools configured once and exposed as a single MCP-compatible endpoint, so any MCP-capable runtime can consume it instead of every agent definition attaching each tool. The toolbox handles credential injection, token refresh, and policy enforcement centrally with Microsoft Entra ID and OAuth, and supports versions that agents on the consumer endpoint pick up when you promote a new default.
Trap Assuming toolbox promotion requires redeploying every consuming agent. Agents bound to the consumer endpoint receive the promoted default version without code changes.
- File Search searches a vector store built from uploaded files; the Azure AI Search tool grounds on an index you already own and control
The File Search tool augments an agent with knowledge from files developers or end users upload, backed by vector stores the agent creates. The Azure AI Search tool instead grounds the agent on an existing Azure AI Search index, which is what you use when the corpus already has its own ingestion pipeline, enrichment skills, semantic configuration, and permission model.
Trap Choosing File Search when the corpus must stay under your own index governance. File Search vector stores are created by the agent, so index schema, enrichment, and refresh are not yours to control.
8 questions test this
- You are building a Microsoft Foundry support agent whose file search must always cover a curated library of about 3,000 product manuals that your team re-ingests each week when the library is updated.
- You are designing a Microsoft Foundry agent for a manufacturing team whose inspection content sits in a connected SharePoint site: Word procedure documents, Excel workbooks holding tolerance tables, a
- You are building a Microsoft Foundry research assistant where each end user attaches their own PDFs and Word documents at the start of a session and then asks questions answered from just those files.
- Your data platform team already runs a production Azure AI Search index over your policy corpus, complete with its own ingestion pipeline, a custom enrichment skillset, a semantic configuration, and a
- Your Microsoft Foundry agent must answer HR questions from policy documents that already live in a connected SharePoint site in your tenant. A hard requirement is that each employee sees answers drawn
- Your finance team already governs its sales and revenue data in Microsoft Fabric across a warehouse and a Power BI semantic model, and has published a Fabric data agent over those sources. You are bui
- A small startup team is shipping a Microsoft Foundry support agent that should answer only from a fixed set of about forty product-manual PDFs the developers curate. The team has no Azure AI Search se
- A nightly, unattended Microsoft Foundry job must generate compliance summaries from content that currently lives only in a connected SharePoint site. The job runs headless on a schedule with no signed
The SharePoint tool grounds an agent on documents in a connected SharePoint site or folder using the Microsoft 365 Copilot retrieval stack, so you do not export content, build a semantic index, or manage refresh logic; the Microsoft Fabric data agent tool answers questions over governed structured data by calling a published Fabric data agent over its lakehouse, warehouse, KQL database, or Power BI semantic model sources. Both use identity passthrough (On-Behalf-Of): the retrieval or query runs as the signed-in user, so each end user must already hold read access to the SharePoint site or to the Fabric data agent and its underlying sources, app-only/service-principal authentication is unsupported, and the data source and Foundry project must be in the same tenant.
Trap Reaching for File Search or the Azure AI Search tool and building your own index over content that already lives in SharePoint or Fabric — that duplicates the corpus, adds a refresh pipeline, and drops the source's per-user permissions unless you rebuild them. The opposite trap is assuming a headless or app-only agent can use these tools, or that granting the agent's managed identity access is sufficient: with On-Behalf-Of the call fails unless the individual end user has access, which also rules these tools out for unattended batch jobs with no signed-in user.
8 questions test this
- You are designing a Microsoft Foundry agent for a manufacturing team whose inspection content sits in a connected SharePoint site: Word procedure documents, Excel workbooks holding tolerance tables, a
- You are building a Microsoft Foundry research assistant where each end user attaches their own PDFs and Word documents at the start of a session and then asks questions answered from just those files.
- Your data platform team already runs a production Azure AI Search index over your policy corpus, complete with its own ingestion pipeline, a custom enrichment skillset, a semantic configuration, and a
- Your Foundry agent reaches governed sales data through the Microsoft Fabric data agent tool, and analysts query it with their own identities, which works today. The Fabric team adds a warehouse source
- Your Microsoft Foundry agent must answer HR questions from policy documents that already live in a connected SharePoint site in your tenant. A hard requirement is that each employee sees answers drawn
- Your finance team already governs its sales and revenue data in Microsoft Fabric across a warehouse and a Power BI semantic model, and has published a Fabric data agent over those sources. You are bui
- A small startup team is shipping a Microsoft Foundry support agent that should answer only from a fixed set of about forty product-manual PDFs the developers curate. The team has no Azure AI Search se
- A nightly, unattended Microsoft Foundry job must generate compliance summaries from content that currently lives only in a connected SharePoint site. The job runs headless on a schedule with no signed
- A conversation persists the items of one session; agent memory retains distilled knowledge across sessions
Conversations store items rather than only chat messages, capturing user and assistant messages, tool call items, tool output items, and output items so the next turn can reuse that context within the session. Memory in Foundry Agent Service is a separate managed long-term store that extracts, consolidates, and later retrieves durable knowledge so an agent stays continuous across sessions, devices, and workflows.
Trap Reusing the same agent session ID to replay prior turns. With the Responses protocol, continuity comes from previous_response_id or a conversation ID; the session ID alone does not resend earlier messages to the model.
17 questions test this
- A regulated workload runs on Foundry Agent Service with a zero-data-retention requirement, so your application sets store to false on every response call and the service persists no response history s
- You are deploying a single Foundry Agent Service support agent that serves thousands of end users through one backend application. Each user's remembered preferences and history must stay strictly iso
- Your Foundry Agent Service agent calls a pricing tool partway through a support session, and later turns in the same session must reference that tool's output without invoking the tool again. A develo
- You are building a Microsoft Foundry agent whose users hold long single-session conversations, and every turn is generated against the same conversation object so earlier messages, tool calls, and too
- Your Foundry Agent Service assistant uses long-term memory, and because the LLM writes memory from what users say, a security reviewer warns that a malicious user could plant false or harmful facts th
- You are choosing where to keep a personal shopping assistant's understanding of each individual customer — their sizes in specific brands, color preferences, and past returns — so it is learned from o
- A teammate builds a multi-turn assistant with the Responses protocol in Foundry Agent Service but does not create a conversation object. On the second turn they resend only the new user message and ex
- You are adding long-term memory to a Foundry Agent Service prompt agent so it remembers user preferences, and you do not want to write custom code that parses each chat, decides what matters, and pers
- Your Foundry Agent Service retail assistant is reached by the same customer through a phone app one week and a website chat the next, and no shared conversation is carried between the two channels. Th
- A support agent on Foundry Agent Service must stay coherent across a long, multi-topic conversation by drawing on distilled summaries of the topics and threads already discussed, refreshed each turn f
- You are designing a Microsoft Foundry customer-support agent. It must ground answers in your company's curated policy documents, let a user search files they attach during a chat, and, separately, rem
- You are designing a Foundry Agent Service assistant that must keep immediate turn-by-turn context within each live session and also recall a user's distilled preferences whenever they start a brand-ne
- A user of your Foundry Agent Service booking assistant is halfway through a detailed multi-step reservation, several messages and tool-call results deep, when they close the app. The next day they ret
- During testing of your Foundry Agent Service memory-enabled agent, a user first says they are allergic to peanuts and, weeks later in a different session, says the peanut allergy is gone. A teammate w
- A user of your memory-enabled Foundry Agent Service assistant says, mid-conversation, 'Forget my old delivery address, remove it now.' Your compliance rule is to honor an explicit user request to drop
- A user of your Foundry Agent Service assistant returns days later, on a different device, and expects the agent to already know their durable preferences — captured across many separate past chats — w
- You are building a customer-support agent in a Microsoft Foundry project. Within a single help session, every turn must automatically reuse the earlier user and assistant messages plus the outputs of
- Foundry agent memory extracts three long-term memory types, each with its own retrieval moment
User profile memory holds durable preferences and personal context such as language or accessibility needs and should be retrieved near the start of a conversation to establish personalization. Chat summary memory holds distilled summaries of prior topics and is retrieved per turn for continuity. Procedural memory holds reusable how-to routines inferred from past interactions and is retrieved when the user asks for a recurring workflow.
Trap Expecting memory to be raw transcript storage. The service extracts and consolidates with an LLM, merging duplicates and resolving conflicting facts, so what is retrieved is distilled rather than verbatim.
17 questions test this
- Your Foundry Agent Service travel assistant must apply a returning user's durable personalization — their preferred language and an accessibility need for larger, simplified formatting — from the very
- You are deploying a single Foundry Agent Service support agent that serves thousands of end users through one backend application. Each user's remembered preferences and history must stay strictly iso
- Over many past sessions your Foundry Agent Service operations assistant has repeatedly walked a user through the same multi-step new-hire onboarding routine: the specific forms to file, in what order,
- You are building a Microsoft Foundry agent whose users hold long single-session conversations, and every turn is generated against the same conversation object so earlier messages, tool calls, and too
- Over several past sessions your Foundry Agent Service operations assistant has helped a user run the same multi-step month-end reconciliation. Now the user says 'do my usual month-end run,' and the ag
- Your Foundry Agent Service assistant uses long-term memory, and because the LLM writes memory from what users say, a security reviewer warns that a malicious user could plant false or harmful facts th
- You are choosing where to keep a personal shopping assistant's understanding of each individual customer — their sizes in specific brands, color preferences, and past returns — so it is learned from o
- You are adding long-term memory to a Foundry Agent Service prompt agent so it remembers user preferences, and you do not want to write custom code that parses each chat, decides what matters, and pers
- Your Foundry Agent Service retail assistant is reached by the same customer through a phone app one week and a website chat the next, and no shared conversation is carried between the two channels. Th
- A support agent on Foundry Agent Service must stay coherent across a long, multi-topic conversation by drawing on distilled summaries of the topics and threads already discussed, refreshed each turn f
- You are designing a Microsoft Foundry customer-support agent. It must ground answers in your company's curated policy documents, let a user search files they attach during a chat, and, separately, rem
- You are designing a Foundry Agent Service assistant that must keep immediate turn-by-turn context within each live session and also recall a user's distilled preferences whenever they start a brand-ne
- During testing of your Foundry Agent Service memory-enabled agent, a user first says they are allergic to peanuts and, weeks later in a different session, says the peanut allergy is gone. A teammate w
- A user of your memory-enabled Foundry Agent Service assistant says, mid-conversation, 'Forget my old delivery address, remove it now.' Your compliance rule is to honor an explicit user request to drop
- A user of your Foundry Agent Service assistant returns days later, on a different device, and expects the agent to already know their durable preferences — captured across many separate past chats — w
- You instrument a memory-enabled Foundry Agent Service agent and observe two distinct timings: the user's stable personalization is applied immediately in the opening response of each conversation, whe
- During testing of your memory-enabled Foundry Agent Service assistant, a user mentions across many separate sessions that they prefer window seats and vegetarian meals, repeating each preference sever
- The memory search tool is the simple path; the Memory Store APIs give item-level CRUD, retention, and explicit lifecycle control
Attaching the memory search tool to a prompt agent lets it read from and write to the memory store during conversations, which is the recommended default. The low-level Memory Store APIs are for advanced cases needing direct control of individual memory records, store-level default time to live, and explicit remember-or-forget behavior, but they require you to set scope explicitly on every request.
Trap Expecting the low-level APIs to infer scope from the caller. Automatic scope resolution is supported only through the memory search tool with scope bound to the user ID.
Setting Up AI Solutions in Foundry
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.
Managing, Monitoring, and Securing AI Systems
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.
Responsible AI for Generative and Agentic Systems
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.
Implement generative AI and agentic solutions
Build Generative Applications with Microsoft Foundry
Read full chapterCheat sheet
Sharp facts the exam loves — scan these before test day.
- One Foundry project endpoint fronts every project API, and AIProjectClient is built from it plus a credential
The Foundry SDK (Python package azure-ai-projects 2.x) is a thin client over all Foundry project APIs reached through a single project endpoint of the form https://.services.ai.azure.com/api/projects/. You construct AIProjectClient with that endpoint and a credential such as DefaultAzureCredential, so one configuration value covers models, agents, tools, and evaluations.
Trap Configuring the app with the Azure OpenAI resource endpoint (https://.openai.azure.com/openai/v1) instead - that surface serves model inference only and cannot reach Foundry agents, project connections, or evaluations.
16 questions test this
- A developer on your team builds a project client against your Foundry project endpoint and successfully lists the project's connections. She then tries to open a multi-turn chat with an agent the team
- Your Python service builds an AIProjectClient on a Microsoft Foundry project endpoint and uses it for the project's agents, connections, and evaluation runs. A new requirement screens customer-submitt
- Your team is standing up a new Python service inside a Microsoft Foundry project. The service creates agent versions, resolves the project's connections to external resources, and later runs evaluatio
- Your Foundry project runs in the application team's subscription. A shared platform subscription holds a different Foundry resource carrying the large chat deployment that the platform team wants ever
- You are wiring up a new Python application on a Foundry resource that hosts a single project. At startup it must construct an AIProjectClient that can invoke the project's agents, enumerate the projec
- Your Python service builds an AIProjectClient from your Foundry project endpoint and uses it for the project's agents and connections. The product team now wants a summarization feature that runs on a
- You are building a Python application on Microsoft Foundry that must invoke a deployed chat model, call a project agent, list the project's connections, and launch an evaluation run. Your team wants o
- A containerized Python service authenticates to a Microsoft Foundry project with a workload managed identity that already holds the Foundry User role. Every call the service makes returns 404 Not Foun
- Your team currently configures three environment variables for the application: an Azure OpenAI inference URL, an agents URL, and an evaluations URL, and they frequently drift out of sync across envir
- A contractor prototyping against your Foundry project asks to authenticate the Foundry SDK's project client with one of the Foundry resource's API keys, arguing that key authentication is faster to ar
- During a design review an architect claims that because the Foundry project endpoint fronts every project API, the application needs no other base URL at all. The application will create agent version
- Your Foundry application uses two clients: an AIProjectClient on the project endpoint for agents and evaluations, and a separate OpenAI SDK client pointed at your Azure OpenAI resource's /openai/v1 en
- Your team runs its agent orchestration inside an existing container app instead of packaging it as a Foundry hosted agent. The orchestrator is written with Microsoft Agent Framework and must reach Fou
- A single Microsoft Foundry resource in your subscription hosts two projects: a shared research project and a regulated claims project that keeps its own connections and agents. A new Python service mu
- A design review covers a Foundry application that reaches agents, connections, and evaluations through one project endpoint. A new feature must generate its own vector embeddings for a similarity inde
- You are adding a custom retrieval path to a Foundry chat application. The application already reaches its agent and conversation traffic through the project endpoint, and it must now generate its own
- The project client handles Foundry-native operations while get_openai_client() returns the OpenAI-shaped client
AIProjectClient exposes Foundry-native work that has no OpenAI equivalent - reading project properties, listing and resolving connections, and enabling tracing. Calling project_client.get_openai_client() returns an OpenAI-compatible client used for anything modeled on OpenAI shapes: responses, conversations, vector stores, evaluations, and fine-tuning. Most production apps instantiate both.
Trap Expecting the project client itself to expose response or conversation methods, for example project.responses.create(...), instead of going through the OpenAI-compatible client it hands out.
14 questions test this
- You are scripting the creation of a Foundry agent that uses the Azure AI Search tool. The index and the project connection to the search service already exist, and your deployment pipeline knows only
- A developer on your team builds a project client against your Foundry project endpoint and successfully lists the project's connections. She then tries to open a multi-turn chat with an agent the team
- Your Python service builds an AIProjectClient on a Microsoft Foundry project endpoint and uses it for the project's agents, connections, and evaluation runs. A new requirement screens customer-submitt
- You are wiring up a new Python application on a Foundry resource that hosts a single project. At startup it must construct an AIProjectClient that can invoke the project's agents, enumerate the projec
- Your Foundry application reaches its agents and evaluations through an AIProjectClient built on the project endpoint. You add a nightly job that embeds thousands of product documents so they can be in
- You are extending a Foundry application that already builds a project client from the project endpoint. The next milestone adds three capabilities: reading which external resources the project is conn
- You are building a Python application on Microsoft Foundry that must invoke a deployed chat model, call a project agent, list the project's connections, and launch an evaluation run. Your team wants o
- Your Foundry application already builds an AIProjectClient from the project endpoint and uses it to enumerate model deployments and resolve connections. A new milestone requires the application to lau
- During a design review an architect claims that because the Foundry project endpoint fronts every project API, the application needs no other base URL at all. The application will create agent version
- A developer inherits a Foundry application that holds only an OpenAI-compatible client obtained earlier from get_openai_client(). The next task is to read the project's properties, enumerate the proje
- You are instrumenting a Foundry agent application so that client-side spans land in the Application Insights resource already connected to the project. You do not want the Application Insights connect
- Your team runs a nightly regression evaluation for a Microsoft Foundry agent from a CI pipeline that authenticates to the project endpoint with a managed identity. The test set is a hand-curated JSONL
- Your team runs its agent orchestration inside an existing container app instead of packaging it as a Foundry hosted agent. The orchestrator is written with Microsoft Agent Framework and must reach Fou
- Your Foundry application must hold a multi-turn support session with a named agent so that each follow-up question sees the earlier turns. A developer creates the agent version through the project cli
- Embedding requests are not routed by the Foundry project endpoint
The project endpoint used by the Foundry SDK does not currently route embedding calls. An application that generates its own vectors must send embedding requests to the Azure OpenAI /openai/v1 endpoint with the OpenAI SDK, even while the rest of the application talks to the project endpoint.
Trap Assuming the 'single endpoint' promise is absolute and pointing an embedding call at the project endpoint, which fails rather than transparently forwarding.
5 questions test this
- Your Foundry application reaches its agents and evaluations through an AIProjectClient built on the project endpoint. You add a nightly job that embeds thousands of product documents so they can be in
- During a design review an architect claims that because the Foundry project endpoint fronts every project API, the application needs no other base URL at all. The application will create agent version
- Your Foundry application uses two clients: an AIProjectClient on the project endpoint for agents and evaluations, and a separate OpenAI SDK client pointed at your Azure OpenAI resource's /openai/v1 en
- A design review covers a Foundry application that reaches agents, connections, and evaluations through one project endpoint. A new feature must generate its own vector embeddings for a similarity inde
- You are adding a custom retrieval path to a Foundry chat application. The application already reaches its agent and conversation traffic through the project endpoint, and it must now generate its own
- Project connections hold external targets and credentials that tools reference by project_connection_id
A Foundry project connection stores an external resource's target URI plus its authentication material - custom keys, OAuth app registration, project managed identity, or agent identity. Tool definitions reference the connection by project_connection_id rather than carrying the secret, so credentials never appear in agent definitions, prompts, or application configuration.
Trap Shipping the downstream API key in an environment variable or in the tool's header block, which defeats rotation and removes per-principal attribution.
8 questions test this
- You are scripting the creation of a Foundry agent that uses the Azure AI Search tool. The index and the project connection to the search service already exist, and your deployment pipeline knows only
- Your Foundry agent uses an OpenAPI tool to call a partner pricing REST API that authenticates with an API key in a custom HTTP header. Security requires the key never appear in the agent definition, t
- Your Foundry project runs in the application team's subscription. A shared platform subscription holds a different Foundry resource carrying the large chat deployment that the platform team wants ever
- A Foundry project already holds connections to Azure AI Search, Azure Storage, and a partner API stored with custom keys. A new compliance standard requires every credential the project's tools use to
- A Foundry agent calls your company's internal ticketing MCP server. Each employee who chats with the agent must see only their own tickets, and the ticketing team's audit log has to attribute every ca
- Your Foundry agent reaches a partner inventory service through an MCP tool. The partner issues a bearer token that has to be rotated every 30 days, and your security team requires that the token never
- You are instrumenting a Foundry agent application so that client-side spans land in the Application Insights resource already connected to the project. You do not want the Application Insights connect
- A Foundry agent grounds its answers in an Azure AI Search index through the Azure AI Search tool. Your network team has now disabled public network access on the search service, which is reachable onl
- Claude models deployed in Foundry answer on a separate /anthropic route, not the OpenAI-compatible surface
Anthropic Claude deployments in Foundry are called through https://.services.ai.azure.com/anthropic using the Anthropic Messages API and the Anthropic SDK. They are not served by the OpenAI-compatible client, so an application that mixes model families needs a second client path.
Trap Assuming every catalog model is reachable through the same OpenAI-compatible responses call.
- A Responses call returns output_text plus a typed output array that exposes every tool invocation
openai.responses.create(...) returns output_text for the final assistant text and an output list of typed items such as message, function_call, file_search_call, and web_search_call. Inspecting tool behavior therefore means iterating response.output and switching on item.type, not parsing the answer text.
Trap Trying to infer which tool ran from the wording of the final message instead of reading the output items.
13 questions test this
- Your team ships a Foundry feature that calls the Responses API with the web search tool on a reasoning-capable model. The code reads response.output[0] and treats it as the assistant message, but it i
- Your Foundry app calls the Responses API with a custom function tool named get_order_status. To actually run the function, your code needs the exact arguments the model chose for this turn, and it mus
- You are building a Foundry-powered chat UI that must show small badges under each answer indicating which built-in tools the model used for that turn—for example a "Web" badge when it browsed and a "F
- Your Foundry chat backend calls the Responses API and chains every turn with previous_response_id; it never creates a conversation object. A customer disputes an answer the assistant produced last wee
- Your Microsoft Foundry order assistant calls the Responses API with a custom pricing function tool, and the service keeps no copy of the payload it sends. A tester reports one turn where the quoted pr
- Your team is migrating a Foundry chat backend from Chat Completions to the Responses API on the same deployment and the same guardrail configuration. A compliance feature logs, for every successful ca
- Your Microsoft Foundry chat backend streams Responses API output to a browser so users see tokens as they arrive, and token-by-token rendering is a product requirement. The backend retries only when a
- You built a customer-support app in a Microsoft Foundry project that calls the Responses API with a model configured with both the file search and web search tools. For an observability dashboard, you
- Your Foundry chat app answers from an internal vector store by using the file search tool through the Responses API. Support engineers need to know, for each answer, whether the model actually perform
- A developer on your team calls the Responses API with a custom function tool and logs response.output_text, expecting it to contain the function name and arguments the model produced so the app can ex
- Your team's Foundry procurement assistant calls the Responses API in a Microsoft Foundry project with a remote MCP server attached as an mcp tool, left at its default require_approval setting. During
- You are building a Python research assistant on a Microsoft Foundry project that calls the Responses API with both the web search tool and a custom function tool enabled. Product wants per-turn teleme
- A developer on your team consumes a Microsoft Foundry agent through the Responses API. Within one turn the agent may call a custom pricing function twice and then run a file search before it answers,
- Chat Completions maximizes OpenAI compatibility, but only the Responses API reaches Foundry agents and platform tools
The Azure OpenAI /openai/v1 surface offers the full OpenAI API shape with the lowest latency and best client-library compatibility. Foundry agents, Foundry-exclusive platform tools, and evaluations are only available through the Responses API served on the project endpoint, so a chat app that later needs agent tooling must move off the direct model route.
Trap Choosing the direct Azure OpenAI endpoint for a build that also needs file search, memory, or MCP tools.
10 questions test this
- A team is porting an existing chatbot that already uses the OpenAI Python SDK over to Azure. Their requirements are to reuse the existing OpenAI client library with the fewest code changes, get the lo
- Your Microsoft Foundry data pipeline must generate vector embeddings for a large product catalog at high volume so the vectors can be written to an Azure AI Search index for retrieval. The team alread
- A team ports a Python chat service from OpenAI to Azure by pointing the OpenAI client's base_url at their Foundry resource's /openai/v1 endpoint and authenticating with DefaultAzureCredential. Their g
- Your Python service authenticates with a managed identity and calls a gpt-4.1 deployment through the OpenAI SDK at your Azure OpenAI resource's /openai/v1 endpoint. The next release must also call Azu
- Your team is migrating a Foundry chat backend from Chat Completions to the Responses API on the same deployment and the same guardrail configuration. A compliance feature logs, for every successful ca
- Your team ships a chat feature today on the Azure OpenAI /openai/v1 endpoint using the Chat Completions API for maximum client-library compatibility. The roadmap for next quarter adds a Foundry agent
- Your Python service already calls GPT deployments through the OpenAI client pointed at your Foundry resource's /openai/v1 endpoint, and a security standard requires Microsoft Entra ID authentication.
- Your Foundry chat app answers from an internal vector store by using the file search tool through the Responses API. Support engineers need to know, for each answer, whether the model actually perform
- Your Python service in a Microsoft Foundry resource already calls two GPT deployments through the OpenAI SDK pointed at the resource's /openai/v1 endpoint. Product now adds an Anthropic Claude Sonnet
- You are building the backend for a Microsoft Foundry chat application that must ground answers with file search over a Foundry knowledge source, attach the memory tool so it can recall each user's ear
- Responses are stored server-side by default so previous_response_id continues a multi-turn exchange
Because the service persists response history, the next call can pass previous_response_id and inherit the prior turn's context without the client resending any messages. This is the lightest multi-turn pattern and needs no conversation object.
Trap Rebuilding and resending the whole message array on every turn when a response id already carries the context.
12 questions test this
- A Foundry customer-support assistant calls the Responses API with default settings and chains turns with previous_response_id; it creates no conversation object, and it logs every response ID it recei
- Your Foundry chat backend calls the Responses API and chains every turn with previous_response_id; it never creates a conversation object. A customer disputes an answer the assistant produced last wee
- A Microsoft Foundry analysis service calls a gpt-5 reasoning deployment through the Responses API under a zero-data-retention standard, so every request sets store to false and the client carries cont
- You are adding a long-running research feature to a Foundry application, where a single Responses API call against a reasoning model can run for several minutes. A data-handling standard for this work
- Your Microsoft Foundry order assistant calls the Responses API with a custom pricing function tool, and the service keeps no copy of the payload it sends. A tester reports one turn where the quoted pr
- A compliance rule forbids the Responses API from persisting any response content server-side for your Microsoft Foundry assistant, so you set store to false on every call. The assistant must still hol
- You are implementing a simple single-user assistant on the Responses API in a Microsoft Foundry project. The conversation is a straight linear back-and-forth with no branching and no need for a durabl
- A Microsoft Foundry retail assistant must let a shopper leave and return months later and pick up the same history, and support engineers must be able to open that history and see the tool calls and t
- Your team is about to build its own database to store conversation history for a multi-turn assistant that calls the Responses API in a Microsoft Foundry project, assuming the client must persist and
- You are adding multi-turn chat to a stateless serverless backend that calls the Responses API in a Microsoft Foundry project. Each turn runs in a fresh function instance with no local memory, and you
- You're building a multi-turn assistant on the Responses API in a Microsoft Foundry project. Turns are getting slow and request payloads large because the client resends the entire, growing message arr
- Your team's Foundry procurement assistant calls the Responses API in a Microsoft Foundry project with a remote MCP server attached as an mcp tool, left at its default require_approval setting. During
- Setting store=false stops persistence and forces the caller to resend prior output items
With store set to false the service does not persist the response, so previous_response_id has nothing to reference and the application must pass earlier output items back as input on the following request. This is the pattern for zero-data-retention environments and for teams that require full control of conversation state.
Trap Treating store=false as a logging switch and then finding follow-up turns have lost all context.
- The model argument names a deployment in the project, so model swaps are a deployment-level change
Inference calls pass the deployment name created in the Foundry project rather than a catalog model identifier. Repointing a deployment at a newer model version, or creating a same-named deployment of a different model, changes behavior without touching application code.
Trap Hard-coding a catalog model string that does not match any deployment name in the target project.
- Structured outputs bind generation to a JSON Schema only when strict is true and the schema follows the supported subset
Setting the response text format to json_schema with strict set to true makes the model conform to the supplied schema. The supported subset requires every property to be listed in required, objects to declare additionalProperties as false, and forbids anyOf at the schema root.
Trap Writing a natural schema with genuinely optional fields; strict mode rejects it because all properties must be required (model optionality by allowing null instead).
14 questions test this
- Your support assistant in a Microsoft Foundry project calls a deployed gpt-4.1 model through chat completions with a single function tool named get_refund_policy. In testing the model answered several
- You are implementing a loan-decision extractor in a Microsoft Foundry project. Each call must return either an approval object or a decline object, so a developer defines the strict json_schema with a
- Your reconciliation service in a Microsoft Foundry project feeds a deployed gpt-4o model's JSON output into a legacy downstream reader that assumes the object's keys appear in a specific, stable order
- You are enabling structured outputs for a candidate-profile extractor in a Microsoft Foundry project. Your JSON Schema includes middle_name and a security-clearance level that many resumes simply don'
- You add strict json_schema (structured outputs) to a function tool on the Azure OpenAI chat completions endpoint so the arguments the model generates always match your parameter schema. The same assis
- Your merchandising agent in a Microsoft Foundry project asks a deployed gpt-4o model to extract salient attributes from free-form product blurbs and write them to a JSON document that analysts later q
- You are building an incident-routing agent in a Microsoft Foundry project on a deployed gpt-4.1 model. Each response must include a category field whose value is exactly one of a small closed set (net
- You are building a contract-extraction service in a Microsoft Foundry project that sends agreement text to a deployed GPT-4.1 model and returns a fixed set of fields—contract id, counterparty, effecti
- During a design review for a Microsoft Foundry project, a developer states that switching the deployed model to response_format json_object will guarantee the response matches the team's documented sc
- Your team runs a purchase-order extraction service in a Microsoft Foundry project against a deployed gpt-4.1 model, using a response format of json_schema with strict enabled, so every reply carries e
- Your team builds a compliance-tagging service in a Microsoft Foundry project. A deployed gpt-4o model must return a strict json_schema object with nested tag objects, and no keys outside the declared
- You are building a Foundry project agent whose deployed gpt-4.1 model calls a client-side function tool. To make the arguments the model generates for that tool always conform to your JSON Schema, you
- Your team's invoice-extraction pipeline in a Microsoft Foundry project calls a deployed model with response_format set to json_object and instructs it in the system message to return invoice_number, t
- Your order-intake pipeline in a Microsoft Foundry project calls a deployed gpt-4o model with response_format set to json_object and then runs a JSON Schema validator; when a key is renamed or missing
- JSON mode guarantees parseable JSON but never guarantees your field names or types
JSON mode constrains the model to emit syntactically valid JSON and nothing more. Field names, nesting, types, and presence of required keys are unenforced, so a downstream parser can still break on a renamed or missing property. Only structured outputs enforces the contract itself.
Trap Selecting JSON mode for a schema-driven extraction pipeline and adding validation retries instead of enforcing the schema at generation time.
11 questions test this
- You are adding JSON mode to a summarization service in a Microsoft Foundry project so the model returns a JSON object your app can parse. You set response_format to json_object, but calls fail with a
- Your support assistant in a Microsoft Foundry project calls a deployed gpt-4.1 model through chat completions with a single function tool named get_refund_policy. In testing the model answered several
- Your reconciliation service in a Microsoft Foundry project feeds a deployed gpt-4o model's JSON output into a legacy downstream reader that assumes the object's keys appear in a specific, stable order
- Your merchandising agent in a Microsoft Foundry project asks a deployed gpt-4o model to extract salient attributes from free-form product blurbs and write them to a JSON document that analysts later q
- You are building an incident-routing agent in a Microsoft Foundry project on a deployed gpt-4.1 model. Each response must include a category field whose value is exactly one of a small closed set (net
- A summarization endpoint in a Microsoft Foundry project runs a deployed model with response_format json_object, and most responses parse cleanly, but a subset of long documents intermittently produces
- You are building a contract-extraction service in a Microsoft Foundry project that sends agreement text to a deployed GPT-4.1 model and returns a fixed set of fields—contract id, counterparty, effecti
- During a design review for a Microsoft Foundry project, a developer states that switching the deployed model to response_format json_object will guarantee the response matches the team's documented sc
- Your team runs a purchase-order extraction service in a Microsoft Foundry project against a deployed gpt-4.1 model, using a response format of json_schema with strict enabled, so every reply carries e
- Your team's invoice-extraction pipeline in a Microsoft Foundry project calls a deployed model with response_format set to json_object and instructs it in the system message to return invoice_number, t
- Your order-intake pipeline in a Microsoft Foundry project calls a deployed gpt-4o model with response_format set to json_object and then runs a JSON Schema validator; when a key is renamed or missing
- A client-side function tool suspends the turn until your application returns the call output
When a function tool is selected, the model emits a function_call item carrying name, JSON arguments, and a call_id. Your application executes the code and posts a function call output item keyed to that call_id; only then does the model produce its final message. Multiple function_call items can be emitted in one response and each needs its own output.
Trap Expecting Agent Service to run your Python function - only service-side tools such as Azure Functions, OpenAPI, and MCP tools are executed by the platform.
13 questions test this
- Your Foundry project agent registers a client-side function tool named get_account_balance. On a customer question, the agent returns a response whose only output item has type function_call, carrying
- An operations agent in a Microsoft Foundry project defines a client-side function tool get_service_health. A user asks for the status of three services in one message, and the agent's single response
- You are writing the handler loop for an agent in a Microsoft Foundry project that uses a client-side function tool. To dispatch to the right function, parse its inputs, and return a result the agent c
- Your support assistant in a Microsoft Foundry project calls a deployed gpt-4.1 model through chat completions with a single function tool named get_refund_policy. In testing the model answered several
- Your claims agent in a Microsoft Foundry project registers a client-side function tool that submits a fraud check to a partner service, and that check routinely takes 15 to 20 minutes to return. Your
- Your Foundry project agent exposes two client-side function tools, get_ticket_status and get_sla_deadline. A customer asks about both a ticket's state and its resolution deadline in one message, and t
- You are building an order-status agent on the Responses API in a Microsoft Foundry project and register a client-side function tool named get_order_status. On a user request, the model's response cont
- A developer new to Microsoft Foundry Agent Service registers a Python function as a function tool on an agent and expects the service to import and run that Python automatically each turn, the way the
- Your travel agent on the Responses API in a Microsoft Foundry project defines a get_weather function tool. A user asks for the weather in three cities in one message, and the model's single response r
- You build a returns agent in a Microsoft Foundry project that registers a client-side function tool named get_return_window. On a customer question the agent's run produces a response containing a fun
- Your team runs an agent in a Microsoft Foundry project that must call an internal inventory lookup on every relevant turn. The team wants the tool invocation handled by the platform, so that no always
- You are building a Foundry project agent whose deployed gpt-4.1 model calls a client-side function tool. To make the arguments the model generates for that tool always conform to your JSON Schema, you
- You build an agent in a Microsoft Foundry project with a client-side function tool named get_shipment_eta. On a user question the agent's first response comes back containing a function_call item with
- tool_choice=required forces a tool call on the turn while the default auto lets the model answer unaided
Setting tool_choice to required makes the model invoke one of its tools before answering, which is how you guarantee that a retrieval or delegation step actually ran and that citations exist. The default auto lets the model answer from parametric knowledge and skip the tool entirely.
Trap Diagnosing 'no citations returned' as a retrieval failure when the model simply chose not to call the tool.
- The file search tool owns ingestion, with documented chunking and embedding defaults you do not build yourself
Adding a file to a vector store triggers managed parsing, chunking, embedding, and indexing. Defaults are 800-token chunks with 400-token overlap, text-embedding-3-large at 256 dimensions, and a maximum of 20 chunks placed in context per query.
Trap Standing up a separate chunking and embedding pipeline before uploading, duplicating work the tool already performs.
10 questions test this
- Your Foundry agent is configured with the file search tool, and you uploaded a batch of policy documents with the Files API, but the agent never returns grounded answers from them. You confirm the fil
- You are building a Foundry agent that must answer from several hundred product PDFs your team uploads directly to the app. A teammate proposes first running every PDF through a separate service that s
- You are designing a Foundry support agent whose knowledge base is whatever product PDFs and Word files customers attach to their tickets at runtime. There is no pre-existing search index, and you want
- Your team is adding grounding to a Foundry support agent that uses the file search tool over an uploaded knowledge base. A developer wants to add a custom retrieval layer that rewrites the user's ques
- Your team's Foundry agent grounds answers with the file search tool over an uploaded product-manual vector store. A senior engineer wants to insert a custom stage that runs its own keyword search and
- Your Foundry agent must answer from two bodies of content: an existing Azure AI Search index of published API references that a platform team keeps current, and ad hoc design notes that individual eng
- You are planning a Foundry agent that grounds its answers on user-uploaded product manuals through the file search tool, and the team is debating how much ingestion machinery to build up front before
- Your team is building a Microsoft Foundry agent that must answer from roughly 3,000 research reports your analysts will upload. A data engineer proposes first standing up a standalone pipeline that sp
- You are configuring the file search tool for a Foundry agent over a knowledge base your users will upload. A teammate asks which embedding model deployment they must create in the project, and how man
- You are building a Foundry agent that must answer from several hundred internal policy PDFs your team will upload. A data scientist proposes pre-splitting every document into passages, standing up a d
- Basic agent setup keeps file-search data in Microsoft-managed stores while standard setup writes to your own resources
Under basic agent setup, uploaded files sit in Microsoft-managed storage and vector stores are built on a Microsoft-managed search resource. Under standard agent setup, the same tool writes files to your connected Azure Blob Storage account and creates vector stores in your connected Azure AI Search resource. The application code is identical; only data residency and control differ.
Trap Assuming that bringing your own storage and search requires rewriting the tool configuration or the retrieval code.
7 questions test this
- A healthcare ISV runs a Microsoft Foundry agent on basic agent setup, using the file search tool over clinical-guidance PDFs its staff upload. A new compliance mandate requires that every uploaded fil
- Your company runs a Foundry agent on standard agent setup so that all file-search data stays inside resources you own. During an audit you must tell the reviewer which of your connected Azure resource
- An internal enablement team wants a Foundry agent to answer from a handful of onboarding documents they upload. The content is non-sensitive, they have no data-residency or single-tenant obligations,
- Contoso Legal is deploying a Foundry agent whose file search grounds on confidential case files. Their security standard requires that every uploaded file and the vector store built from it live in si
- Your Foundry app currently runs on basic agent setup, and its file-search code uploads files, creates a vector store, and queries it. A new requirement moves the workload to standard agent setup so fi
- Your Foundry agent uses the file search tool over uploaded contract documents. Compliance requires that every uploaded file and the vector store built from it reside in Azure resources your organizati
- Two developers want to prototype a Microsoft Foundry agent that answers from a handful of internal wiki pages they will export and upload with the file search tool. The content is non-sensitive, there
- File search covers documents the app uploads; the Azure AI Search tool grounds on an index you already maintain
Choose file search when the corpus arrives as user or application uploads and you want the service to handle ingestion end to end. Choose the Azure AI Search tool when an enriched index already exists and is refreshed by your own indexer or skillset pipeline, so the agent consumes it rather than re-ingesting the content.
Trap Re-uploading documents that are already indexed, which creates a second copy that drifts out of sync with the source index.
10 questions test this
- Your Foundry agent is configured with the file search tool, and you uploaded a batch of policy documents with the Files API, but the agent never returns grounded answers from them. You confirm the fil
- You are building a Foundry agent that must answer from several hundred product PDFs your team uploads directly to the app. A teammate proposes first running every PDF through a separate service that s
- You are designing a Foundry support agent whose knowledge base is whatever product PDFs and Word files customers attach to their tickets at runtime. There is no pre-existing search index, and you want
- Your team is adding grounding to a Foundry support agent that uses the file search tool over an uploaded knowledge base. A developer wants to add a custom retrieval layer that rewrites the user's ques
- Your data platform team already runs an Azure AI Search index of engineering standards that a nightly indexer refreshes from SharePoint, complete with vector fields and a semantic configuration. You a
- Your Foundry agent must answer from two bodies of content: an existing Azure AI Search index of published API references that a platform team keeps current, and ad hoc design notes that individual eng
- Northwind Analytics maintains a curated Azure AI Search index of policy documents that its own skillset pipeline refreshes and re-embeds every night. A developer proposes also uploading the same PDFs
- You are planning a Foundry agent that grounds its answers on user-uploaded product manuals through the file search tool, and the team is debating how much ingestion machinery to build up front before
- Your data platform team already operates an Azure AI Search index of engineering standards that a nightly indexer refreshes from SharePoint, complete with vector fields and a semantic configuration. A
- You are building a Foundry agent that must answer from several hundred internal policy PDFs your team will upload. A data scientist proposes pre-splitting every document into passages, standing up a d
- RAG, fine-tuning, and prompt engineering solve three different problems and are combined, not chosen between
Ground volatile or high-cardinality facts with retrieval so answers track the source of truth; encode durable voice, formatting, and behavioral conventions with fine-tuning so they hold without prompt bloat; and carry per-session variables such as language or entitlement tier in the prompt. A requirement set that names all three needs all three.
Trap Fine-tuning on a catalog that changes daily, which bakes stale facts into weights and still needs retraining every refresh.
6 questions test this
- A bank's Microsoft Foundry agent already grounds its answers in current policy documents with RAG and is factually accurate. Regulators require that every response, for every customer, open with a fix
- Adventure Works' Foundry agent already retrieves accurate answers from a knowledge base, but reviewers complain that its replies ignore the company's mandatory response format and legal tone. The full
- A team plans a Foundry benefits assistant with three needs: it must answer from plan documents that change at each enrollment cycle, always use HR's approved tone and disclaimer format, and honor each
- Fabrikam's Foundry agent answers questions about an inventory catalog whose prices and stock change hourly. An engineer proposes fine-tuning the chat model each night on the latest catalog export so t
- A Foundry agent already grounds on a knowledge base with RAG and produces the company's voice via a fine-tuned model. The remaining requirement is per-conversation: each session must respond in the cu
- An IT-operations Foundry agent converts engineers' natural-language requests into your internal query language. Retrieval already supplies the current schema, yet the model's generated queries are fre
- One vector store attaches to an agent and one to a conversation, and conversation-created stores expire after inactivity
A vector store holds up to 10,000 files with a 512 MB per-file ceiling. At most one vector store can be attached to an agent and one to a conversation. Vector stores created through conversation helpers carry a default expiration of seven days after last activity, and runs on that conversation fail once it lapses.
Trap Attaching several vector stores to one agent to widen coverage instead of consolidating files into a single store.
- Foundry workflow templates cover human-in-the-loop, sequential, and group-chat coordination
A Foundry workflow is a declarative, versioned orchestration over agents and business logic. Human in the loop pauses to ask the user a question or collect an approval, Sequential passes each agent's result to the next in a fixed order, and Group chat hands control between agents dynamically based on context. Every save produces a new immutable workflow version.
Trap Reaching for Group chat when the process is a fixed pipeline; dynamic handoff adds nondeterminism to a sequence that must be auditable.
20 questions test this
- A developer-support assistant begins every conversation with a generalist agent. Some issues turn out to need a database-tuning specialist, others a networking specialist, and which one is needed only
- Your team is building an incident-investigation assistant for a complex outage. There is no fixed procedure: the assistant must work out an approach on the fly, deciding which logs to pull, which serv
- Your team migrated a Microsoft Foundry visual workflow into a Microsoft Agent Framework workflow that runs as a hosted agent. For audit reasons every claim must pass through the same three executors i
- Your team is preparing to migrate a Microsoft Foundry visual workflow, currently a sequential pipeline that includes a human-in-the-loop approval and if/else branching, off the retiring designer and i
- You are building a Microsoft Foundry workflow that runs each loan application through three prompt agents in one fixed order: an intake agent, then a risk-scoring agent, then a decision agent. Complia
- Your team is comfortable authoring code and YAML and wants to move an existing agent orchestration off the Microsoft Foundry visual workflow designer onto a supported, code-first runtime. The main req
- Your team ships a containerized hosted agent in a Microsoft Foundry project that runs a Microsoft Agent Framework workflow: a triage agent summarizes each incident, then a remediation agent calls a to
- Your team builds a Microsoft Foundry workflow that turns raw meeting notes into a published summary. A drafting agent writes a first draft, an editing agent rewrites it for tone, and a formatting agen
- You need to coordinate three prompt agents from your Microsoft Foundry project into one repeatable, auditable process. It must add if/else branching, set and read variables between steps, and pause fo
- Your team builds a marketing-copy pipeline on Microsoft Agent Framework. A copywriter agent drafts a slogan and a reviewer agent critiques it, and the reviewer must be able to send the draft back for
- A regulated asset manager runs every quarterly client report through the same three specialized agents: an extraction agent pulls figures from custody statements, a reconciliation agent validates them
- Several engineers edit a shared Microsoft Foundry workflow. A change made this morning degraded output quality, and your compliance lead needs to return to the exact configuration that ran yesterday a
- Your claims process runs as a containerized hosted agent in Microsoft Foundry, coordinating an intake agent, an assessment agent, and a payout agent in a fixed sequence with Microsoft Agent Framework.
- A utility's Microsoft Foundry workflow was created from the Sequential template and runs every outage report through a triage agent, a dispatch agent, and a customer-notification agent in that fixed o
- Your team operates a customer-support solution in Microsoft Foundry where a triage agent, a billing specialist agent, and a technical specialist agent share one conversation. Depending on what the cus
- A regulated insurer must run new claims through a set of steps that is identical and auditable on every run: validate, assess, then route. The business analysts who own the process cannot write code,
- You are building a Microsoft Foundry workflow that drafts outbound customer emails with a prompt agent. Company policy says no email may be sent until a human agent has read the draft and explicitly a
- You are designing a Microsoft Foundry workflow for a bank's case-intake process. When a customer message arrives it might need a fraud specialist, a credit specialist, or a compliance specialist, but
- Several engineers share one Microsoft Foundry workflow. Your compliance lead needs assurance that once a workflow definition is saved, that exact definition can never be silently altered in place, whi
- A support-triage service that you deploy as a Foundry hosted agent drains a queue of email tickets overnight using a Microsoft Agent Framework handoff orchestration: a triage agent routes each ticket
- Workflow branching uses Logic nodes and Power Fx expressions whose variables need System. or Local. prefixes
Workflow node types are Agent (invoke an agent), Logic (if/else, go to, for each), Data transformation (set or parse a variable), and Basic chat (send a message or ask a question). Power Fx formulas compute values inside these nodes and must prefix a variable with System. for built-in context or Local. for workflow variables.
Trap Referencing a variable without its scope prefix, which raises a 'Name isn't valid' formula error rather than silently resolving.
5 questions test this
- In a Microsoft Foundry visual workflow, an agent node returns a list of flagged transactions. For every item in that list, the workflow must run the same follow-up step, sending the transaction to a r
- You need to coordinate three prompt agents from your Microsoft Foundry project into one repeatable, auditable process. It must add if/else branching, set and read variables between steps, and pause fo
- A Microsoft Foundry visual workflow receives a shipping-status string from an upstream agent, but a later if/else branch needs a specific numeric field extracted from that string and stored as a workf
- A Microsoft Foundry workflow asks the customer how many licenses they need and saves the reply in a workflow variable. A Logic node then branches: orders above a set quantity go to an enterprise quoti
- In a Microsoft Foundry workflow, an Agent node returns a JSON object containing an extracted order number. A later node needs that order number held in a workflow variable so subsequent steps can refe
- Hosted agents cannot be nodes in the workflow designer, so their orchestration lives in code
The visual workflow designer accepts prompt agents from the project but does not support hosted agents as nodes. When a containerized hosted agent must coordinate other agents or run a multistep process, that orchestration belongs in its own code using Microsoft Agent Framework workflows.
Trap Planning a portal workflow around a hosted agent and discovering only prompt agents can be assigned to agent nodes.
15 questions test this
- Your orchestrator is existing Python code that uses a non-Microsoft agent framework and must persist working files and state across turns of a long-running session. You planned to drop it onto an agen
- Your team migrated a Microsoft Foundry visual workflow into a Microsoft Agent Framework workflow that runs as a hosted agent. For audit reasons every claim must pass through the same three executors i
- Your team is preparing to migrate a Microsoft Foundry visual workflow, currently a sequential pipeline that includes a human-in-the-loop approval and if/else branching, off the retiring designer and i
- Your team is comfortable authoring code and YAML and wants to move an existing agent orchestration off the Microsoft Foundry visual workflow designer onto a supported, code-first runtime. The main req
- Your team ships a containerized hosted agent in a Microsoft Foundry project that runs a Microsoft Agent Framework workflow: a triage agent summarizes each incident, then a remediation agent calls a to
- Your team builds a Microsoft Foundry workflow that turns raw meeting notes into a published summary. A drafting agent writes a first draft, an editing agent rewrites it for tone, and a formatting agen
- You own a Microsoft Foundry visual workflow that encodes a valuable multi-agent process, and the December 1, 2026 workflow retirement is approaching. You want to preserve the orchestration you already
- Your team packages a containerized hosted agent in a Microsoft Foundry project. That agent must run a multistep process that coordinates three other agents, passing work between them and reacting to i
- Your claims process runs as a containerized hosted agent in Microsoft Foundry, coordinating an intake agent, an assessment agent, and a payout agent in a fixed sequence with Microsoft Agent Framework.
- A regulated insurer must run new claims through a set of steps that is identical and auditable on every run: validate, assess, then route. The business analysts who own the process cannot write code,
- Several engineers share one Microsoft Foundry workflow. Your compliance lead needs assurance that once a workflow definition is saved, that exact definition can never be silently altered in place, whi
- In a Microsoft Foundry workflow, an Agent node returns a JSON object containing an extracted order number. A later node needs that order number held in a workflow variable so subsequent steps can refe
- Your operations team relies on the Microsoft Foundry visual workflow designer mainly because it is a no-code canvas, and their process interleaves many deterministic steps, such as connectors to line-
- In a Microsoft Foundry project you have a general assistant agent that occasionally needs one specific task done, currency conversion, by an existing specialized agent. There is no multi-step process
- A support-triage service that you deploy as a Foundry hosted agent drains a queue of email tickets overnight using a Microsoft Agent Framework handoff orchestration: a triage agent routes each ticket
- Microsoft Agent Framework expresses the same orchestrations in code and deploys as a hosted agent
Agent Framework provides sequential, concurrent, handoff, and group-chat orchestrations in Python and .NET, authored as code or declarative YAML. Foundry is moving workflow authoring to this code-first model, and the result runs on the platform when packaged and deployed as a hosted agent.
Trap Assuming a code-first orchestration needs its own hosting; the hosted agent runtime supplies the endpoint, scaling, and identity.
- Groundedness returns a graded 1-5 model judgment while Groundedness Pro returns pass/fail from Content Safety
The Groundedness evaluator uses a judge model you deploy and reports a 1 to 5 score against the retrieved context. Groundedness Pro (preview) calls the Azure AI Content Safety service instead, returns a binary pass or fail, and requires no judge-model deployment - so it costs less to stand up but cannot rank near-miss answers.
Trap Selecting Groundedness Pro when the team needs a graded threshold for routing borderline answers to review.
12 questions test this
- During a security review of a Foundry evaluation pipeline, you must document which managed component actually produces the verdict when the team uses the Groundedness Pro evaluator on a RAG assistant.
- A colleague is adding reviewer routing on top of a Foundry evaluation run and reports that the Groundedness Pro results include a score of 4 out of 5 for several responses, and wants to send every res
- A compliance team audits a Foundry RAG assistant for regulated disclosures and finds that the standard Groundedness evaluator, with its well-rounded definition, passed answers that subtly embellished
- A mortgage-underwriting assistant on Foundry answers from a policy corpus, and your reviewers want to auto-accept clearly grounded answers, auto-reject clearly ungrounded ones, and send only the borde
- A Microsoft Foundry evaluation run for a medical-billing assistant currently uses Groundedness Pro, and the results are a single pass or fail per response. Product now wants three review tiers driven
- A Microsoft Foundry RAG agent drafts quarterly finance summaries from retrieved filings. Reviewers find that some summaries include a specific revenue figure and a source reference that appear in none
- Your platform team runs a nightly grounding check on a Foundry RAG assistant and wants the evaluator's judgment to come from a specific Azure OpenAI GPT deployment they already govern for cost and reg
- Your team must add a grounding check to a Foundry evaluation run for a customer-support RAG assistant. Governance rules prevent you from deploying and maintaining an extra GPT judge model inside the p
- Your organization's compliance policy forbids deploying any additional generative model into the Foundry project used by an IT knowledge-base assistant, yet you still must run an automated grounding g
- You must add a grounding signal to a Microsoft Foundry evaluation run for a travel-booking agent, and cost review flags two concerns: minimize the number of Azure OpenAI model deployments the evaluati
- You are building a RAG-based HR policy assistant on Microsoft Foundry and need your evaluation run to automatically detect answers that assert claims not supported by the retrieved policy passages. An
- You operate a Microsoft Foundry RAG assistant that answers homeowners insurance claim questions from a policy corpus. Reviewers want every generated answer scored for how well the retrieved policy tex
- Retrieval, Groundedness, and Relevance each isolate a different failure in a RAG application
Retrieval scores how effectively the search step surfaced and ranked useful context, Groundedness scores whether the answer is actually supported by that context, and Relevance scores whether the answer addresses the user's query at all. A fabricated citation is a Groundedness signal; 'the right document never came back' is a Retrieval signal.
Trap Tuning the prompt when Retrieval scores are the ones failing, which cannot recover context that was never returned.
11 questions test this
- A Microsoft Foundry RAG assistant over a product-manual index gives wrong answers for a cluster of questions. You confirm the correct manual section is in the index, but the passages handed to the mod
- A Foundry RAG assistant over a pharmacy drug-interaction corpus is failing a cluster of questions. On that failing set the Retrieval scores are low while Groundedness and Relevance are high, and a dev
- A Microsoft Foundry RAG agent drafts quarterly finance summaries from retrieved filings. Reviewers find that some summaries include a specific revenue figure and a source reference that appear in none
- A Foundry RAG agent drafts answers for a tax-preparation assistant. Reviewers find that some answers include a specific deduction figure and a cited form section that do not appear in any passage the
- Your search team has human relevance labels for a benchmark query set and wants to tune the RAG search parameters, comparing chunk size and vector-versus-semantic ranking by scoring how well retrieved
- Your team must add a grounding check to a Foundry evaluation run for a customer-support RAG assistant. Governance rules prevent you from deploying and maintaining an extra GPT judge model inside the p
- Reviewers of a Foundry RAG assistant for a benefits-eligibility workflow confirm that its answers never state anything unsupported by the retrieved policy text and stay on topic, but they routinely le
- You evaluate a Foundry RAG assistant for a government-benefits helpline. For a set of answers, Retrieval and Groundedness both score high, yet users complain the replies, though accurate and drawn fro
- You are building a RAG-based HR policy assistant on Microsoft Foundry and need your evaluation run to automatically detect answers that assert claims not supported by the retrieved policy passages. An
- Your Microsoft Foundry RAG team wants to measure whether the search step is returning useful context for real user questions, but they have not built any human relevance labels for their query set and
- You operate a Microsoft Foundry RAG assistant that answers homeowners insurance claim questions from a policy corpus. Reviewers want every generated answer scored for how well the retrieved policy tex
- Every evaluator in a run must support the run's evaluation_level, which is turn by default
evaluation_level is set to turn (individual responses, the default) or conversation (the whole multi-turn interaction). Each evaluator declares its levels in
supported_evaluation_levels, and every evaluator in a run must support the run's level, so you cannot mix incompatible levels. Customer Satisfaction, Task Completion, Coherence and Groundedness support both levels, whereas the tool-call and safety evaluators are turn-only and cannot be added to a conversation-level run.Trap Assuming an evaluator's name implies its scope. Customer Satisfaction and Task Completion sound conversation-only but support both levels; the tool-call and safety evaluators are the turn-only ones that will break a conversation-level run.
7 questions test this
- Your Microsoft Foundry conversation-level evaluation run for a multi-agent booking assistant keeps getting rejected before it starts. Your selected evaluators are Customer Satisfaction, Task Completio
- You configure a Foundry evaluation run for a multi-turn travel-planning agent and want a single evaluator that judges whether the agent maintains consistent reasoning and topic flow across the entire
- A data scientist evaluating a multi-turn support agent needs to pinpoint which individual assistant reply in each long conversation produced a low-quality answer, so a problem can be traced to a speci
- A team wants a single Microsoft Foundry evaluation run at conversation level for a multi-turn concierge agent, covering overall user satisfaction, end-to-end task success, cross-turn logical flow, and
- Your team wants one evaluator for a multi-turn customer-service agent that reports overall user satisfaction across the entire conversation, capturing helpfulness, tone, and whether the user's issue w
- You submit a Microsoft Foundry evaluation over a set of multi-turn support dialogs but do not set evaluation_level anywhere in the run configuration. You expected one score per conversation, yet the r
- You are configuring a Microsoft Foundry evaluation run to score whole multi-turn conversations from a customer-service agent, so you set evaluation_level to conversation. You select Customer Satisfact
- N-gram similarity metrics need reference answers, while AI-assisted judges need a judge model deployment
F1 Score, BLEU, GLEU, ROUGE, and METEOR are deterministic overlap metrics computed against ground-truth references, so they are unusable without labeled answers. Coherence, Fluency, Relevance, and Similarity are AI-assisted evaluators that call a judge model and can score outputs with no reference text.
Trap Planning a BLEU or ROUGE gate for open-ended generation where no reference answer exists.
Build Agents with Foundry Agent Service
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.
Optimize and Operationalize Generative AI Systems
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.
Implement computer vision solutions
Image and video generation on Microsoft Foundry
Read full chapterCheat sheet
Sharp facts the exam loves — scan these before test day.
- GPT-image-series deployments always return base64 image bytes, never a download URL
Image generation calls against a GPT-image-series deployment return the picture as base64 data in the response's
b64_jsonfield, and theresponse_formatparameter is not supported for these models. The application must decode those bytes and persist the file itself; there is no URL variant to fetch later.Trap Writing client code that reads a
urlfield fromdata[0], which was the older DALL-E response shape and yields a KeyError against a GPT-image deployment.6 questions test this
- Your team is moving a Foundry-based marketing site from a retired dall-e-3 deployment onto a new gpt-image-1 deployment in the same Azure OpenAI in Microsoft Foundry Models resource. The prompt, size,
- Your team adds the image generation tool to a Foundry Agent Service agent so that support conversations can produce illustrative diagrams. An orchestrator model and a gpt-image-1 deployment both live
- Your team evaluates MAI-Image-2.5 in Microsoft Foundry as a second image provider alongside an existing gpt-image-1 deployment, hoping the newer family will remove the storage step from the pipeline.
- You are designing the asset pipeline for a Foundry image workload that generates product renders with a gpt-image-1.5 deployment. A downstream content management system cannot embed inline image data;
- A Foundry chat experience lets shoppers describe a room and receive a generated interior render from a gpt-image-1.5 deployment. Testers complain that the panel sits blank for 20 to 30 seconds before
- You are adding image generation to a Foundry Agent Service agent that currently answers policy questions with a gpt-4.1-mini orchestrator, which support has already confirmed is a compatible orchestra
- dall-e-3 was retired and can no longer be deployed, so new work targets the GPT-image family
The
dall-e-3model was retired on 4 March 2026 and is no longer available for new deployments, with existing deployments non-functional. A new Foundry image workload must be built on the GPT-image family (gpt-image-1, gpt-image-1-mini, gpt-image-1.5, gpt-image-2).Trap Picking DALL-E 3 because it is remembered as the Azure image model, or because of its automatic prompt-rewriting behaviour.
6 questions test this
- On the morning of 5 March 2026 an internal design portal that had generated concept art through an existing dall-e-3 deployment in Microsoft Foundry began failing every request, although the Foundry r
- Your team is moving a Foundry-based marketing site from a retired dall-e-3 deployment onto a new gpt-image-1 deployment in the same Azure OpenAI in Microsoft Foundry Models resource. The prompt, size,
- A media team needs hero banners for a marketing site at 3,840 pixels on the long edge with a 3:1 aspect ratio, plus square social crops produced from the same Foundry image deployment. The deployment
- A Foundry chat experience lets shoppers describe a room and receive a generated interior render from a gpt-image-1.5 deployment. Testers complain that the panel sits blank for 20 to 30 seconds before
- A Foundry workload edits customer-supplied portrait photographs: staff select a region of the picture, describe the change, and the service returns an edited image in which the subject must still be c
- You are adding image generation to a Foundry Agent Service agent that currently answers policy questions with a gpt-4.1-mini orchestrator, which support has already confirmed is a compatible orchestra
- A transparent background only works when the output format is PNG
Setting
backgroundtotransparentproduces real transparency only whenoutput_formatispng; requesting transparency with a JPEG output silently gives you an opaque background. Theoutput_compressionvalue (0-100) likewise applies only to JPEG and WEBP output and is ignored for PNG.Trap Combining
background: transparentwithoutput_format: jpegto keep asset sizes small, then wondering why product cut-outs have a white box behind them.3 questions test this
- Your team generates product cut-outs with a gpt-image-1 deployment for a catalog that composites each item onto colored backgrounds. To keep the asset bundle small, the request sets the background par
- A Foundry pipeline renders 12,000 lifestyle images a week with a gpt-image-1.5 deployment and pushes them to a CDN, and the visual quality bar allows lossy encoding. To cut egress the team sets output
- A partner marketplace ingests your Foundry-generated product cut-outs, and its ingestion API accepts JPEG only. The design team insists the cut-outs carry real transparency so your own catalog pipelin
- Streaming partial images trades render passes for perceived latency
Setting
streamto true together withpartial_images(1-3) makes the GPT-image models emit progressively refined previews before the final render, which shortens perceived wait in interactive UIs. Thequalitysetting (low,medium,high) is the other latency lever, trading render time against fidelity.Trap Assuming partial images reduce total generation cost rather than only the time before the first visible frame.
- On an edit call, fully transparent mask pixels mark the only region the model may repaint
The
masksupplied to the image edits operation must be a PNG with exactly the same dimensions as the input image, and its fully transparent pixels (alpha of zero) define the area the model is allowed to change. Every opaque pixel in the mask is preserved untouched in the result.Trap Painting the region to be edited in solid white or black, which inverts the intended edit area, or supplying a mask that has been resized away from the source dimensions.
6 questions test this
- Your team runs a gpt-image-1 image edit that sends only an approved hero image and the prompt 'replace the sofa with a grey linen sectional' with no mask attached. QA reports that although the sofa ch
- A retail catalog team runs an Azure OpenAI image-editing service in Microsoft Foundry across two lanes on one shared gpt-image-1 deployment. The bulk lane edits tens of thousands of product-only packs
- You are editing an approved product photo with the gpt-image-1 image edits endpoint in Azure OpenAI in Microsoft Foundry Models. Marketing needs the bottle's front label swapped for a new design, whil
- Your team runs a batch image-editing service on an Azure OpenAI gpt-image-1 deployment in Microsoft Foundry, processing two job types against approved studio photographs. Seasonal-refresh jobs restyle
- You are editing catalog images on gpt-image-1 to place each product on a new seasonal backdrop while the product itself — a sneaker photographed on white — must be reproduced exactly, down to the stit
- You are adding a virtual-staging feature to a Microsoft Foundry application that edits real-estate listing photographs through an Azure OpenAI gpt-image-1 deployment. For each listing the model must f
- A mask is optional on the edits endpoint, and omitting it lets the model re-render everything
Sending only an image and a prompt to the edits operation is a valid prompt-driven modification, but with no mask the model may re-render the entire frame. Only a mask constrains the change, so an unmasked call cannot guarantee that the untouched parts of an approved product shot survive.
Trap Believing that naming one object in the edit prompt is enough to freeze the rest of the composition.
6 questions test this
- You are using the gpt-image-1 edits endpoint to turn an entire approved photograph into a uniform watercolor-painting rendition — every part of the image should take on the new style, and there is no
- Your team runs a gpt-image-1 image edit that sends only an approved hero image and the prompt 'replace the sofa with a grey linen sectional' with no mask attached. QA reports that although the sofa ch
- Your team runs a batch image-editing service on an Azure OpenAI gpt-image-1 deployment in Microsoft Foundry, processing two job types against approved studio photographs. Seasonal-refresh jobs restyle
- You are adding a virtual-staging feature to a Microsoft Foundry application that edits real-estate listing photographs through an Azure OpenAI gpt-image-1 deployment. For each listing the model must f
- During QA of a gpt-image-1 editing feature, the same maskless edit request — one product photo plus a prompt to recolor only the packaging — sometimes leaves the background and shadows intact and some
- A regulated medical-device company has a legally approved packaging photo. Marketing wants to update only the on-pack dosage line for a new SKU; every other element, including the certification logo,
- input_fidelity controls how closely an edit preserves the source's style and faces, and mini does not support it
The
input_fidelityparameter on an edit request controls how much effort the model spends matching the style and features — especially facial features — of the input images. It is not supported bygpt-image-1-mini, so that model cannot be used where likeness preservation is a requirement.Trap Choosing gpt-image-1-mini to cut cost on a headshot-retouch workflow that depends on faithful face preservation.
5 questions test this
- Your team must edit tens of thousands of non-portrait catalog thumbnails on Foundry — swapping seasonal props on images of furniture and kitchenware — at the lowest possible per-image cost. None of th
- A brand team edits a series of catalog images on gpt-image-1, adding a seasonal prop to each while insisting the studio's distinctive color grade, grain, and overall visual style carry over unchanged
- A retail catalog team runs an Azure OpenAI image-editing service in Microsoft Foundry across two lanes on one shared gpt-image-1 deployment. The bulk lane edits tens of thousands of product-only packs
- A photo-retouch agent on Foundry edits customer portraits and must keep each face recognizably the same person. To save cost the team deployed gpt-image-1-mini and, on every edit call, set input_fidel
- A creative team applies a maskless gpt-image-1 edit that restyles entire portrait photos into an oil-painting look. Because no mask is supplied, the whole frame is repainted, yet each subject must sti
- Generation and editing are separate endpoints with different payload shapes
Creating a picture from a prompt uses the image generations endpoint with a JSON body, whereas editing uses the separate image edits endpoint with a multipart form that carries the source image file and, optionally, the mask file. Editing is available only on GPT-image-series deployments.
Trap Trying to pass an existing image into the generations endpoint as a JSON string field.
- Video generation is asynchronous: create, poll status, then download the MP4
Creating a video returns a Video object immediately with a
statusofqueued, which then moves throughin_progresstocompletedorfailed. The application polls the video by its id and, only once the status is completed, retrieves the finished MP4 from the video content endpoint.Trap Writing synchronous code that expects the create call to return playable bytes, which instead yields a queued job with
progressat 0.4 questions test this
- You are adding a Sora 2 clip feature to a Python service that backs a Microsoft Foundry project. A developer calls the video create operation with a prompt, then hands the returned object straight to
- A marketing pipeline in your Microsoft Foundry project renders Sora 2 clips overnight, and a separate reviewer app plays those clips back for up to two weeks afterwards. The pipeline stores only the v
- Merchandisers use an internal web app that renders Sora 2 clips through your Microsoft Foundry project. Each render takes roughly one to five minutes, and users report that the page looks frozen with
- A nightly batch in your Microsoft Foundry project submits 40 Sora 2 renders. This morning six of them report a status of failed while the rest completed. Your worker logs only the message render faile
- Sora 2 accepts a fixed set of durations and output resolutions
The
secondsparameter accepts 4, 8, or 12 and defaults to 4, andsizeis either portrait 720x1280 (the default) or landscape 1280x720. Requesting a width and height combination the model does not support fails the job with a 400 dimension error rather than snapping to the nearest supported value.Trap Passing an arbitrary duration such as 30 seconds or a bespoke aspect ratio and expecting the service to round or letterbox it.
3 questions test this
- Your team wires a Sora 2 deployment into a Microsoft Foundry project to produce landscape hero videos for a desktop web page. The developer sends only a prompt and a duration on each create call, and
- Your agency's Microsoft Foundry project uses a Sora 2 deployment for social ads. A client signs off on a 30-second storyboard, and a developer submits one create call asking for a 30-second render. Th
- A developer on your Microsoft Foundry team adds image-to-video to a Sora 2 feature so that a product photo anchors the opening frame of each clip. The photo is a 1600x900 JPEG exported by the design t
- Sora 2 produces synchronized audio as part of generation, with no post-processing dub step
Sora 2 supports audio generation in its output videos, and that audio and dialogue are produced natively during the render. There is no operation that lays a music bed or narration track over an already-finished clip, so an audio change means a new generation.
Trap Looking for an 'add soundtrack' API on a completed video instead of re-prompting or remixing.
4 questions test this
- A developer on your Microsoft Foundry team finishes a Sora 2 clip that stakeholders approve visually, and the file is already downloaded and stored. She asks which of the model's five video operations
- A solution architect reviews your Microsoft Foundry video pipeline, which includes a post-render stage that mixes a narration track onto every Sora 2 MP4 before publishing. Each extra stage adds cost
- Your Microsoft Foundry team renders a Sora 2 spot, and the creative brief calls for a chart-topping pop song under the visuals. A developer names the song and the artist in the prompt, and the job is
- Your team is designing a Microsoft Foundry pipeline for short explainer videos in which an on-screen presenter speaks one scripted line. The current plan renders a silent Sora 2 clip, synthesizes the
- Sora 2 refuses copyrighted characters, real people, and reference images containing human faces
Independently of any content filter you configure, the Sora 2 API enforces restrictions: it rejects copyrighted characters and copyrighted music, refuses to generate real people including public figures, currently rejects input images containing human faces, and limits output to content suitable for audiences under 18.
Trap Diagnosing a failed promotional-video job as a quota or content-filter-threshold problem when the reference photo simply contains a person's face.
4 questions test this
- Your Microsoft Foundry team renders a Sora 2 spot, and the creative brief calls for a chart-topping pop song under the visuals. A developer names the song and the artist in the prompt, and the job is
- A retail Microsoft Foundry project generates Sora 2 promotional clips. The brand team submits a create call whose reference image is a landscape product photo showing a smiling model holding the item,
- A Microsoft Foundry project produces Sora 2 clips for an internal all-hands recap. Communications asks for a short scene showing the company's chief executive delivering a line, and a second scene sho
- Your studio's Microsoft Foundry project uses Sora 2 to prototype ads. A creative lead prompts for a well-known animated film character walking down a store aisle, and the job is refused before any fra
- Generated video jobs are retained only briefly and must be downloaded
Video generation jobs remain available for roughly a day after creation; once that window passes the job must be re-created to produce the video again. A production pipeline therefore downloads the MP4 and stores it in its own blob storage as soon as the job completes.
Trap Treating the service-side video id as durable long-term storage and linking end users straight to it.
- Remix re-renders an approved clip while holding its framework, transitions, and layout
Calling the remix operation with the id of a previously completed generation plus an updated prompt makes Sora 2 maintain the original video's framework, scene transitions, and visual layout while applying only the requested change. The new Video object records its origin in
remixed_from_video_id.Trap Re-submitting the original prompt with an edit appended, which starts a fresh render and drifts the camera move, lighting, and staging every run.
9 questions test this
- You maintain a Sora 2 pipeline in Microsoft Foundry that edits already-approved clips with the remix operation. A reviewer asks for one change to an approved shot, and you must decide whether a remix
- Your agency approved a single 8-second landscape Sora 2 master clip of a beverage can on a patio table, generated in Microsoft Foundry. Three regional teams now each need that same shot with a differe
- A developer on your team wants to remix a Sora 2 generation in Microsoft Foundry to tweak a sign's text color, but the remix call returns an error. Reviewing the workflow, you find the developer captu
- A creative lead wants an approved Sora 2 clip in Microsoft Foundry taken through three refinements in sequence: first darken the mood, then, once that is approved, add fog, and finally, once that is a
- You added a promotional-video feature to a retail site by using a Sora 2 deployment in Microsoft Foundry. A reviewer approved a completed 8-second clip of a sneaker on a studio table but asks for the
- Your team wraps Sora 2 remix calls in a helper that builds every remix prompt by concatenating the approved clip's full original scene description with the reviewer's single requested change, on the t
- Your team generates marketing clips with a Sora 2 deployment in Microsoft Foundry and must keep an auditable link from every derivative clip back to the exact approved source it was edited from. A sta
- A colleague building a Sora 2 solution in Microsoft Foundry has an approved 12-second product clip and wants only the on-screen price label restyled, with all motion and composition untouched. They pl
- A brand team hands you an approved studio still of a handbag and asks for a portrait Sora 2 clip in Microsoft Foundry whose opening frame is exactly that still, with the rest of the shot generated aro
- input_reference anchors the first frame of a brand-new render and must match the target resolution
The
input_referenceparameter accepts one still image (JPEG, PNG, or WEBP) that serves as the visual anchor for the opening frame of a new generation. The source image resolution has to match the requested output size exactly — 720x1280 or 1280x720 — or the request fails.Trap Reaching for input_reference to adjust an already-approved clip, when it seeds a new render rather than editing an existing one.
4 questions test this
- A developer generating a Sora 2 clip in Microsoft Foundry passes a 1024x1024 product photo to the input_reference parameter while requesting a 1280x720 landscape output, and the create call fails befo
- A campaign team using Sora 2 in Microsoft Foundry must produce a fresh portrait clip that opens on an exact hero image they designed, with the rest of the scene generated around it. They have never ge
- A colleague building a Sora 2 solution in Microsoft Foundry has an approved 12-second product clip and wants only the on-screen price label restyled, with all motion and composition untouched. They pl
- A brand team hands you an approved studio still of a handbag and asks for a portrait Sora 2 clip in Microsoft Foundry whose opening frame is exactly that still, with the rest of the shot generated aro
- Each remix should carry exactly one clearly articulated adjustment
Microsoft's guidance is to limit every remix to a single, narrowly described modification, because precise edits retain the greatest fidelity to the source material. Bundling several changes into one remix prompt degrades fidelity and raises the likelihood of visual defects.
Trap Batching a reviewer's full change list into one remix prompt to save a round trip, then getting a clip that no longer matches the approved scene.
5 questions test this
- During QA of a Sora 2 remix workflow in Microsoft Foundry, you notice that clips remixed with prompts asking for several simultaneous edits show more visual defects than clips remixed with a tightly s
- Your agency approved a single 8-second landscape Sora 2 master clip of a beverage can on a patio table, generated in Microsoft Foundry. Three regional teams now each need that same shot with a differe
- A creative lead wants an approved Sora 2 clip in Microsoft Foundry taken through three refinements in sequence: first darken the mood, then, once that is approved, add fog, and finally, once that is a
- Your team wraps Sora 2 remix calls in a helper that builds every remix prompt by concatenating the approved clip's full original scene description with the reviewer's single requested change, on the t
- Your team remixes an approved Sora 2 clip in Microsoft Foundry, but to save round trips they wrote one remix prompt that recolors the sky, adds rain, swaps the vehicle, and repositions the logo. The r
- Remix takes one source video and returns one video; Sora exposes no clip assembly
The remix operation accepts exactly one source video id and produces exactly one new video. Sora 2 offers no stitching, trimming, or timeline-assembly operation, so joining several generated clips into a continuous piece is an external editing step.
Trap Expecting a multi-clip concatenation call to exist because the model can generate several variants of the same prompt.
- The image generation tool needs two deployments in one project plus a routing header
The tool requires a
gpt-image-1deployment and a compatible orchestrator model deployment (for example gpt-4o or a gpt-4.1 variant) in the same Foundry project. Every Responses call must also carry thex-ms-oai-image-generation-deploymentheader naming the image deployment, or the tool call fails.Trap Deploying only the image model, or naming the orchestrator model in the header, which routes the request to the wrong deployment.
6 questions test this
- Fabrikam's platform team standardizes naming, so in one Foundry project both the chat model deployment and the gpt-image-1 deployment were created with the name foundry-default. The agent definition n
- Your team already runs a Foundry Agent Service support agent that uses the web search tool with a gpt-5 orchestrator deployment in one project. Product marketing now asks the same agent to produce con
- Contoso ships a Foundry Agent Service agent whose definition uses a gpt-4.1 orchestrator deployment, and the same project holds a gpt-image-1 deployment named studio-images. A developer adds the x-ms-
- A developer builds a Foundry Agent Service image agent with the Azure AI Projects SDK for Python. The project holds both a gpt-5 orchestrator and a gpt-image-1 deployment, and the agent version is cre
- You are adding image generation to a Microsoft Foundry Agent Service agent for a marketing team. The project contains only the gpt-5 orchestrator deployment that the agent definition references, and y
- You are writing the triage runbook for a Foundry Agent Service image agent that intermittently answers picture requests with a single assistant message and no image_generation_call item anywhere in th
- A successful tool run appears as an image_generation_call output item carrying base64 bytes
When the tool executes, the response output contains an item whose
typeisimage_generation_calland whoseresultfield holds base64-encoded image data to decode and save. A response containing only a text message item means the request never routed to image generation.Trap Parsing the assistant's prose reply for an image link and concluding the tool is broken when the picture is actually in a sibling output item.
6 questions test this
- You are wiring a Foundry Agent Service image agent into a web app that must display the generated picture to the customer and archive a copy in Azure Blob Storage. The tool call succeeds, and the resp
- Your team adds an automated regression test for a Foundry Agent Service image agent to the CI pipeline. The test sends one Responses request asking for a product thumbnail, and it must fail the build
- A developer builds a Foundry Agent Service image agent with the Azure AI Projects SDK for Python. The project holds both a gpt-5 orchestrator and a gpt-image-1 deployment, and the agent version is cre
- A retail web app calls a Foundry Agent Service image agent to render high-detail lifestyle photos, and shoppers complain that the page sits blank for many seconds after they submit a prompt. Product m
- During a bug bash, a tester reports that your Foundry Agent Service image agent is broken. The assistant's reply reads "Here is the generated logo," but the tester's script, which scans that reply tex
- You are writing the triage runbook for a Foundry Agent Service image agent that intermittently answers picture requests with a single assistant message and no image_generation_call item anywhere in th
- input_image_mask brings mask-based inpainting into the agent conversation
The agent tool accepts an optional
input_image_mask, supplied either as a base64image_urlor as afile_id, which lets the agent edit a specific region of an existing picture mid-conversation. Editing therefore does not require dropping out of the agent and calling the raw image edits endpoint.Trap Assuming the agent tool is generation-only and building a separate service just to handle user-requested touch-ups.
5 questions test this
- Adventure Works' campaign agent generates a hero image, and the copywriter then asks for the model's jacket to be recolored. Each follow-up prompt returns a fresh composition in which the pose, backgr
- A Foundry Agent Service concept-art agent has just produced a storefront illustration for a designer inside an ongoing conversation. The designer replies that only the awning should change from stripe
- A publishing team needs an agent-hosted capability that lets an editor point at one area of an existing product photo, describe the change in chat, and receive the same photo back with only that area
- In a design review, an architect proposes a second microservice that would receive touch-up requests from your Foundry agent, call the Azure OpenAI image edits route with a mask, and hand the finished
- Your Foundry Agent Service retouching agent receives masks from an upstream segmentation service, and platform engineering already uploads every mask through the project's files API. Each mask PNG is
- The agent tool adds streaming previews and file-id inputs over the direct image API path
Compared with calling the image API directly, the Agent Service tool offers two documented advantages: it can stream partial image outputs during generation to improve perceived latency, and it accepts image file ids as inputs in addition to raw image bytes.
Trap Choosing the tool for a batch, non-conversational render pipeline where neither streaming nor file-id inputs buys anything.
Multimodal understanding and visual analysis workflows
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.
Responsible AI for images, video, and generated media
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.
Implement text analysis solutions
Language model text analysis: extraction, sentiment, and translation
Read full chapterCheat sheet
Sharp facts the exam loves — scan these before test day.
- Structured outputs with json_schema and strict:true guarantee schema adherence; JSON mode only guarantees valid JSON
Setting response_format to {"type": "json_schema", "json_schema": {..., "strict": true}} forces a Foundry model to emit output that conforms to the JSON Schema you supply, which is what makes generative entity, topic, and field extraction machine-consumable. The older JSON mode (response_format of type json_object) guarantees only that the reply parses as valid JSON; it cannot guarantee the reply carries the fields, names, or types your extraction pipeline expects.
Trap Choosing JSON mode (json_object) for a schema-driven extraction job: it eliminates parse errors but still lets the model rename, omit, or invent fields.
7 questions test this
- You are building a Foundry entity-extraction service that reads support emails and returns a fixed record - customer_id, product, and issue_type - that a downstream ticketing system deserializes into
- A colleague configured a Foundry topic-tagging service in JSON mode (response_format json_object) to return a topics array and a sentiment field for each review. Every response is valid JSON, but down
- A logging pipeline in your Foundry project asks a gpt-4o deployment to summarize each incident into a JSON object whose keys are the distinct root causes the model discovers, so the property names dif
- A Foundry analytics job extracts each review's rating as an integer and sentiment as one of three enum labels from a gpt-4o deployment, then loads them straight into a typed database. Under JSON mode
- You extract structured JSON from insurance claims with a strict Foundry structured-outputs schema. To constrain values you added a regex pattern to the policy_number string, a minimum and maximum to t
- You are building an entity-extraction step in a Microsoft Foundry project where a gpt-4.1 deployment reads inbound support emails and must return each ticket's customer name, product, and severity as
- You must extract a fixed set of fields - entities, a topic label from a controlled list, and an overall sentiment - from free-text product reviews, and hand the result to a strongly typed downstream s
- A strict structured-outputs schema must mark every property required and set additionalProperties to false
In strict mode every property must appear in the object's required array and every object must set additionalProperties: false. There is no genuinely optional field: you emulate one by giving the property a union type that includes null (for example "type": ["string", "null"]) while still listing it in required. Output key ordering follows the order of the schema you send.
Trap Leaving a property out of required to make it optional — the schema is rejected rather than treated as an optional field.
7 questions test this
- Your Foundry extraction schema pulls resume fields into strict structured-outputs JSON. Most fields are always present, but middle_name is frequently absent in the source text. You need the analyzer t
- A logging pipeline in your Foundry project asks a gpt-4o deployment to summarize each incident into a JSON object whose keys are the distinct root causes the model discovers, so the property names dif
- A colleague's strict json_schema extracts an order object with a nested shipping_address object on a gpt-4.1 deployment. Every top-level property is listed in required and the root sets additionalProp
- A Foundry extraction step returns structured-outputs JSON that a downstream component serializes into a fixed-column export, and it expects the keys in a specific order: id, name, then status. The com
- Your strict json_schema extracts contact fields from resumes on a gpt-4.1 deployment. The name and email fields are always present, but middle_name is frequently absent from a candidate's document. Yo
- Your Foundry extraction analyzer sends a gpt-4o deployment a json_schema with strict set to true to pull invoice_number, vendor, and total from scanned receipts. The schema lists all three fields unde
- Your team defines a strict structured-outputs schema so a Foundry model extracts contract metadata - party_name, effective_date, and renewal_term - into machine-consumable JSON. The service rejects th
- Structured outputs support only a subset of JSON Schema and drop most validation keywords
The supported subset covers string, number, boolean, integer, object, array, enum, and anyOf (the root object cannot be anyOf), plus $defs and recursive references. Validation keywords are not honored: minLength, maxLength, pattern, and format on strings, minimum, maximum, and multipleOf on numbers, and minItems, maxItems, and uniqueItems on arrays. A schema may declare at most 100 object properties across five levels of nesting.
Trap Expecting the schema to enforce value ranges, regex patterns, or array bounds; those checks must run in your own code after parsing.
10 questions test this
- Your strict json_schema extracts an applicant's email as a string with format set to email and a submitted_on string with format set to date-time from a gpt-4o deployment. QA finds the model returns m
- Your Foundry extractor must tag each document with a topic drawn from a fixed controlled vocabulary of eight labels, and the downstream taxonomy service rejects any value outside that list. You are us
- You are designing a strict structured-outputs schema for a Foundry extractor that must return either a person entity or an organization entity, depending on the input. You wrote the schema so the root
- A colleague's strict json_schema extracts an order object with a nested shipping_address object on a gpt-4.1 deployment. Every top-level property is listed in required and the root sets additionalProp
- You extract structured JSON from purchase orders with a strict json_schema on a gpt-4.1 deployment. To keep bad data out of the ledger, the schema declares a currency string with a pattern for ISO cod
- A Foundry analytics job extracts each review's rating as an integer and sentiment as one of three enum labels from a gpt-4o deployment, then loads them straight into a typed database. Under JSON mode
- Your strict json_schema extracts contact fields from resumes on a gpt-4.1 deployment. The name and email fields are always present, but middle_name is frequently absent from a candidate's document. Yo
- Your Foundry extraction analyzer sends a gpt-4o deployment a json_schema with strict set to true to pull invoice_number, vendor, and total from scanned receipts. The schema lists all three fields unde
- You extract structured JSON from insurance claims with a strict Foundry structured-outputs schema. To constrain values you added a regex pattern to the policy_number string, a minimum and maximum to t
- Your team defines a strict structured-outputs schema so a Foundry model extracts contract metadata - party_name, effective_date, and renewal_term - into machine-consumable JSON. The service rejects th
- strict:true on a function tool constrains generated arguments but forbids parallel tool calls
Structured outputs also apply to tool definitions: setting strict: true on a function forces the generated arguments to match the parameter schema exactly. Structured outputs are not supported together with parallel function calling, so parallel_tool_calls must be set to false whenever strict tool schemas are in use.
Trap Leaving parallel tool calls enabled and assuming the strict argument schema still holds for every emitted call.
4 questions test this
- Your Foundry agent issues two independent lookups per turn and you enabled parallel tool calls to keep turn latency low. You now add strict to the function definitions so the model's generated argumen
- Your Foundry agent issues several tool calls per turn in parallel to keep latency low. A new requirement says one tool's generated arguments must exactly match its parameter schema, so you plan to set
- You define a function tool for a Foundry chat completion so the model's generated arguments always match your parameter schema, and you set strict to true on the function. The same request currently l
- You register a function tool on a Foundry chat model so it emits arguments for a downstream create_shipment API, and you set strict to true on the tool so the generated arguments always match its para
- Structured outputs are unsupported on the bring-your-own-data, Assistants/Agent Service, and audio-preview surfaces
Microsoft documents structured outputs as not supported with Azure OpenAI On Your Data (bring-your-own-data) scenarios, with the Assistants and Foundry Agent Service surfaces, and with the gpt-4o-audio-preview and gpt-4o-mini-audio-preview models. An extraction step that must return a guaranteed schema therefore calls chat completions directly rather than routing through an agent run.
Trap Designing an agent tool that relies on strict schema adherence from the agent run itself instead of from a direct model call.
- NER types a mention against a fixed category list; entity linking disambiguates it against a knowledge base
Prebuilt named entity recognition returns spans typed against a preset category and subcategory list (person, location, organization, quantity, and so on) with an offset, length, and confidence score. Entity linking is a separate task that resolves an ambiguous mention to a single knowledge-base entry and returns its reference URL; named entity recognition alone never returns a knowledge-base identifier.
Trap Reaching for named entity recognition when the requirement is to decide whether 'Mars' means the planet or the company — that disambiguation is entity linking.
9 questions test this
- You are building a compliance agent in a Microsoft Foundry project that scans vendor correspondence and must tag every organization, person, and location mentioned so reviewers can filter by category.
- You are building a market-intelligence agent in a Microsoft Foundry project that scans news articles about the automotive sector. The pipeline frequently encounters the token 'Mars' and must decide, f
- You are enriching a Microsoft Foundry knowledge-graph pipeline that ingests analyst reports. Company names appear in many surface forms - 'Microsoft,' 'Microsoft Corp,' and 'MSFT' - and you need every
- A document-search team in a Microsoft Foundry project wants to tag each indexed article with the categories of entities it contains, such as Person, Organization, and Location, so users can filter sea
- You are building an intake agent in a Microsoft Foundry project that processes incoming support emails. For each email the agent must highlight standard entities - people, organizations, locations, da
- A knowledge-graph team in a Microsoft Foundry project ran prebuilt named entity recognition over a corpus of company filings, expecting each detected organization to come back with a canonical knowled
- A developer on your team wants prebuilt Azure Language NER to start returning a new 'policy number' entity that is specific to your insurance product. They tried enabling it through the analyze-text r
- You are building a contracts-processing agent in a Microsoft Foundry project. The agent must extract a company-specific entity type - an internal 'master service agreement clause reference' - that doe
- Your team processes incoming insurance-claim emails in a Microsoft Foundry project and must automatically identify and categorize the people, organizations, locations, and monetary quantities that eac
- Key phrase extraction returns untyped, unpositioned talking points
Key phrase extraction surfaces the main talking points of a document as a flat list of phrases with no entity category, no character offset, and no relevance ranking. Whenever the downstream consumer needs typed, positioned values — populating form fields, driving redaction, or filtering a search facet — prebuilt entity recognition or a schema-driven generative extraction is required instead.
Trap Selecting key phrase extraction for a pipeline that must know both the entity type and where in the document each value appeared.
7 questions test this
- A Microsoft Foundry pipeline ingests scanned vendor purchase orders and must populate a structured record with named business fields, the purchase-order number, buyer, delivery date, and total, where
- Your Microsoft Foundry application analyzes analyst reports and must, for every company and place mentioned, record both the entity type and the exact character position where it appears so the UI can
- You are building a meeting-assistant agent in a Microsoft Foundry project that processes long call transcripts. Product wants each transcript surfaced with a compact set of topic chips - short phrases
- Your team operates a Microsoft Foundry project that logs customer chat transcripts. Before any transcript is stored, the pipeline must find sensitive values such as names, phone numbers, and email add
- Your team operates a Microsoft Foundry project that ingests tens of thousands of open-ended customer survey comments each week. Product managers want a weekly word cloud of the recurring themes people
- You maintain a Microsoft Foundry project that indexes a large internal help-desk knowledge base into Azure AI Search. To improve recall, you want to tag each article with the handful of concepts it is
- You are building a Microsoft Foundry pipeline that must remove customer names, phone numbers, and email addresses from support transcripts before they are archived, replacing each with a masked placeh
- Custom NER needs a labeled authoring project, a training run, and a deployment before it can be called
Custom named entity recognition adds domain-specific entity types beyond the preset list, but only through an authoring project with human-labeled documents, a training run, and an explicit deployment that exposes a runtime prediction endpoint. Prebuilt entity recognition requires none of that — you call the analyze-text runtime immediately with the entity recognition task kind.
Trap Assuming a new domain entity type can be added by configuration or prompt alone, with no labeled data and no deployment step.
5 questions test this
- Your Microsoft Foundry project must extract two entity types that don't exist in the prebuilt category list, an internal contract 'clause type' and a proprietary 'asset tag' format, from thousands of
- In a Microsoft Foundry project your team created a custom NER authoring project, labeled several hundred documents, ran training, and reviewed strong evaluation metrics for a new 'shipment tracking co
- A developer on your team wants prebuilt Azure Language NER to start returning a new 'policy number' entity that is specific to your insurance product. They tried enabling it through the analyze-text r
- You are building a contracts-processing agent in a Microsoft Foundry project. The agent must extract a company-specific entity type - an internal 'master service agreement clause reference' - that doe
- Your team processes incoming insurance-claim emails in a Microsoft Foundry project and must automatically identify and categorize the people, organizations, locations, and monetary quantities that eac
- The analyze-text runtime can batch several Language tasks over one document collection
A synchronous analyze-text call runs a single task over the submitted documents, while the asynchronous job endpoint accepts several tasks — for example entity recognition, key phrase extraction, and PII detection — over the same document collection in one submission. Batching this way avoids re-sending the corpus once per feature.
Trap Issuing one synchronous call per feature over the same documents and paying the ingestion cost repeatedly.
- Omitting the language code makes Language analysis default to English and silently lose recall
Prebuilt Language tasks accept a per-document language code, and when none is supplied the analysis defaults to English. Supported entity categories also differ by input language, so a non-English document analyzed without its language code returns degraded results with no error, and categories not enabled by default for that language must be requested explicitly.
Trap Treating missing recall on multilingual text as a model-quality issue rather than an unset language code.
- Extractive summarization returns ranked verbatim sentences with offsets; abstractive generates new wording
Extractive summarization selects the highest-ranked original sentences from the source and returns each with a rank score plus its start position and length, so every word in the summary is verbatim and traceable to a location in the input. Abstractive summarization writes new, coherent sentences that appear nowhere in the source and returns a contextual input range rather than sentence offsets.
Trap Choosing abstractive summarization when the requirement is that no wording may be invented and each summary line must map back to a source offset.
6 questions test this
- You are adding an audit view to a Microsoft Foundry compliance tool. For every summary the tool produces, the UI must highlight, inside the original document, the exact spans the summary was built fro
- You are building a Microsoft Foundry app for a compliance team that condenses lengthy regulatory filings into short briefs. Auditors mandate that every sentence in a brief be reproduced word for word
- A litigation-support tool on Microsoft Foundry displays long depositions and must highlight the most important sentences directly inside the original document view, drawing a marker at each sentence's
- A regulatory-reporting team on Microsoft Foundry must condense filed disclosure letters. Compliance forbids introducing any wording that does not appear in the source, and every line of the summary mu
- You are building a Microsoft Foundry executive-briefing feature that turns long technical incident reports into a single, fluent paragraph for leadership. Stakeholders want the paragraph written in sm
- A knowledge-base team on Microsoft Foundry wants short, readable blurbs for long technical articles. The blurbs must read as fresh, fluent prose written in the service's own words rather than being st
- Conversation summarization is requested per aspect and needs turn-structured input
Conversation summarization accepts structured, speaker-tagged conversational input and is requested per aspect: issue and resolution for contact-center calls, recap for a single-paragraph summary, and chapterTitle together with narrative to segment a long conversation and summarize each segment. Text summarization accepts only a plain text block and has no aspect concept at all.
Trap Flattening a call transcript into plain text for text summarization and still expecting separated issue and resolution output.
5 questions test this
- Your Microsoft Foundry solution ingests speaker-tagged transcripts of hour-long financial-advisory calls. For each completed call, compliance wants a single concise one-paragraph overview that capture
- Your Microsoft Foundry review tool processes speaker-tagged transcripts of long compliance review calls, where a single call moves through many distinct topics in one session. Reviewers need each call
- Your contact-center analytics workload on Microsoft Foundry ingests two-party support calls and must emit a separated issue summary and a separated resolution summary for each call. The audio has alre
- Your team operates a Microsoft Foundry contact-center solution and stores chat logs between customers and support agents. Compliance wants each closed case reduced to a clearly separated customer issu
- Your team on Microsoft Foundry summarizes live agent-customer chat sessions into a one-paragraph recap for the CRM. Each session arrives as structured turns tagged with participant and role, and the r
- Summarization retires from Azure Language and Microsoft directs new projects to Foundry models
Microsoft has published a retirement date for Summarization in Azure Language (31 March 2029) and directs both existing workloads and all new projects to Microsoft Foundry models for natural-language understanding. For a green-field Foundry build the task-specific summarization API is a migration path for legacy code, not the recommended default.
Trap Standardizing a brand-new Foundry solution on the prebuilt Language summarization task because it is the 'purpose-built' service.
3 questions test this
- Your organization is starting a brand-new Microsoft Foundry project to generate compliance summaries, and there is no existing code to preserve. A teammate proposes standardizing the entire solution o
- A production Microsoft Foundry application relies heavily on the Azure Language summarization REST task, which was appropriate when the app was first built. Leadership asks you for a multi-year roadma
- You are starting a green-field natural-language-understanding build on Microsoft Foundry that includes document summarization. A colleague argues you should standardize on the prebuilt Summarization t
- Domain summarization that must hit fixed sections or highlight clauses needs a prompted model, not the prebuilt task
Compliance and other domain summarization work carries output requirements the prebuilt task cannot express: mandatory sections, a fixed tone, named clause types to call out, and citations back to the source. A Foundry model steered by a system prompt plus a strict JSON schema delivers that control, while the prebuilt summarization API exposes only summary-length style controls over content it chooses itself.
Trap Assuming a task-optimized summarizer can be configured to always surface a specific clause type; it has no such steering surface.
6 questions test this
- You are building a Microsoft Foundry pipeline that summarizes regulatory filings and writes each result straight into a downstream compliance database. Every summary must arrive as the same machine-pa
- A regulatory-summary microservice on Microsoft Foundry must post each contract summary to a downstream compliance system as JSON with fixed fields, a summary section, a risk rating, and a cited source
- A team already uses the prebuilt abstractive summarization task to summarize contracts. A new compliance rule requires that every summary always surface any indemnification and limitation-of-liability
- A compliance team on Microsoft Foundry must summarize vendor contracts. Every summary has to contain the same mandatory sections, keep a fixed formal tone, always call out termination and indemnificat
- You are building a Microsoft Foundry compliance summarizer for contracts. Each output must always contain the same fixed section headings, maintain a mandatory formal tone, explicitly call out predefi
- A legal-ops team on Microsoft Foundry summarizes NDAs and requires that every summary always surfaces the confidentiality-term clause, under a fixed heading, even when that clause is not among the mos
- Asynchronous Language job output is retrievable for 24 hours and then purged
Summarization is processed as an asynchronous job whose output is available for retrieval for 24 hours from ingestion, after which the results are purged and cannot be fetched again. A production pipeline must persist the returned summaries itself rather than treating the job identifier as durable storage.
Trap Storing only the job identifier and planning to re-read the result days later.
- Sentiment analysis scores positive, neutral, and negative at both document and sentence level
The sentiment task returns confidence scores between 0 and 1 for positive, neutral, and negative for the document as a whole and for each sentence inside it, then assigns the label with the highest score at each level. Because scoring is per sentence as well as per document, a long review whose document label is neutral can still contain individually negative sentences that a document-only reading would miss.
Trap Routing escalations on the document label alone and losing the negative sentences buried inside long feedback.
9 questions test this
- You are building a Foundry solution that analyzes long customer support email threads. For each email you need one overall sentiment verdict for triage, and separately the sentiment of each individual
- Your team analyzes hotel guest reviews in a Foundry pipeline and already gets an overall positive, neutral, or negative label per review from Azure Language sentiment analysis. Product owners now want
- A Foundry solution processes recorded customer-service calls. The team must flag calls where the caller is frustrated or urgent. The built-in Sentiment field only returns positive, neutral, or negativ
- A Foundry review-analytics dashboard calls Azure Language sentiment analysis and buckets each product review by its document-level label. The team expected only positive, neutral, or negative, but som
- Your team analyzes hotel guest reviews in a Foundry solution and must report sentiment for each mentioned aspect — the room, the staff, the breakfast — rather than one verdict per review, so operation
- Your team ships a Foundry app that routes customer reviews to a human agent whenever feedback turns negative. It calls Azure Language sentiment analysis on each review, but long multi-paragraph review
- A Foundry app runs Azure Language sentiment analysis with opinion mining on restaurant reviews. For the sentence 'The pasta was delicious but the service was slow,' a developer expects a single sentim
- Your support-analytics team wants to flag chat transcripts that show customer frustration and escalation risk and route them to a supervisor. A developer proposes using Azure Language sentiment analys
- A voice-of-customer team uses Azure Language sentiment analysis on multi-paragraph survey verbatims collected in a Foundry project. Leadership currently sees only the overall document sentiment, but t
- Opinion mining is aspect-based sentiment that attributes each opinion to a specific target
Opinion mining is an option on the sentiment task, not a separate service, and it performs aspect-based sentiment analysis: it links each expressed sentiment to the concrete target it is about — 'the room', 'the staff', 'battery life' — and returns target and assessment pairs. Base sentiment analysis returns only an overall label per sentence with no attribution to a product or service attribute.
Trap Expecting per-attribute sentiment from the sentiment task without enabling opinion mining.
9 questions test this
- Your team analyzes hotel guest reviews in a Foundry pipeline and already gets an overall positive, neutral, or negative label per review from Azure Language sentiment analysis. Product owners now want
- Your support team wants to flag written customer chats that express specific tones — frustration, urgency, and escalation risk — so at-risk conversations jump the queue. They tried Azure Language sent
- A Foundry solution processes recorded customer-service calls. The team must flag calls where the caller is frustrated or urgent. The built-in Sentiment field only returns positive, neutral, or negativ
- A contact center records customer calls in a Foundry solution and wants to flag calls where the caller is frustrated or on the verge of escalating. Running Azure Language sentiment analysis over the t
- A Foundry review-analytics dashboard calls Azure Language sentiment analysis and buckets each product review by its document-level label. The team expected only positive, neutral, or negative, but som
- Your team analyzes hotel guest reviews in a Foundry solution and must report sentiment for each mentioned aspect — the room, the staff, the breakfast — rather than one verdict per review, so operation
- A retail analytics team wants to know which specific product attributes — battery life, screen, packaging — customers praise or criticize in written reviews, not just whether each review is positive o
- A Foundry app runs Azure Language sentiment analysis with opinion mining on restaurant reviews. For the sentence 'The pasta was delicious but the service was slow,' a developer expects a single sentim
- Your support-analytics team wants to flag chat transcripts that show customer frustration and escalation risk and route them to a supervisor. A developer proposes using Azure Language sentiment analys
- Content Safety text scoring runs on the full 0-7 severity scale and can be trimmed to 0/2/4/6
The Content Safety text model rates Hate, Sexual, Violence, and SelfHarm on the full 0-7 severity scale and can return either that full scale or a trimmed one in which each adjacent pair of levels collapses to a single value (0, 2, 4, 6). Text and multimodal image-with-text scoring offer the eight-level output; classification is multi-label, so one passage can be flagged under more than one category at once.
Trap Building text thresholds on the assumption only four buckets exist, which cannot express the distinction between a level 4 and a level 5 finding.
4 questions test this
- You are building a text-moderation step in a Foundry app with Azure AI Content Safety. Policy requires two different actions: content at a moderate severity gets queued for human review, while clearly
- You are moderating user posts in a Foundry community app. Some posts are simultaneously hateful and sexual, and your policy applies a different action per category, so you need a severity for every ha
- A Foundry moderation service sends user posts to the Azure AI Content Safety Analyze Text API and stores one harm category per post by keeping only the category with the highest severity. A reviewer n
- You configure Azure AI Content Safety text moderation for a community forum. Compliance wants moderators to treat a mid-level violent post differently from a clearly severe one, so your policy must be
- The PII task returns both the detected entity list and a ready-made redacted copy of the text
PII detection evaluates unstructured text for predefined personal and health information categories and returns two things in one response: the entity list with category, offset, length, and confidence, plus a redactedText string in which each detected span is already masked. Called synchronously the feature is stateless — no input is stored in the resource — so a pipeline can log entity metadata and forward only the redacted copy downstream.
Trap Running generic entity recognition and hand-assembling the masked string, which discards the category-aware spans PII detection already produced.
5 questions test this
- You are building a Foundry data pipeline that ingests free-text support tickets. For compliance, you must record which categories of personal information each ticket contained, and you must forward a
- A developer redacts personal data from transcripts by running Azure Language prebuilt named entity recognition, then writing code that blanks out each returned span. The privacy team complains that th
- A healthcare Foundry app must strip patient identifiers from free-text chat messages before they are logged. A privacy requirement states that the message content must not be retained anywhere in the
- You are building a Foundry ingestion pipeline that logs support tickets. Compliance requires two outputs from each ticket: a structured list of the personal data found, with its category and location,
- Your team must minimize where raw customer PII lives, and a data-protection review is under way. A Foundry pipeline sends free-text chat messages to Azure Language PII detection, logs only entity meta
- PII redaction policy kinds differ in whether offsets and length survive masking
Redaction behavior is chosen with a redaction policy kind: characterMask (the default) replaces the span with a repeated character and preserves the original length and offsets, entityMask substitutes a typed placeholder such as [PERSON_1], noMask returns the response without a redactedText field at all, and syntheticReplacement swaps in realistic but fictitious values. Only length-preserving masking keeps downstream character offsets valid.
Trap Selecting entityMask in a pipeline whose later stages index by character offset into the original document.
- Prebuilt sentiment analysis emits only positive, neutral, and negative, so tone categories such as frustration or escalation risk require a generative classification you define
The Language sentiment analysis feature assigns the labels positive, neutral, and negative with confidence scores at both document and sentence level, plus a derived mixed label at document level when a document contains both positive and negative sentences, and opinion mining only adds the target an opinion is attached to; none of these labels has any vocabulary for tone or emotion classes such as frustration, urgency, politeness, sarcasm, or escalation risk. Detecting those means defining the taxonomy yourself - a chat model prompted to classify into a constrained enum with a structured output schema, an evaluator or LLM-judge rubric applied to conversations, or a Content Understanding audio analyzer with custom generative fields when the tone is carried by spoken delivery rather than wording.
Trap Equating a strongly negative sentiment score with a specific tone: 'negative' cannot distinguish an angry customer from a disappointed one, or flag an urgent-but-polite escalation, because it is one axis with three labels. Enabling opinion mining does not add emotion labels either — it is aspect-based sentiment returning target and assessment pairs on the same three-label scale — and neither does lowering a confidence threshold.
4 questions test this
- Your support team wants to flag written customer chats that express specific tones — frustration, urgency, and escalation risk — so at-risk conversations jump the queue. They tried Azure Language sent
- A Foundry solution processes recorded customer-service calls. The team must flag calls where the caller is frustrated or urgent. The built-in Sentiment field only returns positive, neutral, or negativ
- A contact center records customer calls in a Foundry solution and wants to flag calls where the caller is frustrated or on the verge of escalating. Running Azure Language sentiment analysis over the t
- Your support-analytics team wants to flag chat transcripts that show customer frustration and escalation risk and route them to a supervisor. A developer proposes using Azure Language sentiment analys
- A Custom Translator system is selected by category ID, and allowFallback decides whether a miss is silent
A trained Custom Translator system is invoked by passing its category ID in the category query parameter of the translate call. allowFallback defaults to true, letting the request quietly fall back to the general system when no custom system exists for that language pair; setting allowFallback=false makes the request return HTTP 400 instead of a non-custom translation, which is how you prove every returned string used the trained terminology.
Trap Leaving allowFallback at its default in a regulated workflow and assuming every translation applied the custom glossary.
7 questions test this
- A regulated pipeline translates English into both German and French and sets your Custom Translator category ID on every request. You trained and published a custom system for English-to-German only.
- You trained and deployed a Custom Translator system for English-to-Japanese legal terminology and confirmed it is available. Your application still calls Azure Translator's text translate endpoint, bu
- Your team runs a regulated medical-device localization pipeline on Azure Translator. Every returned string must be produced by your trained Custom Translator system, and compliance requires proof that
- An auditor reviewing your English-to-Korean pipeline finds that some translated strings do not reflect your trained Custom Translator terminology, even though every call includes the correct Category
- Your team published a Custom Translator system that encodes your manufacturing division's product and part terminology. A developer calls the text translate endpoint and confirms the request succeeds,
- A legal-services company must translate contracts into several languages using an approved terminology set, and its compliance team demands two things: identical, repeatable output for identical input
- You maintain an English-to-German localization pipeline for a pharmaceutical company, and a colleague has already trained and published a Custom Translator system that encodes the approved clinical te
- The dynamic dictionary pins one phrase inline; broad terminology control requires Custom Translator
The dynamic dictionary supplies a known rendering for a single span inline as <mstrans:dictionary translation="...">phrase. It is case-sensitive, requires the from parameter because autodetection is not allowed with it, and is documented as safe only for proper nouns such as person and product names. Systematic terminology and style control belongs in Custom Translator, which learns those choices from in-context training data.
Trap Injecting dynamic-dictionary markup for an entire glossary instead of training a custom system, and losing source-language autodetection in the process.
11 questions test this
- A localization team wants consistent, systematic rendering of several hundred domain terms and a specific house style across every English-to-Japanese translation. An engineer proposes injecting inlin
- You run a high-volume neural machine translation pipeline. Marketing introduces one newly coined campaign name that must render a specific way in every target language starting with tonight's batch, a
- Your English-to-French pipeline uses the general Translator system, and output quality is fine except that one coined product name, wordomatic, is being altered in the French output. You need to pin e
- A regulated pipeline translates English into both German and French and sets your Custom Translator category ID on every request. You trained and published a custom system for English-to-German only.
- Your team must enforce roughly 600 approved industry term translations and a consistent house style across all English-to-French output from Azure Translator, and the correct choices depend on surroun
- You maintain an English-to-German product-catalog translation flow on Azure Translator's text API. The product name 'SmartBrew' must always appear in German output as the approved localized form 'Smar
- A localization engineer uses Azure Translator's dynamic dictionary to force the product term 'FlexPay' to a fixed German rendering, and it works. Marketing copy, however, sometimes writes the term as
- A legal-services company must translate contracts into several languages using an approved terminology set, and its compliance team demands two things: identical, repeatable output for identical input
- Your English-to-Spanish requests previously relied on automatic source-language detection and worked well. After a developer adds inline dynamic-dictionary markup to pin a brand name in the output, th
- A multilingual support flow on Azure Translator's text API relies on automatic source-language detection because inbound messages arrive in several languages. To keep a specific product name rendered
- You maintain an English-to-German localization pipeline for a pharmaceutical company, and a colleague has already trained and published a Custom Translator system that encodes the approved clinical te
- Translator passes profanity through by default; Marked versus Deleted decides whether the signal survives
By default (profanityAction=NoAction) Translator carries profanity from source to target. Deleted removes the profane words from the output with no replacement, while Marked replaces them — with asterisks by default, or wrapped in tags when profanityMarker=Tag, which leaves the workflow able to detect and post-process the occurrence.
Trap Choosing Deleted in a moderation workflow that still needs to know profanity was present in the source.
- textType=html preserves markup, and class=notranslate excludes an element from translation
Setting textType=html tells Translator the payload is well-formed markup so tags are preserved instead of being translated as prose, and any element carrying class="notranslate" is returned in its source language. That combination is how boilerplate, code samples, brand names, and legal identifiers are excluded from a translated page.
Trap Submitting HTML with the default plain text type, which translates the markup itself and corrupts the document.
- Translating a library of files uses Translator's asynchronous batch document translation over Blob Storage, not a loop over the text endpoint
Azure Translator document translation has two processes: asynchronous batch, which handles multiple and large documents through an Azure Blob Storage account with separate source and target containers authorized by SAS token or managed identity, while you poll job and per-document status; and synchronous single-file, which accepts one document, needs no storage account, and returns the translated file directly in the response. Both preserve the original layout and formatting and can apply a custom translation model and a glossary, but only the batch path accepts PDFs, where OCR extracts and translates the text of a scanned PDF while retaining the original layout - the synchronous path is limited to .txt, .tsv, .csv, .html, .mhtml, .docx, .pptx, .xlsx, .msg, and .xlf. The text translation API is a different surface entirely - it takes and returns strings, so it cannot round-trip a .docx or .pptx.
Trap Extracting text from each file and looping it through the text /translate endpoint, which discards exactly the layout and formatting document translation exists to preserve. The other inversion is picking the synchronous path for a whole library: synchronous accepts only a single document per request, and it is the asynchronous batch mode - not the synchronous one - that requires the blob source and target containers.
4 questions test this
- A Foundry-based contract tool lets a user upload one .docx agreement in the browser and immediately download a French version that keeps the original formatting. The design must avoid provisioning any
- A records team must translate a library of thousands of scanned PDF invoices held in Azure Blob Storage into English, preserving each invoice's original layout in the output. A colleague suggests the
- You are adding an interactive feature to a web app where a user uploads a single Word (.docx) contract and immediately downloads the translated .docx from the response. You want to avoid standing up a
- Your Foundry solution must translate a library of about 4,000 Word and PowerPoint files from a source Azure Blob Storage container into three languages, writing the results to a target container while
Speech solutions for agentic and analytics workloads
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.
Implement information extraction solutions
Retrieval and grounding pipelines with Azure AI Search
Read full chapterCheat sheet
Sharp facts the exam loves — scan these before test day.
- A hybrid query is one request carrying both
searchandvectorQueries, and Reciprocal Rank Fusion merges the two result sets Hybrid search issues a single request that specifies a full-text
searchstring and one or morevectorQueries; the two run in parallel using BM25 for text and HNSW or exhaustive KNN for vectors, and a Reciprocal Rank Fusion (RRF) algorithm merges them into one ranked result set. Hybrid is the documented default choice because keyword matching handles product codes, jargon, dates, and names that pure vector similarity misses.Trap Assuming you must run two separate calls and blend the scores in application code, or that adding vectors to an index makes keyword search redundant.
5 questions test this
- You are grounding a Microsoft Foundry agent on an Azure AI Search index that holds keyword-searchable catalog text and vector embeddings. A teammate wants the agent to fire one keyword search request
- You are building a retrieval and grounding pipeline for a Microsoft Foundry agent that answers over an Azure AI Search index holding both plain-text fields and generated embeddings. The catalog it gro
- Your grounding index for a Foundry parts-catalog agent now includes vector embeddings for every chunk, and an engineer proposes switching the agent to pure vector retrieval to simplify the query. In t
- An agent runs a hybrid query with semantic ranking enabled and grounds answers on the returned chunks. For a broad, multi-faceted question, a reviewer finds that a clearly relevant chunk never appears
- A Microsoft Foundry agent grounds on an Azure AI Search index that currently runs pure vector search over document embeddings. It returns conceptually related passages well, but users report that quer
- Semantic ranking only runs when the query sets
queryTypetosemanticand names asemanticConfiguration Semantic ranking is opt-in per query: the request must set
queryTypetosemanticand reference asemanticConfigurationdefined in the index, after which results carry a separate@search.rerankerScorealongside the ordinary@search.score. Because the reranker works from the first-stage candidates, Microsoft advises setting the vector querykto 50 so the ranker has enough input to work with.Trap Believing relevance improved because a semantic configuration exists on the index, when no query actually requests
queryType=semanticand the ranker never fires.5 questions test this
- You are tuning a Foundry grounding pipeline that queries an Azure AI Search index. The index already defines a semantic configuration, and you want Microsoft's reranker to reorder each result set so t
- Your grounding pipeline issues a semantic query (`queryType` set to `semantic`) against Azure AI Search and passes the top chunks to a model. To make results deterministic, an engineer adds an `orderb
- An agent runs a hybrid query with semantic ranking enabled and grounds answers on the returned chunks. For a broad, multi-faceted question, a reviewer finds that a clearly relevant chunk never appears
- A Microsoft Foundry agent grounds on an Azure AI Search index that currently runs pure vector search over document embeddings. It returns conceptually related passages well, but users report that quer
- Your Foundry grounding pipeline queries an Azure AI Search index whose schema already defines a semantic configuration. A teammate assumes relevance is now improved and points to that configuration as
- An explicit
orderbyclause discards relevance ranking, including RRF and reranker order Explicit sort orders override relevance-ranked results, so a hybrid or semantic query that also specifies
orderbyreturns rows in the sorted order rather than by fused relevance. Grounding queries that need the most relevant chunks must omit sorting and instead shape ranking with filters, scoring profiles, or the semantic ranker.Trap Sorting grounding results by a recency field to make answers 'fresher', which silently destroys the ranking the LLM depends on.
6 questions test this
- A Foundry agent grounds on a hybrid query (full-text plus vector) against Azure AI Search. To surface higher-priority records first, an engineer adds an `orderby` that sorts results by a numeric prior
- Your grounding pipeline issues a semantic query (`queryType` set to `semantic`) against Azure AI Search and passes the top chunks to a model. To make results deterministic, an engineer adds an `orderb
- A Foundry grounding pipeline runs a hybrid query against Azure AI Search. Stakeholders want two ranking preferences applied together: newer document revisions should rank higher, and documents tagged
- Your Microsoft Foundry agent grounds answers on a hybrid query against a live Azure AI Search index of policy documents. Compliance wants newer policy revisions to rank higher so answers cite current
- Your grounding pipeline runs a hybrid query against Azure AI Search, and stakeholders ask that newer revisions be favored so answers feel fresher. An engineer adds an `orderby` on the last-modified da
- Your Foundry grounding pipeline queries an Azure AI Search index whose schema already defines a semantic configuration. A teammate assumes relevance is now improved and points to that configuration as
exhaustiveswitches a vector query from approximate HNSW to full KNN, andoversamplingcompensates for quantizationA vector query defaults to approximate nearest-neighbour traversal of the HNSW graph; setting
exhaustiveto true forces an exhaustive KNN scan that maximizes recall at the cost of latency, which is normally used to establish a ground-truth baseline. Theoversamplingvalue widens the candidate set retrieved before rescoring, which recovers recall lost to compressed vector storage.Trap Turning on exhaustive search across a production index to 'improve quality', instead of using it only to measure how much recall the approximate path is losing.
- Permission-scoped grounding is enforced by permission metadata in the index applied as a filter during query execution, not by prompt instructions or post-generation redaction
Azure AI Search enforces document-level access control by storing permission metadata alongside each indexed document and excluding non-matching documents inside the query pipeline, before results are returned. Two patterns exist: the API-agnostic security-filter pattern, where you index a string field holding user or group identities, your application obtains the caller's identity at query time and passes it as a filter expression, and results that do not match the string are trimmed; and the native ACL/RBAC permission-filter pattern (preview), where permission filters are enabled on the index and the caller's Microsoft Entra token is attached to the query with the
x-ms-query-source-authorizationheader so the service compares its user, group, and scope claims to the stored metadata. Either way the trimming happens before the retrieved chunks ever reach the model.Trap Instructing the model in the system prompt to ignore documents the user is not entitled to see, or redacting the generated answer afterwards — by then the restricted content has already entered the prompt, and the model is not an authorization boundary. Do not invert the two patterns either: security filters are plain string comparison that your application drives, while permission filters are recognized as Microsoft Entra authentication; with permission filters the client app still needs Search Index Data Reader on the index in addition to the per-user token, and permission changes at the source only take effect after the metadata is resynchronized to the index.
6 questions test this
- You are building a Microsoft Foundry RAG agent that grounds answers on an Azure AI Search index of internal engineering documents, where some documents are restricted to specific teams. A security rev
- You are building a Microsoft Foundry RAG agent that answers HR questions from an Azure AI Search index whose documents belong to different employee tiers, and each caller may see only the tier they ar
- Your Microsoft Foundry agent grounds answers on an Azure AI Search index that an ADLS Gen2 indexer populates with ACL permission metadata, and every query carries the caller's Microsoft Entra token so
- Your grounding index returns a `groupId` value in every result, so a developer adds a query filter on `groupId` to trim documents by the caller's group. The filter raises an error and no trimming happ
- Your grounding content sits in Azure Data Lake Storage Gen2, already governed by Microsoft Entra ACLs, and is indexed into Azure AI Search for a Foundry agent. Security wants query results trimmed by
- You are building a Foundry RAG agent over an Azure AI Search index whose documents belong to different security groups. Compliance requires that a user's grounding results never include documents they
- A field's attributes, not its content, decide what a grounding query can do with it, and most attribute changes are not an in-place edit
In an Azure AI Search index only
searchablefields take part in full-text BM25 matching, onlyfilterablefields can appear in a$filter(the mechanism behind permission trimming, metadata scoping, and a fixed filter on an agent's search tool), onlysortablefields can be named inorderby, onlyfacetablefields drive facets, and onlyretrievablefields can be returned to be quoted or cited; exactly one field must be the key and it must be of typeEdm.String, while vector fields of typeCollection(Edm.Single)are searchable but cannot be filterable, sortable, or facetable. New fields can be added to a live index at any time, but an existing field's data type and most of its attributes are locked in for the lifetime of the index, so turning on filtering or sorting after the fact means adding a new field or dropping and rebuilding the index and re-indexing every document.Trap Assuming a field can be filtered or sorted because its value is visible in results.
retrievableonly controls whether the value comes back to the caller; a security-trimming or metadata filter on that field fails until the field is redefined asfilterable, which existing documents will not pick up without a rebuild and full re-index.6 questions test this
- You are building a Microsoft Foundry RAG agent that grounds answers on an Azure AI Search index of internal engineering documents, where some documents are restricted to specific teams. A security rev
- A grounding index has been live for months. Product asks for two changes: let queries sort on an existing `publishedDate` field that wasn't defined as `sortable`, and add a `$filter` on the `Collectio
- You maintain a live Azure AI Search index of support articles that grounds a Microsoft Foundry agent. Reviewers find that an article whose `title` matches the question ranks below articles that merely
- A Microsoft Foundry agent grounds on an Azure AI Search index built months ago. Each document has a productNotes field defined as retrievable so the agent can quote it, and its text is visible in resu
- Your grounding index returns a `groupId` value in every result, so a developer adds a query filter on `groupId` to trim documents by the caller's group. The filter raises an error and no trimming happ
- You are building a Foundry RAG agent over an Azure AI Search index whose documents belong to different security groups. Compliance requires that a user's grounding results never include documents they
- A scoring profile boosts or suppresses the ranking of documents a query already matched, and only one profile applies to any given query
A scoring profile is a named object defined in the index schema that boosts or suppresses the ranking of matching documents; it is built from
textweightsoversearchablefields plus optional functions -freshnessover anEdm.DateTimeOffsetfield,magnitudeover a numeric range,distancefrom a reference point, andtagfor overlap with a caller-supplied tag list - and functions can only be applied to fields attributed asfilterable. A query uses one by naming it in thescoringProfileparameter, withscoringParameterssupplying the per-request reference point or tag list, or through the index'sdefaultScoringProfile; an index can hold up to 100 profiles but you can only specify one profile at a time in any given query, and profiles work in keyword, vector, hybrid, and semantically reranked queries yet apply only to nonvector fields. Because a profile only adjusts the score of documents the query already matched, you can add, modify, or delete one with no index rebuild and no effect on indexed documents, which makes it the documented lever for 'prefer the newest revision' or 'boost this customer's documents' in a grounding pipeline.Trap Reaching for
orderbyor a$filterto express the same preference: sorting replaces relevance ranking outright and a filter deletes non-matching documents from the result set, whereas a scoring profile re-weights only what the query already found. Two further near-misses: naming two profiles in one request to combine boosts, when only one profile applies per query so the criteria must be combined as multiple functions inside a single profile; and expecting a profile to lift a purely vector match, when profiles apply only to nonvector fields and a function over a field that isn'tfilterableproduces no boost at all.5 questions test this
- A Foundry agent grounds on a hybrid query (full-text plus vector) against Azure AI Search. To surface higher-priority records first, an engineer adds an `orderby` that sorts results by a numeric prior
- You maintain a live Azure AI Search index of support articles that grounds a Microsoft Foundry agent. Reviewers find that an article whose `title` matches the question ranks below articles that merely
- A Foundry grounding pipeline runs a hybrid query against Azure AI Search. Stakeholders want two ranking preferences applied together: newer document revisions should rank higher, and documents tagged
- Your Microsoft Foundry agent grounds answers on a hybrid query against a live Azure AI Search index of policy documents. Compliance wants newer policy revisions to rank higher so answers cite current
- Your grounding pipeline runs a hybrid query against Azure AI Search, and stakeholders ask that newer revisions be favored so answers feel fresher. An engineer adds an `orderby` on the last-modified da
- The Text Split skill's
textSplitModechooses between multi-sentence pages and one-sentence chunks textSplitModeacceptspages(the default, producing chunks of several sentences bounded bymaximumPageLength) orsentences(one sentence per chunk, with sentence boundaries decided bydefaultLanguageCode). Page mode addspageOverlapLength, which must be less than half the maximum page length, andmaximumPagesToTake, which defaults to 0 meaning take every chunk.Trap Choosing
sentencesmode for a long PDF corpus, which explodes the chunk count into fragments too small to carry answerable context.12 questions test this
- You are building a RAG ingestion pipeline in a Microsoft Foundry project that indexes a large corpus of multi-page policy PDFs into Azure AI Search through an integrated-vectorization skillset. Tester
- You are building a RAG pipeline in Microsoft Foundry over layout-heavy vendor contracts and financial reports whose key terms sit in large tables, many of which continue across a page break. With a ch
- You maintain a retrieval-augmented generation index in Azure AI Search built over several thousand long technical manuals, and each retrieved chunk must carry enough surrounding context to answer a qu
- A reviewer worries that configuring the Text Split skill in pages mode with a fixed maximumPageLength will chop sentences in half at every chunk boundary, which would harm the quality of the embedding
- You are configuring the Text Split skill in pages mode with maximumPageLength set to 2,000 characters for an Azure AI Search RAG index. A teammate wants to maximize continuity between chunks and propo
- An Azure AI Search RAG index ingests JSON blobs from Azure Blob Storage, and each blob holds an array of independent support-resolution records. The blob indexer runs with the default parsing behavior
- An Azure AI Search RAG index in your Microsoft Foundry project chunks long product manuals with the Text Split skill in pages mode. Users find that the assistant answers questions about the opening se
- You configure the Text Split skill in pages mode for an Azure AI Search retrieval-augmented generation index over a corpus written mostly in Japanese and Chinese. Inspecting the emitted chunks, you fi
- Your team indexes an internal engineering wiki into Azure AI Search to ground a Foundry agent. Every article comfortably fits the embedding model's input limit, so the skillset indexes one search docu
- Your Azure AI Search skillset chunks extracted text with the Text Split skill in pages mode and then vectorizes each chunk with the Azure OpenAI Embedding skill. Chunk length is currently expressed in
- Your Azure AI Search retrieval-augmented generation index ingests very long product manuals, but for this use case only the introductory overview at the front of each manual is ever queried. To hold d
- Your team is standing up fixed-size chunking with the Text Split skill for a new Azure AI Search RAG index over general business documents. The content is ordinary prose with no unusual structure, and
- Microsoft's documented starting point is roughly 2,000 characters per chunk with about 500 characters of overlap
For fixed-size chunking Azure AI Search recommends starting at a chunk of about 512 tokens (roughly 2,000 characters) with about 25 percent overlap (roughly 128 tokens, or 500 characters), then tuning by content type. Overlap preserves continuity across chunk boundaries, but an overlap value set too large relative to the actual content length can result in no usable overlap at all.
Trap Pushing overlap toward 50 percent on the theory that more context is always better, which duplicates content, inflates index size, and can break the overlap entirely.
9 questions test this
- You are configuring the Text Split skill in pages mode with maximumPageLength set to 2,000 characters for an Azure AI Search RAG index. A teammate wants to maximize continuity between chunks and propo
- During a design review for an Azure AI Search retrieval-augmented generation index that uses fixed-size Text Split chunking, a teammate proposes removing chunk overlap entirely to shrink the index and
- You are tuning fixed-size Text Split chunking for an Azure AI Search RAG index in a Microsoft Foundry project. Retrieved chunks are first vectorized by a text-embedding model and then handed, several
- Your team indexes an internal engineering wiki into Azure AI Search to ground a Foundry agent. Every article comfortably fits the embedding model's input limit, so the skillset indexes one search docu
- Your Azure AI Search skillset chunks extracted text with the Text Split skill in pages mode and then vectorizes each chunk with the Azure OpenAI Embedding skill. Chunk length is currently expressed in
- A team building an Azure AI Search retrieval-augmented generation index sets the Text Split chunk size close to the embedding model's maximum token input, reasoning that larger chunks always retain mo
- Your team is standing up a new fixed-size chunking step with the Text Split skill for an Azure AI Search retrieval-augmented generation index, and you have no prior measurements of the corpus. A teamm
- Your team is standing up fixed-size chunking with the Text Split skill for a new Azure AI Search RAG index over general business documents. The content is ordinary prose with no unusual structure, and
- You run two Azure AI Search retrieval-augmented generation indexes that both use fixed-size Text Split chunking. One index covers densely structured reference tables and specification sheets; the othe
- The Azure Content Understanding skill does semantic chunking with Markdown output that can span page boundaries
The Text Split skill cuts on character or token counts and cannot cross a document's structural seams intelligently, while the Azure Content Understanding skill performs semantic chunking with Markdown output and produces units that preserve meaning across page boundaries and keep cross-page tables intact. Content Understanding therefore combines extraction and chunking in one skill instead of requiring a separate splitter.
Trap Keeping a character-based splitter on layout-heavy contracts and reports, which slices tables and clauses in half so no retrieved chunk contains a complete answer.
7 questions test this
- You are building a RAG pipeline in Microsoft Foundry over layout-heavy vendor contracts and financial reports whose key terms sit in large tables, many of which continue across a page break. With a ch
- Your Foundry RAG pipeline indexes engineering specification PDFs into Azure AI Search with the Azure Content Understanding skill, which handles both extraction and chunking, and you left its chunking
- Your retrieval-augmented generation pipeline over financial reports feeds retrieved chunks to a chat model. Tables in the source PDFs currently reach the model as run-together characters produced by a
- An Azure AI Search RAG index ingests JSON blobs from Azure Blob Storage, and each blob holds an array of independent support-resolution records. The blob indexer runs with the default parsing behavior
- You are designing a RAG ingestion skillset in a Microsoft Foundry project for a library of layout-rich engineering specifications and regulatory filings. Many documents contain multi-page tables and f
- You are simplifying a retrieval-augmented generation skillset in Azure AI Search that currently runs a document-cracking skill to pull out text and tables and then a separate Text Split skill to chunk
- Your retrieval-augmented generation index in Azure AI Search covers multi-page standard operating procedures in which a single numbered procedure often begins on one page and finishes on the next. Wit
- Chunking exists first to stay under the embedding model's input token ceiling
Embedding models impose a hard input limit — text-embedding-3-small accepts 8,191 tokens, roughly 6,000 words — and content past the limit is truncated rather than embedded, silently losing data. Chunking is also worthwhile below the limit when one document covers several subtopics, because a single vector over mixed content represents none of them well.
Trap Treating chunking as purely a relevance-tuning knob and skipping it for documents that 'fit', without checking the model's token ceiling.
- Integrated vectorization needs an indexer, a skillset with a chunking skill plus an embedding skill, and an index that receives the vectors
Indexing-time vectorization depends on three pieces working together: an indexer that pulls from a supported data source and drives the pipeline, a skillset combining a chunking strategy with an embedding skill such as the AzureOpenAIEmbedding skill, and a search index to receive the chunked, vectorized content. Removing any one of them means embeddings must be generated and pushed by your own code.
Trap Assuming that defining vector fields on the index is enough, when nothing in the pipeline actually calls an embedding model.
4 questions test this
- Your team runs a nightly Python job that reads PDFs from Azure Blob Storage, splits each file into passages, calls an embedding model, and pushes the resulting vectors into an Azure AI Search index th
- You are building a RAG solution in a Microsoft Foundry project and want Azure AI Search to chunk and vectorize a library of PDFs automatically during indexing, with no embedding code of your own. You
- You are building a RAG chat app in a Microsoft Foundry project over PDFs in Azure Blob Storage. In your Azure AI Search index you added a searchable vector field, defined an Azure OpenAI vectorizer, a
- You are designing an Azure AI Search ingestion pipeline in a Microsoft Foundry project that must automatically chunk and embed a growing set of Word and PDF files as they are added, with no separate e
- The vectorizer declared in the index must use the same embedding model that encoded the content
Query-time text-to-vector conversion comes from a vectorizer defined in the index schema, assigned to a vector profile which is in turn assigned to the vector field; the vectorizer must match the embedding model used during indexing (AzureOpenAIEmbedding skill pairs with the Azure OpenAI vectorizer, the AML skill with the Foundry model catalog vectorizer, and so on). Mismatched models put query and document vectors in different spaces and relevance collapses.
Trap Upgrading the indexing embedding model to a newer version without re-embedding the corpus or updating the vectorizer, and blaming the drop in quality on chunk size.
5 questions test this
- You are building a RAG solution in a Microsoft Foundry project and want Azure AI Search to chunk and vectorize a library of PDFs automatically during indexing, with no embedding code of your own. You
- Your team indexed a product-knowledge corpus in Azure AI Search using integrated vectorization, generating chunk embeddings with the AML skill pointed at a Cohere embedding model deployed from the Mic
- Your team ships an Azure AI Search index for a chat app. During indexing the content was embedded with the AzureOpenAIEmbedding skill pointed at a text-embedding-3-large deployment. A colleague sets t
- A retrieval pipeline in your Microsoft Foundry project has worked well for months: Azure AI Search embedded the corpus with one Azure OpenAI model, and a matching Azure OpenAI vectorizer converts quer
- You set up integrated vectorization in Azure AI Search. During indexing, chunks were embedded by the AzureOpenAIEmbedding skill pointed at a text-embedding-ada-002 deployment. To save quota, a colleag
- Index projections write chunk-grain rows to a secondary index while the parent document stays in the primary index
Optional index projections let one indexer run populate a granular chunk index alongside a document-level index, both from the same source document. The chat application matches on the fine-grained secondary index and then returns the richer parent document from the primary index, which is the documented pattern for question-answering and chat-style apps over long PDFs.
Trap Flattening everything into one chunk index, which loses the document-level title, date, and summary fields that make a complete answer possible.
3 questions test this
- In a Microsoft Foundry RAG project, your Azure AI Search skillset already splits each ingested support article into passages with a Text Split skill and embeds them. You now need every passage to beco
- Your Foundry chat app grounds answers in an Azure AI Search index where each long PDF is indexed as one document, with the full text in a single searchable field. Answers are weak because retrieval ma
- You are building a question-answering copilot in a Microsoft Foundry project over a library of lengthy equipment manuals held in Azure Blob Storage. Retrieval must match on fine-grained passages so an
- Indexer batching and retry on embedding throttling are built in and non-configurable, so run the indexer on a schedule
Azure AI Search has internal, non-configurable retry policies for throttling errors raised when an Azure OpenAI embedding deployment exhausts its tokens-per-minute allowance, and Microsoft recommends putting the indexer on a schedule so calls dropped despite those retries are picked up on the next run. Token-per-minute limits apply per model per subscription, so sharing one embedding deployment between the ingestion and query workloads makes both throttle.
Trap Tuning an indexer batch size to dodge throttling, when the batching and retry behavior is not exposed for configuration at all.
- The Custom Web API skill is the skillset extension point when no built-in skill fits, and it imposes a fixed values/recordId batch contract on your endpoint
Microsoft.Skills.Custom.WebApiSkill calls your own endpoint from inside the skillset; the uri must use the HTTPS scheme, and the indexer sends up to batchSize records per call (default 1000) as a top-level values array whose elements each carry a unique recordId and a data object matching the skill's declared inputs. Your service must reply with the same recordIds, a data object matching the declared outputs, and errors and warnings properties that are required but may be null - a non-JSON response, a missing recordId, or a duplicate one means that record is not enriched. Set authResourceId or authIdentity so the search service's managed identity authenticates instead of embedding a function key in the uri.
Trap Assuming your enrichment endpoint can take and return whatever JSON shape it likes, or that a plain http:// endpoint is acceptable. The envelope is fixed and HTTPS-only, and any response record whose recordId was not in the request is discarded. It is also distinct from the Azure Machine Learning skill, which targets a model deployed in an AML online endpoint rather than an arbitrary Web API.
4 questions test this
- During indexing in Azure AI Search, you must tag each document with a proprietary risk score produced by an internal REST microservice your team already hosts over HTTPS. No built-in skill performs th
- During indexing in Azure AI Search you must enrich each document with a risk classification that no built-in skill produces, so you wired a Microsoft.Skills.Custom.WebApiSkill into the skillset to cal
- Your Azure AI Search skillset must call a bespoke enrichment service your team wrote and hosts as an Azure Function that performs a custom compliance tagging step no built-in skill offers. Security fo
- You must enrich indexed documents with a classification that no built-in Azure AI Search skill provides, so you plan to call your own hosted model from inside the skillset. You want the indexer to bat
- Built-in language skills enrich grounding content during indexing, but their output reaches the index only through an output field mapping
Entity Recognition, Key Phrase Extraction, Language Detection, PII Detection (which can also mask the detected entities), Sentiment, and Text Translation are billable built-in skills that run pretrained Foundry Tools language models over each document inside the skillset, producing values you can then filter, facet, scope, or redact grounding data on. Everything a skill emits lives only in memory, as a node in the enriched-document tree, for the duration of the indexer run: to persist it you must add an outputFieldMappings entry to the indexer whose sourceFieldName is the /document/... path of the skill output and whose targetFieldName is a top-level simple field or collection in the index. A skill that is configured correctly but whose output is never mapped enriches nothing, and the index looks as though the skill never ran.
Trap Reaching for fieldMappings instead of outputFieldMappings. fieldMappings maps verbatim source fields to index fields and can never address a skill output; only outputFieldMappings maps in-memory enrichments, and its target must be a top-level simple field or collection, not a path into a complex type. A second near-miss is assuming the Foundry resource attached to the skillset does the processing - for these skills it is attached for billing only, and Azure AI Search executes them on internal resources.
3 questions test this
- You add the Key Phrase Extraction skill to an Azure AI Search skillset to enrich grounding data, expecting to facet answers by key phrase. The skill runs without error during indexing, but the keyphra
- Your Azure AI Search skillset uses the Key Phrase Extraction and Language Detection built-in skills to enrich grounding data, and you attached a Foundry (Azure AI multi-service) resource to the skills
- You added the Entity Recognition skill to an Azure AI Search skillset so your grounding data can be faceted and filtered by the organizations mentioned in each document. The skill is configured correc
- The Document Extraction skill is the lightweight cracker; the Azure Content Understanding skill is the one that keeps tables, positions, and cross-page units
Both skills crack a document into page text and inline images, but only the Azure Content Understanding skill extracts text location metadata, preserves tables including those spanning pages, produces semantic units that cross page boundaries, and works across PDF, DOCX, XLSX, and PPTX; the Document Extraction skill returns image location metadata for PDFs only and has no table extraction or built-in chunking. Microsoft directs new skillsets to the Content Understanding skill and keeps the older Document Layout skill supported only for existing pipelines.
Trap Reaching for the Document Layout skill on a new build, or picking Document Extraction for a table-heavy corpus because it is cheaper per document.
8 questions test this
- Your team already runs an older Azure AI Search skillset that uses the Document Layout skill, and you are now standing up a brand-new multimodal ingestion pipeline over a corpus of regulatory manuals
- A knowledge base for an internal copilot draws from a mixed corpus: PDF datasheets, Word specifications, Excel pricing sheets, and PowerPoint decks. For every format, the ingestion pipeline must retur
- You are building a RAG pipeline in Azure AI Search over a mix of PDF and Word product specifications. To let the copilot cite the exact page and region a fact came from, every extracted text passage a
- Your team ingests a very large corpus of plain-text PDF policy memos into Azure AI Search for vector search. The memos contain no tables, and exact page positions or detailed layout are not needed for
- Your team ingests product-specification PDFs into an Azure AI Search index for a RAG copilot, and much of the meaning lives inside embedded charts and schematic diagrams that carry no descriptive capt
- You are building a RAG ingestion pipeline in Azure AI Search over a corpus of financial reports. Many tables continue across two or three pages, and every grounding chunk must keep each multi-page tab
- You are designing an Azure AI Search ingestion skillset and want to minimize the number of components. The requirement is a single built-in skill that both cracks each document and produces the chunks
- You are building a low-cost RAG ingestion skillset over a PDF-only library of equipment manuals. Each manual is mostly page text plus inline photos, and the copilot must be able to show each photo nex
- The GenAI Prompt skill turns each extracted image into a natural-language description that is indexed and embedded as text
Image verbalization calls an LLM once per extracted image at ingestion time through the GenAI Prompt skill, storing a concise description such as "five-step HR access workflow that begins with manager approval" next to the surrounding document text. Because the picture is now expressed in language, the pipeline can explain relationships inside a diagram and hand an LLM a caption it can cite verbatim, at the cost of one model call per image.
Trap Expecting verbalization to also support image-as-query lookups; the GenAI Prompt skill supports text-to-vector hybrid queries but not image-to-vector queries.
9 questions test this
- Your team ingests equipment manuals into an Azure AI Search index for a RAG copilot. Most troubleshooting knowledge lives inside flow-chart diagrams, and support engineers need answers that explain th
- Your Azure AI Search index was built with the GenAI Prompt skill, so its images are stored as verbalized text descriptions and users search it with typed questions. Product managers now want customers
- A market-research team indexes PDF reports whose findings are locked inside charts and infographics in Azure AI Search. They accept that describing each visual will add one language-model call per ima
- Your Azure AI Search RAG pipeline ingests engineering PDFs in which key procedures appear only inside embedded diagrams. You need each diagram turned into a concise natural-language description at ing
- Your team ingests product-specification PDFs into an Azure AI Search index for a RAG copilot, and much of the meaning lives inside embedded charts and schematic diagrams that carry no descriptive capt
- You are extending a product-catalog search app on Azure AI Search. Merchandisers want to upload a photo of an item and retrieve catalog images that look visually similar, with no text query involved.
- You are designing an Azure AI Search index for a hardware team. Text and captions are embedded with the Azure OpenAI text-embedding-3-large model for typed search, which works well. The team now also
- In your Azure AI Search RAG solution, the only authoritative description of a network failover procedure lives inside an architecture diagram embedded in a PDF runbook. Answers must explain the relati
- Your team runs an Azure AI Search skillset that cracks engineering PDFs with the Document Extraction skill and verbalizes every embedded diagram through the GenAI Prompt skill. That skill calls the sa
- Querying with an image as input requires a multimodal embedding model and its matching vectorizer, not verbalization
Only multimodal embedding models expose vectorizers that convert an image into a vector at query time, so a "find things that look like this" experience must be built with the AML skill or the Azure Vision multimodal embeddings skill plus the equivalent vectorizer. Direct multimodal embeddings need no LLM at indexing time but carry no explanation of why two images are related and give the LLM no ready-made text to cite.
Trap Assuming an index built with the GenAI Prompt skill can accept an uploaded photo as the query, because it already 'understands' images.
8 questions test this
- Your Azure AI Search index already stores image vectors produced during indexing by the Azure AI Vision multimodal embeddings skill. You are now wiring up the query side so that a user-supplied photo
- Your team ingests equipment manuals into an Azure AI Search index for a RAG copilot. Most troubleshooting knowledge lives inside flow-chart diagrams, and support engineers need answers that explain th
- Your Azure AI Search index was built with the GenAI Prompt skill, so its images are stored as verbalized text descriptions and users search it with typed questions. Product managers now want customers
- You are extending a product-catalog search app on Azure AI Search. Merchandisers want to upload a photo of an item and retrieve catalog images that look visually similar, with no text query involved.
- You are designing an Azure AI Search index for a hardware team. Text and captions are embedded with the Azure OpenAI text-embedding-3-large model for typed search, which works well. The team now also
- In your Azure AI Search RAG solution, the only authoritative description of a network failover procedure lives inside an architecture diagram embedded in a PDF runbook. Answers must explain the relati
- Your team runs an Azure AI Search skillset that cracks engineering PDFs with the Document Extraction skill and verbalizes every embedded diagram through the GenAI Prompt skill. That skill calls the sa
- You are building a fresh image-similarity feature in Azure AI Search for a stock-photo library. Users will supply an image and expect visually similar images back; there is no requirement to explain w
- Extracted images live in a knowledge store, with their location recorded in the index for retrieval at answer time
A multimodal pipeline stores the images it pulls out of source documents in a knowledge store, and the index keeps each image's location so the application can render the original figure next to the cited text. That is what lets a RAG answer show both a textual citation and the diagram snippet it came from.
Trap Trying to return the image bytes from the search index itself rather than storing them and indexing a pointer.
- The Azure AI Search agent tool defaults to
vector_semantic_hybridand accepts fivequery_typevalues Configuring the tool means supplying
project_connection_idandindex_name; the optionalquery_typeacceptssimple,vector,semantic,vector_simple_hybrid, orvector_semantic_hybridand defaults tovector_semantic_hybrid,top_kdefaults to 5, and anyfilteryou set applies to every query the agent issues against that index.Trap Setting
query_typetosemanticon an index that has vector fields but no semantic configuration, or expectingfilterto be negotiated per question by the model.5 questions test this
- You connect a Foundry agent to an existing Azure AI Search index with the Azure AI Search tool, using a project connection that authenticates with the project's managed identity because company policy
- Your team connects a Foundry agent to an Azure AI Search index that has searchable, retrievable vector fields but no semantic configuration defined on it. To improve relevance over plain keyword searc
- Your Foundry agent answers vendor-compliance questions from an Azure AI Search index of contract clauses, and the Azure AI Search tool was attached with nothing but the project connection and the inde
- You add the Azure AI Search tool to a Foundry agent and accept its default settings, supplying only the project connection and the index name. The index carries both text and vector fields plus a sema
- Your Foundry agent grounds answers with the Azure AI Search tool over an index that holds chunked text, embeddings, and a semantic configuration. To favor conceptual matching, a colleague pinned the t
- The tool can target exactly one index, and citations need retrievable text plus a source URL field
One Azure AI Search tool instance can only target a single index, and for grounded answers to carry usable citations the index needs at least one retrievable text field holding the content plus a retrievable field containing the source URL (optionally a title) so
url_citationannotations can link back. When responses come back with no citations at all, the usual cause is agent instructions that never ask for them.Trap Attaching several indexes to one Azure AI Search tool definition rather than adding one tool per index or moving to a knowledge base.
3 questions test this
- You built a Foundry agent that grounds answers with the Azure AI Search tool. The connected index has a retrievable content field and a retrievable field holding each document's source URL, and the to
- Your Foundry agent grounds answers with the Azure AI Search tool, and its instructions already tell it to cite every claim. Answers come back grounded and reference the retrieved text, but the returne
- A compliance reviewer must sign off on a Foundry agent that grounds its answers in an Azure AI Search index of policy documents. The index exposes a retrievable content field and a retrievable source
- A knowledge base's
outputModedecides whether the retrieve call returns grounding chunks or a synthesized answer Setting
outputModetoanswerSynthesismakes the knowledge base compose an answer with the assigned Azure OpenAI model, shaped byanswerInstructions, while the default extractive behaviour returns merged grounding content that your application passes to its own model.retrievalInstructionsis the separate lever that tells the planner which knowledge source to prefer for which kind of question.Trap Confusing
retrievalInstructionswithanswerInstructions; the first steers source selection during planning, the second only shapes the synthesized answer's wording.7 questions test this
- A single Foundry IQ knowledge base serves two consumers. Your customer-facing chat agent needs composed natural-language answers, so the knowledge base's default output mode is answer synthesis. A sep
- Your team queries a Foundry IQ knowledge base through its retrieve action. Today the call returns merged grounding chunks that your application must pass to its own chat model to compose a reply. You
- You configure a Foundry IQ knowledge base so its retrieve call returns a synthesized natural-language answer with citations instead of raw grounding chunks. To hold latency and cost down, a colleague
- Your Azure AI Search knowledge base currently has answer synthesis enabled, so it composes replies with its own assigned model. A new compliance rule requires that the final customer-facing answer be
- Your Foundry IQ knowledge base already has answer synthesis enabled and an assigned Azure OpenAI model, so its retrieve call returns a composed natural-language answer with citations. Product reviewer
- Your team exposes an Azure AI Search knowledge base to a customer-support app through the retrieve action. The knowledge base already has a supported Azure OpenAI model assigned, and the search servic
- Your Foundry knowledge base connects three knowledge sources: product documentation, job postings, and support tickets. During testing, the query planner sometimes searches the job-postings source for
- The
document_retrievalevaluator needs human relevance labels and returns search metrics, not an LLM judgment The Document Retrieval evaluator takes
retrieval_ground_truth(per-documentquery_relevance_labelvalues) plusretrieved_documentsand computes ndcg@3, xdcg@3, fidelity, top1_relevance, top3_max_relevance, holes, and holes_ratio; it needs no model deployment because nothing is judged by an LLM. The Retrieval evaluator is the alternative when no labels exist: it uses an LLM judge onqueryandcontextand scores 1 to 5.Trap Reaching for Groundedness to diagnose bad retrieval — groundedness scores the generated answer against the context it was given, and stays high even when the retriever fetched the wrong documents.
4 questions test this
- Retrieval quality is the bottleneck in your Foundry RAG pipeline, so you plan a parameter sweep over search algorithms, top-k values, and chunk sizes to find the best configuration. Your evaluation te
- You want to check whether the retrieval stage of your Foundry RAG chat app is pulling in context chunks that are actually relevant to each user query. Your team has not produced any human relevance la
- Users of your Foundry RAG agent report answers that are fluent but based on the wrong documents. When you run your evaluation suite, the Groundedness scores stay high across the same failing cases, so
- You are tuning retrieval for a Foundry RAG app with the Document Retrieval evaluator and a judgment set your team labeled last quarter. After you move to a larger chunk size and widen the result list,
- A parameter sweep replays the same labeled query set across retrieval settings and picks the highest-scoring configuration
Microsoft documents parameter sweeping as the way to tune RAG retrieval: generate retrieval results for several search algorithms, top-k values, and chunk sizes, then score each run with the retrieval metrics and keep the settings that maximize quality. The
holesmetric guards the exercise, because a high hole count means the labeled set has gaps and the other numbers cannot be trusted.Trap Comparing two retrieval configurations on end-to-end answer quality alone, which mixes retrieval regressions with generation noise.
Document content extraction with Content Understanding
Read full chapterUnlock with Premium — includes all practice exams and the complete study guide.