Files

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:

Forked Repo

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
  • 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 venv
      

      Then 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.

image

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.

  1. Go to ai.azure.com and sign in with your Azure account.
  2. Create a hub (or use an existing one). See: Hub resources overview.
  3. Inside the hub, create a project.
  4. Deploy a model (e.g., gpt-4o) from Models + EndpointsDeploy 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.

Project Connection String

  • 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.

  1. Install the Azure CLI if you haven't already: aka.ms/installazurecli

  2. Sign in by running:

    az login
    

    Or if you're in a remote/Codespace environment without a browser:

    az login --use-device-code
    
  3. Select your subscription if prompted — choose the one containing your Foundry project.

  4. Verify you're signed in:

    az account show
    

Why az login? The notebooks authenticate using AzureCliCredential from the azure-identity package. This means your Azure CLI session provides the credentials — no API keys or secrets in your .env file. 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 → SettingsKeys → 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 no api-version is required. Sign in with az login to 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 → ManagementConnected 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!

Introduction to AI Agents and Agent Use Cases