Azure AI Apps and Agents Developer Associate
Domain 2 of 5 — 30–35% of exam (LARGEST DOMAIN) | Microsoft Foundry Platform
Highest-Weighted Domain Alert: This is the highest-weighted domain on AI-103 — mastering RAG, agents, function calling, and evaluation is essential to pass. Domain 2 can account for up to 21 questions on a 60-question exam.
AI-103 is structured across five domains. Domain 2 is the single largest, covering generative AI patterns and agent architectures that are central to modern Azure AI development.
| Domain | Topic | Exam Weight |
|---|---|---|
| Domain 1 | Plan and Manage AI Solutions | 25–30% |
| Domain 2 | Generative AI & Agentic Solutions THIS PAGE | 30–35% ← LARGEST |
| Domain 3 | Implement Computer Vision Solutions | 10–15% |
| Domain 4 | Implement Text Analysis Solutions | 10–15% |
| Domain 5 | Implement Information Extraction | 10–15% |
Deploying GPT-4o, GPT-4 Turbo, o1, o3, DALL-E 3, Whisper, and embedding models. Using the Chat Completions API, structured outputs, function calling, and token management.
Building RAG pipelines with Azure AI Search as a vector store. Chunking strategies, embedding models, hybrid search with BM25 + semantic ranker, and grounding responses.
Designing system prompts, few-shot examples, chain-of-thought, and prompt templates. Using Azure AI Foundry Prompt Flow to build, evaluate, and deploy prompt pipelines as managed endpoints.
Building agents with LLM + instructions + tools + memory. Implementing the ReAct loop, function calling tools, built-in tools (Bing, Code Interpreter, File Search), and human-in-the-loop approvals.
Orchestrator-specialist agent patterns, sequential/parallel/hierarchical communication, Azure AI Agent Service, Semantic Kernel, and Autogen frameworks.
Running evaluation flows with groundedness, relevance, coherence, fluency, and similarity metrics. Safety evaluation, latency metrics (TTFT, TPS), and Azure AI Foundry evaluation runs.
The AI-103 exam is delivered via Pearson VUE and tests your ability to develop, deploy, and maintain AI applications and agents on Azure using the Microsoft AI Foundry platform. Questions are scenario-based, requiring you to select the best architectural and implementation approach for given business requirements.
Beta Exam Note: As a beta exam (April 2026), scoring may take additional time to process. Beta takers receive a discounted voucher and help calibrate question difficulty for the live exam.
Access full practice exams, adaptive flashcards, and expert study guides for AI-103 and 100+ other certifications.
Start Free Practice →Models are deployed to Azure OpenAI resources within a region. Each deployment has its own endpoint and API key. The o1/o3/o4 series are reasoning models that "think" before responding — they use higher token quotas and excel at complex multi-step tasks.
system, user, assistant messages — the conversation contextresponse_format: {"type": "json_object"} — model outputs valid JSON (you define structure in system prompt)response_format: {"type": "json_schema", "json_schema": {...}} — model is constrained to a specific schematools array with function name, description, and JSON Schema parameterstool_calls in the responsetool role message with the resulttool_choice: "auto" (model decides), "required" (must call a tool), "none" (no tools), or specify exact function.
Combines two complementary search methods for best results:
data_sources parameter in the Azure OpenAI API enables built-in RAG without custom codeThe system prompt sets the model's role, constraints, and behavior for the entire conversation. Best practices:
Prompt injection occurs when malicious content in user input or retrieved documents hijacks the model's instructions.
An AI agent = LLM + Instructions (system prompt) + Tools + Memory
The loop continues until the agent determines it has a complete answer or exhausts max iterations.
tool_calls, your app executes, you return resultsEach evaluation record contains: the user question, the retrieved context chunks (what was passed to the model), the ground truth answer (what a human expert says), and the model's generated answer. Evaluation metrics compare these four elements.
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint="https://<resource>.openai.azure.com/",
api_key="<your-api-key>",
api_version="2024-12-01-preview"
)
response = client.chat.completions.create(
model="gpt-4o", # deployment name
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain RAG in one sentence."}
],
temperature=0.7,
max_tokens=500
)
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = AzureOpenAI(
azure_endpoint="https://<resource>.openai.azure.com/",
azure_ad_token_provider=token_provider,
api_version="2024-12-01-preview"
)
Use Managed Identity instead of API keys in production. Assign the "Cognitive Services OpenAI User" role to the managed identity.
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"},
"units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["city"]
}
}
}]
response = client.chat.completions.create(
model="gpt-4o", messages=messages, tools=tools, tool_choice="auto"
)
# Check if model wants to call a tool
if response.choices[0].finish_reason == "tool_calls":
tool_call = response.choices[0].message.tool_calls[0]
# Execute the function...
# Append tool result and call again
Memory hooks are mental shortcuts that make abstract concepts stick. Each hook below connects a complex AI-103 concept to something intuitive and memorable.
GetCurrentWeather, GetForecast, GetAlerts. The Kernel is the workshop — it knows which toolboxes are available and lets the AI pick the right tool for the job.
10 scenario-based questions. Select the best answer for each.
Click any card to flip it and reveal the answer. Work through all 20 cards until you can answer each from memory.
20 flashcards — click to flip
Select your current background to get a customized study plan for Domain 2:
Python Developer Path — Estimated prep time: 3–4 weeks
openai SDKtool_calls, return resultstext-embedding-3-smallPriority Focus: RAG patterns + Agent architecture account for the highest exam weight. Don't skip the hands-on labs — scenario questions require practical understanding.
OpenAI API User Path — Estimated prep time: 2–3 weeks
AzureOpenAI not OpenAI. Requires azure_endpoint and api_version parameters.DefaultAzureCredential.Azure Expert Path — Estimated prep time: 2–3 weeks
Advanced Path — Estimated prep time: 1–2 weeks of targeted prep
add_your_data parameter specifically — it's an Azure-only feature| Topic | Exam Priority | Common Question Types |
|---|---|---|
| RAG Architecture & Chunking | 🔴 Critical | Choose best chunking strategy, explain retrieval steps |
| AI Agents & ReAct Loop | 🔴 Critical | Design agent for scenario, choose correct tool type |
| Evaluation Metrics (GRFC) | 🟠 High | Match metric to scenario, interpret low scores |
| Function Calling | 🟠 High | Tool calling sequence, when to use vs RAG |
| Prompt Engineering | 🟠 High | Improve prompt quality, mitigate injection |
| Multi-Agent Orchestration | 🟡 Medium | Choose communication pattern, debug routing |
| Semantic Kernel / LangChain | 🟡 Medium | Plugin definition, planner use cases |
| Prompt Flow Node Types | 🟡 Medium | Which node type for which task |
| Structured Outputs | 🟢 Lower | JSON mode vs JSON Schema, when to use |
All resources below are official Microsoft Learn documentation or trusted study platforms. Bookmark the official study guide — it defines exactly what the exam tests.
FlashGenius offers full-length AI-103 practice exams with detailed explanations for all 5 domains — not just Domain 2.
Start Free on FlashGenius →