Choosing Foundry Services for Generative AI and Agents
The four selection decisions
A requirement lands on your desk: "summarize 40,000 support tickets a night, extract the product code from each one into a field a reviewer can spot-check, and let an agent answer follow-up questions from the internal knowledge base." Nothing in that sentence tells you how to provision a resource or wire a pipeline. It tells you which building blocks to pick, and picking them is what this objective tests. The sibling pages own the rest of the lifecycle: Setting Up AI Solutions in Foundry provisions the resource, projects, and deployments; Managing, Monitoring, and Securing AI Systems runs them; this page decides what goes inside them.
Selection breaks into four decisions, and the figure below shows them in the order a question usually walks. First, which model class fits the task. Second, whether a prebuilt Foundry Tool replaces the model call entirely; Foundry Tools are the ready-made AI capabilities such as Content Understanding and Content Safety, and the fourth section below covers when one beats a model. Third, how content is indexed and retrieved. Fourth, which tools and memory an agent attaches. Microsoft Foundry is the platform all four decisions happen inside, and one Foundry resource fronts the model catalog[1], the prebuilt Foundry Tools[2], and Foundry Agent Service.
The order matters because each decision narrows the next. A question that has already told you the output must be schema-bound JSON has settled decision two, which makes half the model-class options irrelevant. Read the requirement for which decision it is actually asking about, and the distractors usually belong to a different one.
Choosing the model class
Fix the class before you compare individual models. The Foundry catalog carries thousands of entries and the leaderboard only helps once you know which shelf you are shopping on, so the useful first question is what shape the task has, not which model scores highest. The figure below lays out the five classes an AI-103 question realistically chooses between and the signal that selects each one.
A chat model is the general-purpose default for assistant tasks, drafting, and question answering. A reasoning model generates intermediate reasoning tokens and summarizes them before it returns the first response token, so a streaming request can sit silent while the model thinks and client-side timeouts have to be set far higher than for a chat model; you control how much of that work happens with the reasoning effort parameter[3], not with sampling parameters. That last point is worth pinning down because it is a predictable misread: temperature and top_p change how randomly the model picks its next token and nothing else. Raising them does not add a reasoning pass, and no amount of sampling tuning turns a chat model into a reasoning model.
A small language model (SLM) is a compact generative model, typically from under 1 billion to around 14 billion parameters, where Microsoft's Phi family is the canonical example, against large language models with hundreds of billions. Compared with an LLM it needs far fewer resources[4], running on a single GPU or even a CPU, gives lower latency and higher throughput per device, and can run on-premises or on-device, while trading away some breadth of general knowledge. That profile makes an SLM the right selection for narrow, well-specified, high-volume work: classification, intent routing, field extraction, short summarization. A frontier LLM is the right selection when the task needs broad world knowledge or long multi-step reasoning.
A multimodal model is the pick when the ask is open-ended interpretation of an image or document: captioning, describing, answering questions about what is in the picture. And code models are a class of their own: the catalog carries Codex-family reasoning models[5] tuned for agentic software work such as reading and refactoring files across a repository, writing tests, and opening pull requests. Selecting one of those is a decision about which model authors the code, which is a different axis from the Code Interpreter tool that runs code a model already wrote.
Once the class is fixed, two mechanisms rank and route within it. Model leaderboards[1] in the Foundry portal compare curated catalog models on quality (reasoning, knowledge, question answering, math, and coding), safety, performance measured as latency and throughput, and cost, with scenario leaderboards for specific use cases such as coding or math. Microsoft is explicit that these are standardized comparisons over public datasets and directs you to re-evaluate shortlisted models against your own data, so a leaderboard rank is a shortlist, not a fitness proof. Model router[6] is the other mechanism: it is itself a deployed model that analyzes each prompt and routes it to one of its supported underlying models, giving you a single deployment and chat surface instead of many. Its routing mode sets the trade-off, with Balanced (the default) picking the cheapest model within a narrow quality band of the best model for that prompt, Cost widening that band for more savings, and Quality always taking the highest-rated model. Model router is a trained routing model inside one deployment, not a gateway or load balancer across resources, and its effective context window is capped by the smallest model in its subset.
So the working order is: read the requirement for a shape signal (volume and latency, multi-step logic, an image, source code), pick the class that signal names, and only then argue about which specific model.
Retrieval, fine-tuning, or the prompt
Three mechanisms change what a model produces, and Microsoft documents them as complementary rather than competing[7]. Prompt engineering carries per-request instructions such as language or support tier. Retrieval-augmented generation (RAG) injects retrieved passages at inference time, so refreshed content is reflected as soon as the index updates and nothing is retrained. Fine-tuning adapts behavior, style, task performance, and output format. A single scenario often needs all three, so a question asking you to choose one is really asking which mechanism owns the thing that has to change.
The split is easiest to hold as a question about what changes and how often, which is the pairing the figure below sets out for each mechanism. Volatile facts change per transaction, and weights cannot be updated per transaction, so fine-tuning a model on a daily-changing catalog produces a model that states stale detail confidently while you pay repeatedly for training and hosting. Behavior and format are stable properties of the task, which is exactly what training can encode. Instructions vary per conversation, which is what a system prompt is for.
Picking the fine-tuning technique
When fine-tuning genuinely is the answer, the training data you can actually supply selects the technique. Enumerate the three before reaching for any one of them:
| Technique | Training data you must supply | Fits |
|---|---|---|
| Supervised fine-tuning (SFT)[8] | Labeled prompt and completion (or conversational) examples | Task specialization, output format, instruction following; problems with finite correct solutions |
| Direct preference optimization (DPO)[9] | Preferred and non-preferred responses supplied as pairs | Subjective qualities: tone, style, content preference, with no separate reward model to fit |
| Reinforcement fine-tuning (RFT)[10] | A grader that scores each response, instead of example outputs | Complex reasoning with many solution paths but checkable answers |
Foundry also documents stacking the techniques, running supervised fine-tuning first and DPO afterwards, since preference fine-tuning works on base models and on models already fine-tuned with SFT. Whichever you use, the result is a separate custom model that has to be deployed to its own endpoint before any client can call it, and Microsoft is explicit that fine-tuning carries upfront costs for training the model plus additional hourly costs for hosting the custom model once it is deployed, on top of the usual per-token inference. That standing cost is often the deciding factor when retrieval would have solved the problem instead.
Match the mechanism to what has to change, and the answer falls out: facts that move point at retrieval, behavior and format point at fine-tuning, and per-conversation instructions belong in the prompt.
When a Foundry Tool beats a model call
Some requirements name an output a general model cannot produce, and those are the ones that point at a prebuilt tool instead. Foundry Tools[2] are the prebuilt AI capabilities, including Content Understanding, Speech, Translator, Document Intelligence, and Content Safety, and Microsoft documents them as available as part of the Microsoft Foundry resource[11] rather than as separate accounts you provision, connect, and secure one by one. Consolidating them behind that one resource is why provisioning a separate account per capability, and then wiring per-service keys, is the wrong answer to a "reduce the identity and networking work" requirement.
Three signals in a stem reliably select a tool over a model call.
Named fields with a confidence score. A vision-capable chat model is right for open-ended interpretation. When the output has to 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 analyzer. Microsoft's own tool-selection guidance[12] makes the gap explicit: the managed services provide confidence and grounding, while a build-your-own solution on Foundry models does not, so "with no confidence scores, you either accept all results or review all results." A chat completion returns no calibrated per-field confidence, so there is nothing to compare against a 0.80 review threshold.
Deterministic, repeatable output at volume. Azure Translator[13] is neural machine translation across a large language set 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.
Moderation of content the model never sees. This is the sharpest boundary on the page, and the figure below traces it. Foundry guardrails apply at model and agent intervention points[14], so they can only inspect prompts, tool traffic, and completions that flow through a Foundry deployment. Content that must be screened before it ever reaches a model, such as a user upload being stored or routed to a human reviewer, requires a direct call to the Azure AI Content Safety[15] analyze APIs, which return per-category severity you compare against your own threshold. If the payload does not traverse an intervention point, no guardrail fires, however carefully it was configured.
Four signals, then, each select a Foundry Tool: schema-bound fields, a confidence threshold, deterministic output, or moderation off the model path. Open-ended interpretation is the one that selects a model.
Making content reachable: pull, push, or remote
Before an agent can ground on your content, that content has to become reachable, and there are three sanctioned ways to make it so. Two of them build a search index and one deliberately does not. The figure below shows all three as parallel lanes, because they are alternatives rather than stages of one pipeline.
The pull model attaches an indexer to a supported data source object and automates crawling, change detection, and skillset execution on a schedule[16]. The smallest interval a schedule allows is five minutes, which means index freshness is bounded by that run interval: content written 30 seconds after a run waits for the next one. In exchange you get the enrichment machinery, because a skillset, the chain of AI enrichment steps that run over each document as it is indexed, attaches to an indexer rather than standing on its own.
The push model calls the Index Documents REST API or an SDK client from your own code, submitting per-document upload, merge, mergeOrUpload, and delete actions. Microsoft documents no restriction on data source type and no restriction on execution frequency for this path, which makes push the only option when content originates outside the supported sources (an on-premises line-of-business system, for instance) or when the index has to stay in sync faster than any schedule allows. The price is that skillsets do not run independently of an indexer, so AI enrichment and integrated vectorization are unavailable on the push path and your code has to produce the chunks, the vectors, and the deletes itself. Those two facts together are how a question is usually built: an unsupported origin or a near-real-time freshness requirement forces push, and the correct answer accepts the extra work.
The third lane skips the index. A knowledge source[17] defines the content a retrieval pipeline draws on, and it comes in two kinds. An indexed knowledge source is backed by a search index you host on the Azure AI Search service, so content must be ingested first through pull or push. A remote knowledge source retrieves content from an external platform at query time, which avoids an ingestion pipeline altogether but makes freshness and permissions the source system's responsibility. Not every knowledge source needs its own indexer, because a remote source is queried live and never populates a local index.
Read a stem for the origin and the freshness bound, then: supported source plus a tolerable schedule points at pull; an unsupported source or sub-schedule freshness points at push and its manual chunking and vectors; content you would rather query in place points at a remote knowledge source.
Query planning: agentic retrieval or classic RAG
Ingestion decides what can be found; query planning decides how hard the system works to find it. Classic RAG sends one query to the index and leaves planning and the handoff to the language model to your application code. Agentic retrieval[18] moves that orchestration into the service: your application calls a knowledge base with a retrieve action, and a language model decomposes the request, using the 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. The figure below walks that pipeline left to right.
The knob that decides whether any of that planning happens is retrieval reasoning effort[19], configured on the knowledge base and defaulting to low. Two different settings on this page share the words reasoning effort, so keep them apart: the one in the model-class section is a per-request parameter on a reasoning model that governs how much the model thinks, while this one is a property of an Azure AI Search knowledge base that governs how much query planning the retrieval pipeline does before it searches. At low and medium effort the knowledge base sends the query and the conversation history to a language model to generate subqueries. At minimal effort that planning step is skipped entirely and queries go straight to the knowledge sources, which is the bypass drawn under the pipeline in the figure. Lowering effort therefore cuts token spend and latency at the cost of decomposition quality, and it is easy to underestimate what is lost: with planning bypassed there is no query rewriting and no history-aware decomposition, so layered follow-up questions such as "and what about the enterprise tier?" degrade badly.
One piece of vocabulary is worth debunking at first contact, because it looks like a third option and is not. Iterative search is not a selectable pattern alongside agentic retrieval and classic RAG; it is an internal follow-up pass inside agentic retrieval at medium reasoning effort, and because it is sequential it adds latency rather than the parallelism that makes agentic retrieval fast.
Multi-turn conversations with compound questions justify agentic retrieval at low or medium effort; single-shot lookups where your code already owns orchestration do not, and minimal effort is the setting you choose when you have decided decomposition is not worth paying for.
Choosing an agent's grounding source
Four grounding options compete for the same slot in an agent definition, and the deciding question is almost never which retrieval algorithm is better. It is who owns the corpus and whose identity reads it. The comparison table in the orientation above lays the four out criterion by criterion and the decision tree walks them as a sequence of questions; this section explains why each criterion decides what it decides, which is why it carries no third figure of its own.
File Search[20] augments an agent with knowledge from files that developers or end users upload, backed by vector stores, the embedding indexes the agent builds from those uploads and searches at query time. That is exactly right when users attach their own documents to a conversation and exactly wrong when the corpus has to stay under your governance, because index schema, enrichment, and refresh are not yours to control when the agent owns the store.
The Azure AI Search tool grounds the agent on an existing index on your own search service. Reach for it when the corpus already has an ingestion pipeline, enrichment skills, a semantic configuration, and a permission model, because all of that survives; the agent becomes one more consumer of an index you already run.
The SharePoint tool[21] and the Microsoft Fabric data agent tool[22] are the pair that answers a permission requirement. SharePoint grounds an agent on documents in a connected site or folder using the Microsoft 365 retrieval stack, so you export nothing, build no semantic index, and manage no refresh logic. The Fabric 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 run under identity passthrough, on-behalf-of the signed-in user: the retrieval or query executes as that user, so every end user must already hold read access to the SharePoint site or to the Fabric data agent and its underlying sources, app-only or service-principal authentication is unsupported, and the data source and the Foundry project must be in the same tenant. Building your own File Search store or private index over content that already lives in SharePoint or Fabric duplicates an ingestion pipeline and throws away the per-user trimming these tools give for free.
Web grounding is the fourth option and the one with the hardest boundary. The Web search tool and the Grounding with Bing Search tools bring real-time public web results with citations into an answer, which fits questions about current public information. Grounding with Bing Search retrieves from the web at large rather than from specific domains; to narrow results you use Grounding with Bing Custom Search, or Web Search's own allow and block lists. All of them reach only public, Bing-indexed content, and they carry no tenant permission model, so an internal catalog, policy library, or ticket history cannot be answered this way at all.
Reduced to four signals: uploaded files point at File Search, an index you already run points at the Azure AI Search tool, per-user permission trimming over tenant content points at SharePoint or Fabric, and current public facts point at web grounding. Nothing else about the four is a tie-breaker.
Agent tools: who executes what
An agent's tools sort cleanly by one question: who runs the code. Foundry Agent Service documents two categories[20], built-in and custom, and function calling sits deliberately outside both. The figure below groups them by that execution locus, and reading a stem for who executes is usually enough to eliminate two distractors.
Built-in tools are preconfigured capabilities the service executes for you after basic configuration, with no external hosting and no custom code. Web search, Code Interpreter, File Search, Azure AI Search, and Azure Functions are the commonly-used ones, among others in the catalog such as Image Generation and the SharePoint and Fabric tools discussed above. Code Interpreter deserves one clarification because its name invites a misread: it gives whatever model you deployed a sandbox in which to run Python that model has written, for data analysis, computation, and charts over attached files. It does not change which model authors the code, so a "raise the quality of generated code" or "refactor across the repository" requirement is answered by selecting a code model, not by attaching Code Interpreter to a general chat model.
Custom tools point the agent at something you supply. The Model Context Protocol (MCP) tool connects an agent to tools hosted on an MCP server endpoint, which Microsoft documents as the fit when the tools are shared across multiple agents or maintained by a different team. The OpenAPI tool connects the agent to one external HTTP API described by an OpenAPI 3.0 or 3.1 specification, with anonymous, API key, and managed identity authentication defined inside the tool definition. Agent-to-Agent endpoints connect an agent to other agents. A toolbox sits alongside these as an aggregator rather than a fourth kind: it 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. It handles credential injection, token refresh, and policy enforcement centrally with Microsoft Entra ID and OAuth, and it supports versions, with agents bound to the consumer endpoint picking up a promoted default without code changes.
Function calling is the third column of the figure because your application, not the service, executes it: the agent proposes the call, your code runs the function and returns the result. That is the distinction behind a recurring trap. The Azure Functions tool has the service invoke a deployed Azure Function; function calling has your own process run the code. Same word, different executor.
Three executors, then: the service runs built-in tools, you host or describe custom tools, and your application runs function calls. A toolbox does not change who executes anything, it changes how many endpoints an agent has to know about.
Agent memory across sessions
"Remember that I prefer German and that I always order for the Berlin office" is a requirement about time, and it separates two different stores. A conversation is the raw transcript layer: it is a durable object that stores items rather than only chat messages, capturing messages, tool calls, and tool outputs, so the next turn can reuse that context verbatim. Memory in Foundry Agent Service[23] 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. The figure below shows the flow from session items through extraction into the store, and then out again at retrieval time.
Memory is not raw transcript storage, and expecting it to be is the most common misreading. The service uses a model to extract and consolidate, merging duplicates and resolving conflicting facts, so what comes back is distilled rather than verbatim. It arrives in three 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.
There are two ways to reach the store. Attaching the memory search tool[24] to a prompt agent lets it read from and write to the memory store during conversations, and that is the recommended default. The low-level Memory Store APIs are for advanced cases that need direct control of individual memory records, a store-level default time to live, and explicit remember-or-forget behavior. The trade is scope handling: automatic scope resolution, bound to the user ID, is supported through the memory search tool, while the low-level APIs require you to set scope explicitly on every request rather than inferring it from the caller.
One related distinction belongs here because it shares the word session. Reusing the same agent session identifier does not replay prior turns. With the Responses protocol, continuity comes from previous_response_id or a conversation identifier; the session identifier alone does not resend earlier messages to the model.
Within a single exchange, conversation items carry the context verbatim; across sessions, devices, and workflows, the distilled memory store does, and the memory search tool is how you use it unless you specifically need record-level lifecycle control.
Exam-pattern recognition
Most questions on this objective hide one distinction in the stem. Find it, and the answer follows.
- "Thousands of calls per hour", "on the device", "single GPU", "classification" points at a small language model. The distractor is the largest frontier model, justified by "quality matters"; on a focused task the small model wins on cost and latency without losing the task.
- "Multi-step logic", "plan then verify", "hard math or code" points at a reasoning model with its reasoning effort set. The distractor raises
temperatureortop_p, which only changes token-selection randomness. - "Mixed prompt difficulty on one endpoint" points at model router. The distractor calls it a gateway or load balancer across resources; it is a trained routing model inside one deployment, and its effective context window is capped by the smallest model in its subset.
- "Named fields", "structured JSON", "route below 0.80 for human review" points at a schema-driven analyzer. The distractor is a multimodal model, which returns no calibrated per-field confidence to threshold.
- "Refactor across the repository", "improve the generated code" points at selecting a code model. The distractor attaches Code Interpreter, which only executes Python the deployed model already wrote.
- "Screen the upload before it is stored or sent to a reviewer" points at a direct Content Safety analyze call. The distractor is a deployment guardrail, which never sees content that does not cross an intervention point.
- "Catalog changes daily" points at retrieval. The distractor fine-tunes, which cannot update weights per transaction.
- "Match a house tone" or "preferred versus rejected answers" points at direct preference optimization; "many valid solution paths but a checkable answer" points at reinforcement fine-tuning with a grader; everything else formatting- or task-shaped points at supervised fine-tuning.
- "Source is an on-premises system" or "index must reflect changes within seconds" points at the push path with the Index Documents API, and the correct answer accepts that your code produces the chunks, the vectors, and the deletes.
- "Compound follow-up questions over several turns" points at agentic retrieval. If the stem instead says token spend must drop and decomposition is expendable, it points at minimal reasoning effort.
- "Each user must only see what they already have access to", with content in SharePoint or Fabric points at those tools and their on-behalf-of passthrough. The distractor builds a private index, which discards the permission trimming and cannot use app-only authentication anyway.
- "Current public information with citations" points at web grounding; the same stem with an internal corpus points anywhere but web grounding, which reaches only public, Bing-indexed content.
- "Tools maintained by another team" or "shared across agents" points at the MCP tool; "one external HTTP API with a specification" points at the OpenAPI tool; "our own process must run the code" points at function calling rather than the Azure Functions tool.
- "Remember the user next week" points at the long-term memory store through the memory search tool. The distractor reuses a session identifier, which does not replay prior turns.
Grounding and knowledge sources for a Foundry agent
| Criterion | File Search | Azure AI Search tool | SharePoint / Fabric data agent | Grounding with Bing Search |
|---|---|---|---|---|
| Where the content lives | Files uploaded by developers or end users | An index you already host on Azure AI Search | A connected SharePoint site, or a published Fabric data agent over its lakehouse, warehouse, KQL database, or Power BI model | Public, Bing-indexed web pages |
| Who builds and refreshes the index | The agent, in vector stores it creates | You, through your own ingestion pipeline | Nobody: retrieval runs live against the source system | Nobody: results are fetched from the web per query |
| Identity used at retrieval | The agent's access to its own vector stores | The project connection configured on the tool | The signed-in user via on-behalf-of; app-only authentication unsupported | None; no tenant permission model |
| Control of schema, enrichment, and chunking | None; the agent manages the vector store | Full: skillsets, semantic configuration, and chunking are yours | None; owned by SharePoint or Fabric | None |
| Pick it when | Users attach their own files to a conversation | The corpus already has enrichment, semantic ranking, and governance | The content is already in the tenant and answers must be permission-trimmed per user | The answer depends on current public information and needs URL citations |
Decision tree
Sharp facts the exam loves — give these one last read before exam day.
Cheat 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.
References
- Model benchmarks and leaderboards in Microsoft Foundry
- What are Foundry Tools?
- Azure OpenAI reasoning models
- Generative small language models in Foundry Local on Azure Local
- Codex with Azure OpenAI in Microsoft Foundry Models
- Model router for Microsoft Foundry concepts
- Getting started with customizing a large language model (LLM)
- Customize a model with fine-tuning
- Direct preference optimization
- Reinforcement fine-tuning
- What is Azure Content Understanding in Foundry Tools?
- Choose the right Azure AI tool for document processing
- What is Azure text translation in Microsoft Foundry?
- Intervention points for Microsoft Foundry guardrails
- What is Azure AI Content Safety?
- Data import and ingestion in Azure AI Search
- What is a knowledge source? (Azure AI Search)
- Agentic retrieval overview (Azure AI Search)
- Set the retrieval reasoning effort (Azure AI Search)
- Agent tools overview for Microsoft Foundry Agent Service
- Use SharePoint content with the agent API
- Use the Microsoft Fabric data agent with Foundry agents
- What is memory in Foundry Agent Service?
- Create and use memory in Foundry Agent Service