Denne leksjonen vil dekke hvordan du kjører kodeeksemplene i dette kurset.
Før du begynner å klone ditt repo, bli med i AI Agents For Beginners Discord-kanal for å få hjelp med oppsett, spørsmål om kurset, eller for å komme i kontakt med andre elever.
For å begynne, vennligst klon eller forgrenen GitHub-repositoriet. Dette vil lage din egen versjon av kursmaterialet slik at du kan kjøre, teste og justere koden!
Dette kan gjøres ved å klikke på linken for å forgrene repoet
Du bør nå ha din egen forgrenede versjon av dette kurset på følgende link:

Hele repositoriet kan være stort (~3 GB) når du laster ned full historikk og alle filer. Hvis du bare deltar på workshopen eller bare trenger noen få leksjonsmapper, laster en grunnleggende kloning (eller en sparsommelig kloning) ned mye mindre.
Erstatt <your-username> i kommandoene nedenfor med din forgrenede URL (eller opprinnelig URL hvis du foretrekker).
For å klone bare siste forpliktelsehistorikk (liten nedlasting):
git clone --depth 1 https://github.com/<your-username>/ai-agents-for-beginners.git
For å klone en spesifikk gren:
git clone --depth 1 --branch <branch-name> https://github.com/<your-username>/ai-agents-for-beginners.git
Dette bruker delvis kloning og sparsommelig utsjekking (krever Git 2.25+ og anbefalt moderne Git med delvis kloning støtte):
git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-username>/ai-agents-for-beginners.git
Gå inn i repo-mappen:
cd ai-agents-for-beginners
Så spesifiser hvilke mapper du vil ha (eksempelet under viser to mapper):
git sparse-checkout set 00-course-setup 01-intro-to-ai-agents
Etter kloning og verifisering av filene, hvis du bare trenger filene og vil frigjøre plass (ingen git-historikk), slett repository metadata (💀irreversibelt — du mister all Git-funksjonalitet):
# zsh/bash
rm -rf .git
# PowerShell
Remove-Item -Recurse -Force .git
Opprett en ny Codespace for dette repo via GitHub UI.
Dette kurset tilbyr en serie med Jupyter Notebooks som du kan kjøre for å få praktisk erfaring med bygging av AI-agenter.
Kodeeksemplene bruker Microsoft Agent Framework (MAF) med FoundryChatClient, som kobler til Microsoft Foundry Agent Service V2 (Responses API) gjennom Microsoft Foundry.
Alle Python-notebooks er merket *-python-agent-framework.ipynb.
MERK: Hvis du ikke har Python3.12 installert, sørg for å installere det. Lag deretter ditt virtuelle miljø med python3.12 for å sikre at riktige versjoner installeres fra requirements.txt-filen.
Eksempel
Lag Python venv-katalog:
python -m venv venv
Aktiver deretter venv-miljø for:
# zsh/bash
source venv/bin/activate
# Command Prompt for Windows
venv\Scripts\activate
.NET 10+: For eksempel koder som bruker .NET, sørg for å installere .NET 10 SDK eller nyere. Sjekk deretter din installerte .NET SDK-versjon:
dotnet --list-sdks
gpt-5-mini). Se Steg 1 nedenfor.Vi har inkludert en requirements.txt-fil i roten av dette repository som inneholder alle nødvendige Python-pakker for å kjøre kodeeksemplene.
Du kan installere dem ved å kjøre følgende kommando i terminalen i roten av repository:
pip install -r requirements.txt
Vi anbefaler å opprette et Python virtuelt miljø for å unngå konflikter og problemer.
Sørg for at du bruker riktig versjon av Python i VSCode.
Du trenger et Microsoft Foundry hub og prosjekt med en distribuert modell for å kjøre notebookene.
gpt-5-mini) fra Models + Endpoints → Deploy model.Fra ditt prosjekt i Microsoft Foundry-portalen:

gpt-5-mini).az loginDe fleste notebookene autentiserer via din Azure CLI sign-in — ved å bruke AzureCliCredential eller DefaultAzureCredential (begge bruker din az login-økt) fra azure-identity-pakken — så de trenger ikke API-nøkler. Noen få leksjoner og valgfrie integrasjoner bruker API-nøkler; sjekk hver leksjons forutsetninger for eventuelle ekstra miljøvariabler. Dette krever at du er logget inn via Azure CLI.
Installer Azure CLI hvis du ikke allerede har gjort det: aka.ms/installazurecli
Logg inn ved å kjøre:
az login
Eller hvis du er i et fjern-/Codespace-miljø uten nettleser:
az login --use-device-code
Velg abonnementet ditt hvis du blir bedt om det — velg det som inneholder Foundry-prosjektet ditt.
Bekreft at du er logget inn:
az account show
Hvorfor
az login? Notebookene autentiserer ved hjelp avAzureCliCredential(ellerDefaultAzureCredential, som også bruker din Azure CLI login) fraazure-identity-pakken. Det betyr at din Azure CLI-økt gir legitimajsonen — ingen API-nøkler eller hemmeligheter i.env-filen. Dette er en sikkerhetsbeste praksis.
.env-filKopier eksempel-filen:
# zsh/bash
cp .env.example .env
# PowerShell
Copy-Item .env.example .env
Åpne .env og fyll inn disse to verdiene:
AZURE_AI_PROJECT_ENDPOINT=https://<your-project>.services.ai.azure.com/api/projects/<your-project-id>
AZURE_AI_MODEL_DEPLOYMENT_NAME=gpt-5-mini
| Variabel | Hvor du finner den |
|---|---|
AZURE_AI_PROJECT_ENDPOINT |
Foundry-portalen → ditt prosjekt → Overview-side |
AZURE_AI_MODEL_DEPLOYMENT_NAME |
Foundry-portalen → Models + Endpoints → navnet på din distribuerte modell |
Det er alt for de fleste leksjoner! Notebookene vil autentisere automatisk gjennom din az login-økt.
pip install -r requirements.txt
Vi anbefaler å kjøre dette inne i det virtuelle miljøet du opprettet tidligere.
Leksjon 5 (Agentic RAG) og Leksjon 16 notebookene kjører ut av boksen med en intern kunnskapsbase — ingen ekstra Azure-ressurser nødvendig. Hvis du vil støtte dem med en virkelig Azure AI Search indeks, merk at Leksjon 16 notebook for øyeblikket bruker nøkkelbasert autentisering: den bytter fra intern søk til Azure AI Search bare når både AZURE_SEARCH_SERVICE_ENDPOINT og AZURE_SEARCH_API_KEY er satt, og ellers forblir på intern søk — så for å kjøre mot en ekte indeks må du også sette admin-nøkkelen. Nøkkelfri autentisering med Microsoft Entra ID (RBAC) er anbefalt tilnærming for din egne produksjonskode, i samsvar med az login-flyten som brukes overalt ellers i kurset.
RBAC-steget nedenfor gjelder for oppsett-guide-eksemplene og din egen kode. De aktiverer ikke nøkkelfri autentisering i Leksjon 16 notebook; Leksjon 16 krever fortsatt både endepunkt og admin-nøkkel for å bruke Azure AI Search.
Aktiver rollebasert tilgang på din søketjeneste:
az search service update --name <service-name> --resource-group <resource-group> --auth-options aadOrApiKey
Tildel nødvendige roller til deg selv (opprett/laste indekser og spørring):
az role assignment create --assignee <your-user-or-principal-id> --role "Search Service Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
az role assignment create --assignee <your-user-or-principal-id> --role "Search Index Data Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
Legg til endepunktet i din .env-fil:
| Variabel | Hvor du finner den |
|---|---|
AZURE_SEARCH_SERVICE_ENDPOINT |
Azure-portalen → din Azure AI Search ressurs → Overview → URL |
AZURE_SEARCH_API_KEY |
Krevd (med endepunkt) for å aktivere Azure AI Search i Leksjon 16 notebook, som bruker nøkkelbasert autentisering. Azure portal → Settings → Keys → primær admin-nøkkel |
Hvorfor uten nøkler? Admin-nøkler gir full skrive-tilgang til søketjenesten din og kan lekke via
.env-filer. Med RBAC brukes dinaz loginidentitet i stedet — samme nøkkelfrie Entra ID-mønster som kursnotebookene bruker (viaAzureCliCredential/DefaultAzureCredential). Se Koble til Azure AI Search med roller.
Se Azure AI Search oppsettsguide for fullstendige indeks-opprettelseseksempler i Python og .NET.
Noen notebooker i leksjon 6 og 8 kaller Azure OpenAI direkte (ved bruk av Responses API) i stedet for gjennom et Microsoft Foundry-prosjekt. Disse eksemplene brukte tidligere GitHub Models, som er utdatert og støtter ikke Responses API. Legg til disse variablene i din .env-fil:
| Variabel | Hvor du finner den |
|---|---|
AZURE_OPENAI_ENDPOINT |
Azure-portalen → din Azure OpenAI ressurs → Keys and Endpoint → Endepunkt (f.eks. https://<your-resource>.openai.azure.com) |
AZURE_OPENAI_DEPLOYMENT |
Navnet på din distribuerte modell (f.eks. gpt-5-mini) som støtter Responses API |
AZURE_OPENAI_API_KEY |
Valgfritt — bare hvis du bruker nøkkelbasert autentisering i stedet for az login / Entra ID |
Responses API bruker det stabile
/openai/v1/endepunktet, så ingenapi-versionkreves. Logg inn medaz loginfor å bruke nøkkelfri Entra ID-autentisering.
MiniMax tilbyr store-kontekstmodeller (opptil 204K tokens) gjennom en OpenAI-kompatibel API. Siden Microsoft Agent Frameworks OpenAIChatClient fungerer med alle OpenAI-kompatible endepunkter, kan du bruke MiniMax som et direkte alternativ for leksjoner som bruker OpenAIChatClient.
Legg til disse variablene i din .env-fil:
| Variabel | Hvor du finner den |
|---|---|
MINIMAX_API_KEY |
MiniMax Platform → API-nøkler |
MINIMAX_BASE_URL |
Bruk https://api.minimax.io/v1 (standardverdi) |
MINIMAX_MODEL_ID |
Modellnavn å bruke (f.eks., MiniMax-M3) |
Eksempelmodeller: MiniMax-M3 (anbefalt), MiniMax-M2.7, MiniMax-M2.7-highspeed (raskere svar). Modellnavn og tilgjengelighet kan endre seg over tid, og tilgang til en gitt modell kan avhenge av din konto.
Kodeeksemplene som bruker OpenAIChatClient (f.eks. Leksjon 14 hotellbookingflyt) vil automatisk oppdage og bruke din MiniMax-konfigurasjon når MINIMAX_API_KEY er satt.
Novita AI tilbyr en OpenAI-kompatibel API for open source og nyeste LLM-er (DeepSeek, Llama, Qwen, og flere). Siden Microsoft Agent Frameworks OpenAIChatClient fungerer med alle OpenAI-kompatible endepunkter, kan du bruke Novita AI som et direkte alternativ til Azure OpenAI eller OpenAI.
Legg til disse variablene i din .env-fil:
| Variabel | Hvor du finner den |
|---|---|
NOVITA_API_KEY |
Novita AI Dashboard → API Keys |
NOVITA_BASE_URL |
Bruk https://api.novita.ai/openai/v1 (standardverdi) |
NOVITA_MODEL_ID |
Modellnavn som skal brukes (f.eks. moonshotai/kimi-k3) |
Eksempemodeller: moonshotai/kimi-k3, zai-org/glm-5.2, deepseek/deepseek-v4-flash-0731. Novita AI hoster også mange andre open source modellfamilier (Llama, Qwen, GLM, og flere) — sjekk Novita AI modellbibliotek for gjeldende liste over tilgjengelige modeller og deres modell-ID-er.
De nåværende eksemplene bruker ikke automatisk NOVITA_*-variablene. For å bruke Novita AI, må du eksplisitt sende disse verdiene når du konstruerer OpenAIChatClient i eksempelet du kjører.
Foundry Local er en lettvekts runtime som laster ned, administrerer og betjener språkmodeller fullstendig på din egen maskin gjennom en OpenAI-kompatibel API — ingen sky kreves.
Siden Microsoft Agent Frameworks OpenAIChatClient fungerer med alle OpenAI-kompatible endepunkter, er Foundry Local et lokalt alternativ til Azure OpenAI.
1. Installer Foundry Local
# Windows
winget install Microsoft.FoundryLocal
# macOS
brew install foundrylocal
2. Last ned og kjør en modell (dette starter også den lokale tjenesten):
foundry model list # se tilgjengelige modeller
foundry model run phi-4-mini
3. Installer Python SDK-en som brukes for å oppdage det lokale endepunktet:
pip install foundry-local-sdk
4. Pek Microsoft Agent Framework til din lokale modell:
from foundry_local import FoundryLocalManager
from agent_framework.openai import OpenAIChatClient
# Laster ned (om nødvendig) og betjener modellen lokalt, deretter oppdager endepunkt/port.
manager = FoundryLocalManager("phi-4-mini")
chat_client = OpenAIChatClient(
base_url=manager.endpoint, # f.eks. http://localhost:<port>/v1
api_key=manager.api_key, # alltid "ikke-påkrevd" 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.",
)
Merk: Foundry Local eksponerer et OpenAI-kompatibelt Chat Completions-endepunkt. Bruk det til lokal utvikling og offline-scenarier. For full funksjonalitet i Responses API (tilstandsbevarende samtaler, osv.), bruk Azure OpenAI eller et Microsoft Foundry-prosjekt.
Den betingede arbeidsflytnotatboken i lekse 8 bruker Bing grounding via Microsoft Foundry. Hvis du planlegger å kjøre dette eksempelet, legg til denne variabelen i .env-filen din:
| Variabel | Hvor du finner den |
|---|---|
BING_CONNECTION_ID |
Microsoft Foundry-portalen → ditt prosjekt → Management → Connected resources → din Bing-tilkobling → kopier tilkoblings-ID |
Hvis du er på macOS og støter på en feil som:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
Dette er et kjent problem med Python på macOS hvor systemets SSL-sertifikater ikke automatisk blir anerkjent som trygge. Prøv følgende løsninger i rekkefølge:
Alternativ 1: Kjør Pythons Install Certificates-skript (anbefalt)
# Erstatt 3.XX med din installerte Python-versjon (f.eks., 3.12 eller 3.13):
/Applications/Python\ 3.XX/Install\ Certificates.command
Alternativ 2: Bruk connection_verify=False i notatboken din (kun for GitHub Models notatbøker)
I Lekse 6-notatboken (06-building-trustworthy-agents/code_samples/06-system-message-framework.ipynb) er en kommentert løsning allerede inkludert. Fjern kommentaren fra connection_verify=False når du møter sertifikatfeil:
client = ChatCompletionsClient(
endpoint=endpoint,
credential=AzureKeyCredential(token),
connection_verify=False, # Deaktiver SSL-verifisering hvis du støter på sertifikatfeil
)
⚠️ Advarsel: Å deaktivere SSL-verifisering (
connection_verify=False) reduserer sikkerheten ved å hoppe over sertifikatvalidering. Bruk dette kun som en midlertidig løsning i utviklingsmiljøer. Bruk det aldri i produksjon.
Alternativ 3: Installer og bruk truststore
pip install truststore
Legg deretter til følgende øverst i notatboken eller skriptet ditt før du gjør noen nettverkskall:
import truststore
truststore.inject_into_ssl()
Hvis du har problemer med å kjøre dette oppsettet, bli med i vår Azure AI Community Discord eller opprett en sak.
Du er nå klar til å kjøre koden for dette kurset. Lykke til med å lære mer om verden av AI-agenter!
Introduksjon til AI-agenter og bruksområder for agenter
Ansvarsfraskrivelse: Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.