Free Microsoft AI-103 Practice Test Questions MCQs

Stop wondering if you're ready. Our Microsoft AI-103 practice test is designed to identify your exact knowledge gaps. Validate your skills with Developing AI Apps and Agents on Azure questions that mirror the real exam's format and difficulty. Build a personalized study plan based on your free AI-103 exam questions mcqs performance, focusing your effort where it matters most.

Targeted practice like this helps candidates feel significantly more prepared for Developing AI Apps and Agents on Azure exam day.

2950+ already prepared
Updated On : 31-Aug-2026
95 Questions
Developing AI Apps and Agents on Azure
4.9/5.0

Page 1 out of 10 Pages

Topic 1: Case Study Contoso, Ltd

   

Overview
Contoso, Ltd is a multinational retail company that builds, deploys, and manages generative Al and agent-based solutions by using Microsoft Foundry.

Identity Environment:
Contoso uses Microsoft Entra ID for identity management, authentication, and authorization capabilities that enable agents to access organizational resources and services. Contoso recently formed a new Al engineering team named Agent1Dev Team to optimize and maintain existing Al solutions.
The team collaborates with solution architects, DevOps engineers, and security engineers to design, implement, monitor, and secure Al applications.
Contoso also has a team named Agent1Test Team that is responsible for validating Al solutions before the solution deployments.

Generative Environment:
Contoso has a Microsoft Foundry deployment that contains two projects named Project1 and Project2.

Project1
Project1 contains a customer support agent named Agent1 that assists customers with product inquiries and troubleshooting requests. Agent1 has the following configurations:

Agent1 uses a base model deployment.
A safety evaluation pipeline is NOT enabled.
Tool invocation approval workflows are NOT enabled.
Conversation memory constraints are NOT configured.

Agent1 interacts with customers by using digital support channels and answers general questions about Contoso products.
Project1 is deployed to an Azure region located in the European Union (EU). Agent1Dev Team will use Project1 to optimize and maintain Agent1.

Project2
Project2 contains a deployed video generation model. The marketing department at Contoso has access to Project2 and plans to use the model to develop a video creation solution.
Development of the solution is incomplete.

Data Environment:
Contoso stores product-related information in Azure resources that support Al applications.
The Azure environment contains an Azure Blob Storage account named storage1 that stores product detail sheets for all the Contoso products.
The product sheets include specifications, feature descriptions, and product support information that Agent1 can use to answer customer questions. The product sheets are stored in the PDF format.

Problem Statement:

Contoso identifies the following issues:

Agent1 has only general knowledge of the Contoso products.
A recent chat interaction with Agent1 was analyzed for sentiment. The results of the analysis have NOT been processed yet.
Agent1 does NOT use the detailed product information in the product sheets stored in storage1 when responding to customer questions.
The finance department at Contoso reports that vendor invoices must be reviewed manually to ensure that the invoices match the terms defined in the vendor contracts. The invoices contain tables, logos, and varied layouts that make the documents difficult to process consistently.

Requirement:

Planned Changes:
Contoso plans to implement the following changes:
Implement a solution for Project1 that analyzes the vendor invoices by evaluating both the visual layout and the textual content of the invoices, so that the invoice details can be verified against the vendor contract terms.
Update the base model deployment used by Agent1 and standardize the model version to ensure continuity and consistent responses.
Enable Agent1 to retrieve and use the detailed product information from the product sheets stored in storage1.
Implement an indexing solution for the product sheets that Agent1 can use to answer customer questions.
Complete the development of the video creation solution.

Technical Requirements:

Contoso identifies the following technical requirements:
The model deployment used by Agent1 must support scalable, high-throughput generative Al workloads and dynamically scale to handle variable customer support traffic, without requiring reserved throughput capacity.
The product sheets must be processed by using an indexing pipeline that enables semantic and vector search, so that Agent1 can retrieve the relevant product information.
Responses generated by using the product sheet information must be relevant, complete, and accurate.
Agent1 must be able to use the product sheets to answer natural language questions about product details.
The model version used by Agent1 must remain consistent to ensure stable responses.
The data processed by the model must remain within the EU.

Safety and Compliance Requirements:

Contoso identifies the following security and compliance requirements:
API keys must NOT be used to access Foundry-deployed models.
Access to the Azure resources must follow the principle of least privilege.
The developers at Contoso must authenticate to Microsoft Foundry resources by using Microsoft Entra authentication.
Access to Project1 must be assigned to the members of Agent1Dev Team by using a security group named SC_Agent1_Dev.
Access to Project1 must be assigned to the members of Agent1Test Team by using a security group named SC_Agent1_Test.
Agent1 must never reveal customer information, even if a document that contains customer data is added erroneously to the product sheet repository in storage1.
The product sheets might contain images that include embedded text. Agent1 must be protected from malicious instructions potentially hidden within the images.

Business Information:
Contoso identifies the following business requirements:
Users that interact with Agent1 must have a personalized experience in future interactions, including the ability for Agent1 to retain conversation context and recall relevant information from previous interactions.
Agent1 must answer questions only about the products sold by Contoso.

In Microsoft Foundry, you use the Chat playground with the GPT-35 Turbo model. You have a prompt that contains the following code.



You need the model to create an explanation of the code. The solution must minimize costs. What should you do?

A. Add function F (explanation) to the prompt.

B. Change the model to GPT-4-32k.

C. Add// what does function F do? to the prompt.

D. Set the temperature parameter to 1.

C.   Add// what does function F do? to the prompt.

Explanation:
The goal is to generate an explanation of the provided JavaScript code while keeping costs low. Costs in Azure OpenAI are primarily driven by input token count (prompt) and output token count (completion). The most efficient approach is to add a clear, concise instruction directly in the prompt, guiding the model to generate the desired explanation without unnecessary overhead.

Correct Option:

C. Add // what does function F do? to the prompt.
Adding a comment-style question directly in the prompt is the simplest and most token-efficient way to instruct the model. It uses very few input tokens, does not increase output length unnecessarily, and clearly defines the task, ensuring the model responds with a focused explanation without extra cost.

Incorrect Option:

A. Add function F (explanation) to the prompt.
This option is ambiguous and does not clearly instruct the model to generate an explanation. It may confuse the model or cause it to output irrelevant content, leading to wasted tokens and higher cost without guaranteeing a useful answer.

B. Change the model to GPT-4-32k.
GPT-4-32k is significantly more expensive per token than GPT-3.5-Turbo. Using a larger, costlier model for a simple explanation task is unnecessary and increases costs without adding value for this specific requirement.

D. Set the temperature parameter to 1.
Temperature controls randomness, not the content or cost. Setting it to 1 increases variability and may produce longer or less focused responses, potentially increasing token usage and cost, while not ensuring a relevant explanation.

Reference:

Azure OpenAI Service pricing – token-based cost model.

Microsoft Learn: Plan and manage costs for Azure OpenAI – emphasizes prompt design and model selection for cost optimization.

You have an Azure subscription that contains a Microsoft Foundry resource. You need to build an app that will suggest product names from a given product description. Which Foundry model should you use?

A. GPT-4

B. DALL-E

C. Whisper

D. embeddings

A.   GPT-4

Explanation
The task is to generate text (product name suggestions) from a given text input (product description). This is a classic text generation or content creation task. GPT-4 is a large language model (LLM) specifically designed for text-based tasks like generating natural language from a prompt, making it the ideal choice for this scenario . The other listed models are specialized for different modalities.

Correct Option

A. GPT-4
GPT-4 is a state-of-the-art language model that excels at understanding and generating human-like text . It is the appropriate model for a scenario where you need to generate new text (product names) based on a descriptive prompt (product description) . It is widely used for content generation and summarization tasks .

Incorrect Options

B. DALL-E
DALL-E is an image generation model designed to create images from textual descriptions . It does not perform text-to-text tasks like generating product names from a description.

C. Whisper
Whisper is an audio transcription model used for converting speech to text . It is not suited for text generation or natural language processing tasks of this nature.

D. embeddings
Embeddings models (like text-embedding-ada-002) are used to create numerical vector representations of text . These are used for tasks like semantic search and Retrieval-Augmented Generation (RAG), not for generating new text content .

You have an Azure Al Search resource named Search1 that is used by multiple apps hosted in Azure. You need to secure Search1. The solution must meet the following requirements:

• Prevent access to Search1 from the internet.

• Limit the access of each app to query specific indexes.

What should you do? To answer, select the appropriate options in the answer area. NOTE:

Each correct answer is worth one point.




Explanation
The first requirement is to prevent all public internet access to the search resource. This is achieved by integrating the service with Azure Private Link, which involves creating a private endpoint. The second requirement is to restrict each app's access to only specific indexes. This is a data-plane authorization task that is best handled by using Azure roles (RBAC), which can be scoped to individual indexes.

Correct Options

Create a private endpoint
Private endpoints allow a client on a virtual network to securely access data in a search index over a Private Link . The network traffic between the client and the search service traverses the Microsoft backbone network, eliminating exposure from the public internet . This directly meets the requirement to prevent internet access, as you can block all connections on the public endpoint .

Use Azure roles
Azure roles provide a granular way to manage access to Azure resources. The Search Index Data Reader role, for instance, grants read access to query a specific index . The portal does not directly support assigning roles at the individual index level, but it can be achieved using PowerShell or the Azure CLI by scoping the role assignment to a specific index .

Incorrect Options

To prevent access from the internet

Configure an IP firewall: IP firewall rules restrict access based on the client's IP address, but they still allow connections over the public internet. This does not meet the requirement to prevent access from the internet entirely.

Use Azure roles: Azure roles are an identity-based authorization mechanism, not a network isolation feature. They do not control network traffic or prevent public internet access.

To limit access to query specific indexes

Create a private endpoint: A private endpoint is a network-level security control, not an authorization mechanism. It does not differentiate between different apps or control which indexes a specific app can query.

User key authentication: Query API keys provide access at the service level, not at the index level . They cannot be used to restrict an app to a specific index; any key grants access to all indexes on the service.

You have a Microsoft Foundry project that contains an agent named Agent1. Agent1 runs successfully, but Foundry Control Plane does NOT display values for error rates, runs, and token usage, and the Traces tab is empty. You need to ensure that Foundry Control Plane displays the appropriate values for Agent1.

A. Restart Agent1 from Foundry Control Plane.

B. Update Agent1 to a new version.

C. Assign a Log Analytics workspace to Agent1.

D. Enable Application Insights for Agent1.

D.   Enable Application Insights for Agent1.

Explanation
Foundry Control Plane does not inherently display detailed telemetry like error rates, runs, token usage, or traces. To view this data, you must connect your Foundry project to an Application Insights resource . Application Insights serves as the telemetry store for Foundry agents, consolidating diagnostics and enabling you to track performance, analyze token usage, and troubleshoot errors . Enabling this connection will make the missing monitoring data available in the Foundry Control Plane.

Correct Option

D. Enable Application Insights for Agent1.
Application Insights is the required observability backend for Foundry agents. The Foundry documentation explicitly states that you must connect an Application Insights resource to your Foundry project to store and view traces and telemetry . The connection is established by adding an Application Insights resource to your project, after which server-side traces are automatically enabled without requiring code changes .

Incorrect Options

A. Restart Agent1 from Foundry Control Plane.
Restarting Agent1 would not generate the missing telemetry data. The issue is not that the agent is stuck but that the monitoring data is not being collected or stored. Telemetry collection requires a dedicated backend like Application Insights, not a simple restart.

B. Update Agent1 to a new version.
Updating the agent version does not affect its observability or telemetry collection. The problem is the absence of a configured telemetry sink (Application Insights), not a bug in the agent's current version.

C. Assign a Log Analytics workspace to Agent1.
While Application Insights uses Log Analytics as its underlying data store , you must connect the Application Insights resource itself. Assigning a standalone Log Analytics workspace is insufficient because the Foundry agent's monitoring integration is specifically designed to work with Application Insights, not a raw Log Analytics workspace.

Reference

Microsoft Learn documentation states: "Foundry stores traces in Application Insights by using OpenTelemetry semantic conventions." It requires connecting an Application Insights resource to the project .

Application Insights provides a "unified experience for monitoring AI agents across multiple sources, including Microsoft Foundry," enabling you to "analyze token usage and costs" and "troubleshoot errors" .

Traces are viewed in the Foundry portal after telemetry flows to Application Insights .

You plan to configure an evaluation in Microsoft Foundry for a Retrieval Augmented Generation (RAG) chat app. You need to provide scores for groundedness, relevance, and harmful-content categories. Which two evaluation categories can you use? Each correct answer presents part of the solution.

A. risk and safety metrics

B. AI quality (NLP) metrics

C. AI quality (AI assisted) metrics

D. fluency evaluator

E. similarity evaluators

A.   risk and safety metrics
C.   AI quality (AI assisted) metrics

Explanation
In Microsoft Foundry, built-in evaluations are categorized into three main types: AI quality (AI assisted), AI quality (NLP), and Risk and safety metrics. The scenario requires scores for groundedness, relevance, and harmful-content categories. Groundedness and relevance are quality metrics that require an AI model as a "judge" to evaluate, placing them in the AI quality (AI assisted) category. Harmful-content detection (violence, hate speech, etc.) falls under the risk and safety category. Therefore, you need to select both categories to cover all the required metrics.

Correct Options

A. risk and safety metrics
This category is the one that provides evaluations for harmful-content categories. It includes metrics such as Self-harm-related content, Hateful and unfair content, Violent content, and Sexual content. These metrics help identify and quantify potentially unsafe or undesirable output from your AI application.

C. AI quality (AI assisted) metrics
This category provides the scores for Groundedness and Relevance. These are AI-assisted metrics that require a model deployment (like GPT-4) as a judge to evaluate the quality and coherence of the generated content. Groundedness measures how consistent the response is with the provided context, while relevance measures how well the response answers the query.

Incorrect Options

B. AI quality (NLP) metrics
This category includes mathematical metrics such as F1 score, BLEU, ROUGE, and METEOR. These are usually based on comparing the generated response to a ground-truth answer and do not measure groundedness, relevance, or harmful content, making them unsuitable for this specific scenario.

D. fluency evaluator
Fluency is an AI-assisted metric that evaluates the natural language quality and readability of the response. While it is a valid quality metric, it does not measure groundedness, relevance, or harmful content, which are the specified requirements. It is not one of the two categories needed here.

E. similarity evaluators
Similarity evaluators, such as GPT-similarity, are a type of AI-assisted metric that measures the semantic similarity between the generated response and the ground truth. However, this is a specific metric, not a broad category, and it does not address the three requirements (groundedness, relevance, and harmful content) simultaneously, making it incorrect for the question's scope.

Reference

Microsoft Learn documentation categorizes evaluation metrics into AI quality (AI assisted), AI quality (NLP), and Risk and safety metrics in Foundry.

Groundedness and Relevance are listed under the AI quality (AI assisted) category.

Harmful content categories like Violence, Hate speech, etc., are listed under the Risk and safety metrics.

You have a Microsoft Foundry project that contains an agent. The agent uses two tools to perform the following actions:

Use Azure AI Search to retrieve answers from a private product documentation index.

Use the web search tool to retrieve public information on the internet.

You need to ensure that for a specific run, the agent deterministically retrieves information only from the internet. To what should you set tool_choice?

A. "required"

B. {"type": "azure_ai_search"}

C. "auto"

D. {"type": "bing_grounding"}

D.   {"type": "bing_grounding"}

Explanation
The tool_choice parameter controls which tool the agent uses to respond to a user query . The agent has two tools: azure_ai_search for the private index and bing_grounding for public internet search. To force the agent to use the internet search tool for a specific run, you must explicitly set tool_choice to the bing_grounding tool. This overrides the default "auto" behavior where the model decides which tool to use . The correct syntax to force the model to use a specific tool is {"type": "bing_grounding"} .

Correct Option

D. {"type": "bing_grounding"}
This correctly forces the agent to invoke the Bing Grounding tool for the specific run. The type field must match the tool's defined type, and for the Bing Grounding tool, the type is always "bing_grounding" . This ensures deterministic internet-only retrieval.

Incorrect Options

A. "required"
The "required" (or "any") value forces the model to call a tool but does not specify which one, allowing it to choose between the Azure AI Search and Bing Grounding tools . This would not guarantee internet-only retrieval.

B. {"type": "azure_ai_search"}
This would force the agent to use the Azure AI Search tool, which accesses the private product documentation index. This is the opposite of what you need, as it would restrict results to the private index, not the internet.

C. "auto"
This is the default setting where the model decides whether to use a tool and which one to use based on the user's query. For a specific run requiring deterministic internet-only retrieval, this does not provide the necessary control.

Reference
Azure AI Foundry documentation states that tool_choice can be used to force a specific tool, and for Bing Grounding, the type is "bing_grounding" . LangChain documentation confirms tool_choice can force a specific tool or allow the model to decide (auto), or force any tool (any/required) .

You have an Azure subscription that contains an Azure Language in Foundry Tools service resource. You need to identify the URL of the REST interface for the Language service. Which blade should you use in the Azure portal?

A. Networking

B. Keys and Endpoint

C. Identity

D. Properties

B.   Keys and Endpoint

Explanation
To connect an application to an Azure AI Language service using the REST API, you need two pieces of information: the service endpoint URL and an API key for authentication. Both of these are conveniently displayed together on a dedicated page in the Azure portal for the resource . This page is standard for Azure AI Services and is explicitly designed to provide developers with the credentials needed for programmatic access .

Correct Option

B. Keys and Endpoint
This is the correct blade to use. The "Keys and Endpoint" page for a Language service resource shows the REST API endpoint URL and the subscription keys . You use the endpoint to construct the request URI and the key as the Ocp-Apim-Subscription-Key header for authentication .

Incorrect Options

A. Networking
This blade is used for controlling network access, configuring firewalls, and setting up virtual networks for the service. It does not display the REST endpoint URL or the API keys.

C. Identity
The Identity blade is for managing the resource's identity in Microsoft Entra ID (Azure AD) and configuring managed identities. It is not where you find the service's endpoint or subscription keys.

D. Properties
The Properties blade displays general metadata about the resource, such as its resource ID, location, and subscription details. While it may show the resource name, it does not provide the full REST endpoint URL or the authentication keys .

Reference

Microsoft documentation states: "On the screen for your resource, select Keys and endpoint on the left navigation menu. You will use one of your keys and your endpoint in the steps below."

Training documentation confirms: "Once that resource has been created, you'll need a key and the endpoint. You can find that on the left side under Keys and Endpoint of the resource overview page."

The endpoint is used in REST API calls as: {ENDPOINT}/language/:analyze-text?

You have a Microsoft Foundry agent that grounds responses from an Azure AI Search index containing:

Searchable text fields for product names and product codes.

A vector field containing embeddings for product descriptions.

You need users to query by exact product names or codes and by natural-language product descriptions.

A. Semantic search only

B. Hybrid search

C. Keyword search only

D. Vector search only

B.   Hybrid search

Explanation
The user requirements involve two distinct search scenarios: one requiring keyword precision (exact product names/codes) and another requiring semantic understanding (natural-language descriptions). A single search method cannot optimally handle both. Hybrid search solves this by executing both a full-text (keyword) query and a vector similarity query in parallel, then merging the results using Reciprocal Rank Fusion (RRF) to produce a single, highly relevant result set.

Correct Option

B. Hybrid search
Hybrid search delivers the "best of both worlds" by running full-text and vector queries simultaneously. Keyword search offers high precision for exact matches on codes and names, while vector search provides high recall by finding semantically similar descriptions even when terms differ. This directly meets the mixed query requirement and is a standard recommendation for RAG scenarios requiring both accuracy and conceptual understanding.

Incorrect Options

A. Semantic search only
Semantic search refers to the optional L2 reranking step that operates on the initial BM25 or RRF results. It does not handle vector-based similarity on its own and cannot address the need for exact keyword matches effectively, making it insufficient as a standalone solution.

C. Keyword search only
While keyword search excels at exact matches for codes and names, it fails to find relevant documents where the user uses different words to describe the same product concept. This would not meet the natural-language description requirement.

D. Vector search only
Vector search is excellent for understanding semantic meaning and descriptions, but it cannot reliably handle exact term matching for product codes or specialized jargon where precise lexical matches are required.

Reference
Microsoft Learn documentation highlights that hybrid search merges the strengths of both approaches: "The advantage of vector search is finding information that's conceptually similar... The advantage of keyword or full-text search is precision, with the ability to apply optional semantic ranking... Some scenarios, such as querying over product codes... perform better with keyword search".

You plan to deploy a containerized version of an Azure Al Language service that will be used for sentiment analysis.

You configure https: //contoso.cognitiveservices.azure, cow as the endpoint URI for the service.

You need to run the container on an Azure virtual machine by using Docker.

How should you complete the command? To answer, select the appropriate options in the answer area.

NOTE: Each correct selection is worth one point.




Explanation:
To run the containerized Azure AI Language service for sentiment analysis, you need to use the correct container image, specify the container's memory and CPU limits, provide the Azure endpoint URI and API key for billing, and accept the EULA. The container image for sentiment analysis must be pulled from the Microsoft Container Registry and the Eula, Billing, and ApiKey environment variables must be set correctly.

Correct Options:

First blank: mcr.microsoft.com/azure-cognitive-services/textanalytics/sentiment
This is the correct container image name for the sentiment analysis capability of Azure AI Language (formerly Text Analytics). The official container image path follows this format, and the sentiment image specifically provides the sentiment analysis feature.

Second blank: Billing=https://contoso.cognitiveservices.azure.com/
The Billing environment variable must be set to the endpoint URI of the Azure resource. The endpoint URI format is https://.cognitiveservices.azure.com/. This is required for the container to meter usage and connect to the Azure service.

Third blank: ApiKey=
The ApiKey environment variable must be set to the API key of the Azure resource. This is used for authentication and billing purposes. The variable needs to be passed in the command with the actual key value.

Incorrect Options (for context):

http://contoso.blob.core.windows.net – This is an Azure Blob Storage endpoint, not relevant to running the container.

https://contoso.cognitiveservices.azure.com – This is correct as the Billing endpoint, but note that the trailing slash may be required depending on the container version.

mcr.microsoft.com/azure-cognitive-services/textanalytics/keyphrase – This is the container image for the Key Phrase Extraction capability, not Sentiment Analysis. Using this would deploy the wrong service.

Reference:
Microsoft Learn documentation confirms that to run a containerized Azure AI Language service, you must set the Eula, Billing, and ApiKey environment variables. The Billing variable must be the resource endpoint, and the ApiKey is the service key. The container image format is mcr.microsoft.com/azure-cognitive-services/textanalytics/. For sentiment analysis, the image is mcr.microsoft.com/azure-cognitive-services/textanalytics/sentiment.

You have a Python application that uses Azure OpenAt structured outputs to extract fields from unstructured receipt text and support ticket text. The application uses the following schema.






Statement 1: The schema requires that a receipt has a discount_code value.
Answer: No

Explanation:
The JSON schema shown only includes the "name" and "strict" properties. It does not define any required fields or properties for the receipt data (such as discount_code, merchant, etc.). In JSON Schema, unless a property is explicitly listed in a "required" array, it is not considered mandatory. Therefore, the schema as shown does not require a discount_code value.

Statement 2: The schema can be used as is for Azure OpenAI structured outputs.
Answer: No

Explanation:
The schema is missing critical components required by Azure OpenAI's structured outputs feature. A valid json_schema must include a "schema" property that defines the JSON schema object itself (which should include type, properties, required, etc.). Without this, the API would reject the request as incomplete. The "name" and "strict" are valid top-level properties, but the absence of the "schema" object makes it invalid.

Statement 3: The generated JSON object will preserve the schema property order of merchant, order_number, discount_code, line_items, and total.
Answer: No

Explanation:
JSON objects are inherently unordered data structures. The JSON specification explicitly states that object key ordering is not guaranteed to be preserved during serialization and deserialization. Additionally, the provided schema does not define these properties at all—it is incomplete. Even if they were defined, Azure OpenAI's structured outputs do not guarantee property order in the generated response.

Reference:
Azure OpenAI documentation for structured outputs requires that the json_schema object must include a "schema" field containing the actual JSON Schema definition with properties, required, and additionalProperties. The "strict" parameter is optional and applies only when the schema is fully defined. JSON standard defines objects as unordered collections.

Page 1 out of 10 Pages
123

Developing AI Apps and Agents on Azure Practice Exam Questions