Course Setup
Introduction
This lesson will cover how to run the code samples of this course.
Join Other Learners and Get Help
Before you begin cloning your repo, join the AI Agents For Beginners Discord channel to get any help with setup, any questions about the course, or to connect with other learners.
Clone or Fork this Repo
To begin, please clone or fork the GitHub Repository. This will make your own version of the course material so that you can run, test, and tweak the code!
This can be done by clicking the link to fork the repo
You should now have your own forked version of this course in the following link:
Shallow Clone (recommended for workshop / Codespaces)
The full repository can be large (~3 GB) when you download full history and all files. If you're only attending the workshop or only need a few lesson folders, a shallow clone (or a sparse clone) avoids most of that download by truncating history and/or skipping blobs.
Quick shallow clone — minimal history, all files
Replace <your-username> in the below commands with your fork URL (or the upstream URL if you prefer).
To clone only the latest commit history (small download):
git clone --depth 1 https://github.com/<your-username>/ai-agents-for-beginners.git
To clone a specific branch:
git clone --depth 1 --branch <branch-name> https://github.com/<your-username>/ai-agents-for-beginners.git
Partial (sparse) clone — minimal blobs + only selected folders
This uses partial clone and sparse-checkout (requires Git 2.25+ and recommended modern Git with partial clone support):
git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-username>/ai-agents-for-beginners.git
Traverse into the repo folder:
cd ai-agents-for-beginners
Then specify which folders you want (example below shows two folders):
git sparse-checkout set 00-course-setup 01-intro-to-ai-agents
After cloning and verifying the files, if you only need files and want to free space (no git history), please delete the repository metadata (💀irreversible — you will lose all Git functionality: no commits, pulls, pushes, or history access).
# zsh/bash
rm -rf .git
# PowerShell
Remove-Item -Recurse -Force .git
Using GitHub Codespaces (recommended to avoid local large downloads)
-
Create a new Codespace for this repo via the GitHub UI.
-
In the terminal of the newly created codespace, run one of the shallow/sparse clone commands above to bring only the lesson folders you need into the Codespace workspace.
-
Optional: after cloning inside Codespaces, remove .git to reclaim extra space (see removal commands above).
-
Note: If you prefer to open the repo directly in Codespaces (without an extra clone), be aware Codespaces will construct the devcontainer environment and may still provision more than you need. Cloning a shallow copy inside a fresh Codespace gives you more control over disk usage.
Tips
- Always replace the clone URL with your fork if you want to edit/commit.
- If you later need more history or files, you can fetch them or adjust sparse-checkout to include additional folders.
Running the Code
This course offers a series of Jupyter Notebooks that you can run with to get hands-on experience building AI Agents.
The code samples use Microsoft Agent Framework (MAF) with the FoundryChatClient, which connects to Microsoft Foundry Agent Service V2 (the Responses API) through Microsoft Foundry.
All Python notebooks are labelled *-python-agent-framework.ipynb.
Requirements
-
Python 3.12+
-
NOTE: If you don't have Python3.12 installed, ensure you install it. Then create your venv using python3.12 to ensure the correct versions are installed from the requirements.txt file.
Example
Create Python venv directory:
python -m venv venvThen activate venv environment for:
# zsh/bash source venv/bin/activate# Command Prompt for Windows venv\Scripts\activate
-
-
.NET 10+: For the sample codes using .NET, ensure you install .NET 10 SDK or later. Then, check your installed .NET SDK version:
dotnet --list-sdks -
Azure CLI — Required for authentication. Install from aka.ms/installazurecli.
-
Azure Subscription — For access to Microsoft Foundry and Microsoft Foundry Agent Service.
-
Microsoft Foundry Project — A project with a deployed model (e.g.,
gpt-4o). See Step 1 below.
We have included a requirements.txt file in the root of this repository that contains all the required Python packages to run the code samples.
You can install them by running the following command in your terminal at the root of the repository:
pip install -r requirements.txt
We recommend creating a Python virtual environment to avoid any conflicts and issues.
Setup VSCode
Make sure that you are using the right version of Python in VSCode.
Set Up Microsoft Foundry and Microsoft Foundry Agent Service
Step 1: Create a Microsoft Foundry Project
You need an Microsoft Foundry hub and project with a deployed model to run the notebooks.
- Go to ai.azure.com and sign in with your Azure account.
- Create a hub (or use an existing one). See: Hub resources overview.
- Inside the hub, create a project.
- Deploy a model (e.g.,
gpt-4o) from Models + Endpoints → Deploy model.
Step 2: Retrieve Your Project Endpoint and Model Deployment Name
From your project in the Microsoft Foundry portal:
- Project Endpoint — Go to the Overview page and copy the endpoint URL.
- Model Deployment Name — Go to Models + Endpoints, select your deployed model, and note the Deployment name (e.g.,
gpt-4o).
Step 3: Sign in to Azure with az login
All notebooks use AzureCliCredential for authentication — no API keys to manage. This requires you to be signed in via the Azure CLI.
-
Install the Azure CLI if you haven't already: aka.ms/installazurecli
-
Sign in by running:
az loginOr if you're in a remote/Codespace environment without a browser:
az login --use-device-code -
Select your subscription if prompted — choose the one containing your Foundry project.
-
Verify you're signed in:
az account show
Why
az login? The notebooks authenticate usingAzureCliCredentialfrom theazure-identitypackage. This means your Azure CLI session provides the credentials — no API keys or secrets in your.envfile. This is a security best practice.
Step 4: Create Your .env File
Copy the example file:
# zsh/bash
cp .env.example .env
# PowerShell
Copy-Item .env.example .env
Open .env and fill in these two values:
AZURE_AI_PROJECT_ENDPOINT=https://<your-project>.services.ai.azure.com/api/projects/<your-project-id>
AZURE_AI_MODEL_DEPLOYMENT_NAME=gpt-4o
| Variable | Where to find it |
|---|---|
AZURE_AI_PROJECT_ENDPOINT |
Foundry portal → your project → Overview page |
AZURE_AI_MODEL_DEPLOYMENT_NAME |
Foundry portal → Models + Endpoints → your deployed model's name |
That's it for most lessons! The notebooks will authenticate automatically through your az login session.
Step 5: Install Python Dependencies
pip install -r requirements.txt
We recommend running this inside the virtual environment you created earlier.
Additional Setup for Lesson 5 (Agentic RAG)
Lesson 5 uses Azure AI Search for retrieval-augmented generation. If you plan to run that lesson, add these variables to your .env file:
| Variable | Where to find it |
|---|---|
AZURE_SEARCH_SERVICE_ENDPOINT |
Azure portal → your Azure AI Search resource → Overview → URL |
AZURE_SEARCH_API_KEY |
Azure portal → your Azure AI Search resource → Settings → Keys → primary admin key |
Additional Setup for Lessons that Call Azure OpenAI Directly (Lessons 6 and 8)
Some notebooks in lessons 6 and 8 call Azure OpenAI directly (using the Responses API) instead of going through a Microsoft Foundry project. These samples previously used GitHub Models, which is deprecated (retiring July 2026) and does not support the Responses API. If you plan to run those samples, add these variables to your .env file:
| Variable | Where to find it |
|---|---|
AZURE_OPENAI_ENDPOINT |
Azure portal → your Azure OpenAI resource → Keys and Endpoint → Endpoint (e.g. https://<your-resource>.openai.azure.com) |
AZURE_OPENAI_DEPLOYMENT |
The name of your deployed model (e.g. gpt-4o-mini) that supports the Responses API |
AZURE_OPENAI_API_KEY |
Optional — only if you use key-based auth instead of az login / Entra ID |
The Responses API uses the stable
/openai/v1/endpoint, so noapi-versionis required. Sign in withaz loginto use keyless Entra ID authentication.
Alternative Provider: MiniMax (OpenAI-Compatible)
MiniMax provides large-context models (up to 204K tokens) through an OpenAI-compatible API. Since the Microsoft Agent Framework's OpenAIChatClient works with any OpenAI-compatible endpoint, you can use MiniMax as a drop-in alternative to Azure OpenAI or OpenAI.
Add these variables to your .env file:
| Variable | Where to find it |
|---|---|
MINIMAX_API_KEY |
MiniMax Platform → API Keys |
MINIMAX_BASE_URL |
Use https://api.minimax.io/v1 (default value) |
MINIMAX_MODEL_ID |
Model name to use (e.g., MiniMax-M3) |
Example models: MiniMax-M3 (recommended), MiniMax-M2.7, MiniMax-M2.7-highspeed (faster responses). Model names and availability can change over time, and access to a given model may depend on your account or region — check the MiniMax Platform for the current list. If MiniMax-M3 isn't available to your account, set MINIMAX_MODEL_ID to a model you have access to (e.g. MiniMax-M2.7).
The code samples that use OpenAIChatClient (e.g., Lesson 14 hotel booking workflow) will automatically detect and use your MiniMax configuration when MINIMAX_API_KEY is set.
Alternative Provider: Foundry Local (Run Models On-Device)
Foundry Local is a lightweight runtime that downloads, manages, and serves language models entirely on your own machine through an OpenAI-compatible API — no cloud, no Azure subscription, and no API keys. It's a great option for offline development, experimenting without incurring cloud costs, or keeping data on-device.
Because the Microsoft Agent Framework's OpenAIChatClient works with any OpenAI-compatible endpoint, Foundry Local is a drop-in local alternative to Azure OpenAI.
1. Install Foundry Local
# Windows
winget install Microsoft.FoundryLocal
# macOS
brew install foundrylocal
2. Download and run a model (this also starts the local service):
foundry model list # see available models
foundry model run phi-4-mini
3. Install the Python SDK used to discover the local endpoint:
pip install foundry-local-sdk
4. Point the Microsoft Agent Framework at your local model:
from foundry_local import FoundryLocalManager
from agent_framework.openai import OpenAIChatClient
# Downloads (if needed) and serves the model locally, then discovers the endpoint/port.
manager = FoundryLocalManager("phi-4-mini")
chat_client = OpenAIChatClient(
base_url=manager.endpoint, # e.g. http://localhost:<port>/v1
api_key=manager.api_key, # always "not-required" for Foundry Local
model_id=manager.get_model_info("phi-4-mini").id,
)
agent = chat_client.as_agent(
name="LocalAgent",
instructions="You are a helpful assistant running fully on-device.",
)
Note: Foundry Local exposes an OpenAI-compatible Chat Completions endpoint. Use it for local development and offline scenarios. For the full Responses API feature set (stateful conversations, deep tool orchestration, and agent-style development), target Azure OpenAI or a Microsoft Foundry project as shown in the lessons. See the Foundry Local documentation for the current model catalog and platform support.
Additional Setup for Lesson 8 (Bing Grounding Workflow)
The conditional workflow notebook in lesson 8 uses Bing grounding via Microsoft Foundry. If you plan to run that sample, add this variable to your .env file:
| Variable | Where to find it |
|---|---|
BING_CONNECTION_ID |
Microsoft Foundry portal → your project → Management → Connected resources → your Bing connection → copy the connection ID |
Troubleshooting
SSL Certificate Verification Errors on macOS
If you are on macOS and encounter an error like:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
This is a known issue with Python on macOS where the system SSL certificates are not automatically trusted. Try the following solutions in order:
Option 1: Run Python's Install Certificates script (recommended)
# Replace 3.XX with your installed Python version (e.g., 3.12 or 3.13):
/Applications/Python\ 3.XX/Install\ Certificates.command
Option 2: Use connection_verify=False in your notebook (for GitHub Models notebooks only)
In the Lesson 6 notebook (06-building-trustworthy-agents/code_samples/06-system-message-framework.ipynb), a commented-out workaround is already included. Uncomment connection_verify=False when creating the client:
client = ChatCompletionsClient(
endpoint=endpoint,
credential=AzureKeyCredential(token),
connection_verify=False, # Disable SSL verification if you encounter certificate errors
)
⚠️ Warning: Disabling SSL verification (
connection_verify=False) reduces security by skipping certificate validation. Use this only as a temporary workaround in development environments, never in production.
Option 3: Install and use truststore
pip install truststore
Then add the following at the top of your notebook or script before making any network calls:
import truststore
truststore.inject_into_ssl()
Stuck Somewhere?
If you have any issues running this setup, hop into our Azure AI Community Discord or create an issue.
Next Lesson
You are now ready to run the code for this course. Happy learning more about the world of AI Agents!

