ai-agents-for-beginners

Kursusopsætning

Introduktion

Denne lektion vil dække, hvordan man kører kodeeksemplerne i dette kursus.

Deltag med andre lærende og få hjælp

Før du begynder at klone dit repo, så deltag i AI Agents For Beginners Discord-kanalen for at få hjælp til opsætning, stille spørgsmål om kurset eller forbinde dig med andre lærende.

Klon eller Fork dette Repo

For at komme i gang, skal du klone eller forke GitHub-repositoriet. Dette laver din egen version af kursusmaterialet, så du kan køre, teste og justere koden!

Dette kan gøres ved at klikke på linket til at forke repoet

Du skulle nu have din egen forkede version af dette kursus på følgende link:

Forked Repo

Shallow Clone (anbefalet til workshop / Codespaces)

Det fulde repository kan være stort (~3 GB), når du downloader hele historikken og alle filer. Hvis du kun deltager i workshoppen eller kun har brug for nogle få lektionmapper, undgår en shallow clone (eller en sparse clone) det meste af denne download ved at forkorte historikken og/eller springe blobs over.

Hurtig shallow clone — minimal historik, alle filer

Erstat <your-username> i kommandoerne nedenfor med din fork URL (eller upstream URL hvis du foretrækker det).

For kun at klone den seneste commit-historik (lille download):

git clone --depth 1 https://github.com/<your-username>/ai-agents-for-beginners.git

For at klone en specifik gren:

git clone --depth 1 --branch <branch-name> https://github.com/<your-username>/ai-agents-for-beginners.git

Delvis (sparse) clone — minimale blobs + kun valgte mapper

Dette bruger partial clone og sparse-checkout (kræver Git 2.25+ og anbefalet moderne Git med partial clone support):

git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-username>/ai-agents-for-beginners.git

Gå ind i repo mappen:

cd ai-agents-for-beginners

Angiv derefter hvilke mapper du ønsker (eksemplet nedenfor viser to mapper):

git sparse-checkout set 00-course-setup 01-intro-to-ai-agents

Efter kloning og verifikation af filerne, hvis du kun har brug for filerne og vil frigøre plads (ingen git-historik), slet da repository metadata (💀irreversibelt — du mister al Git funktionalitet: ingen commits, pulls, pushes eller historik adgang).

# zsh/bash
rm -rf .git
# PowerShell
Remove-Item -Recurse -Force .git

Brug af GitHub Codespaces (anbefalet for at undgå store lokale downloads)

Tips

Køre Koden

Dette kursus tilbyder en serie af Jupyter Notebooks, som du kan køre for at få praktisk erfaring med at bygge AI-agenter.

Kodeeksemplerne bruger Microsoft Agent Framework (MAF) med FoundryChatClient, som forbinder til Microsoft Foundry Agent Service V2 (Responses API) gennem Microsoft Foundry.

Alle Python notebooks er mærket *-python-agent-framework.ipynb.

Krav

Vi har inkluderet en requirements.txt fil i roden af dette repository, som indeholder alle nødvendige Python-pakker til at køre kodeeksemplerne.

Du kan installere dem ved at køre følgende kommando i din terminal i roden af repositoryet:

pip install -r requirements.txt

Vi anbefaler at oprette et Python virtuelt miljø for at undgå konflikter og problemer.

Opsætning af VSCode

Sørg for, at du bruger den rigtige version af Python i VSCode.

image

Opsæt Microsoft Foundry og Microsoft Foundry Agent Service

Trin 1: Opret et Microsoft Foundry Projekt

Du skal bruge et Microsoft Foundry hub og projekt med en implementeret model for at kunne køre notebooks.

  1. Gå til ai.azure.com og log ind med din Azure konto.
  2. Opret en hub (eller brug en eksisterende). Se: Hub ressources oversigt.
  3. Inde i hubben, opret et projekt.
  4. Implementer en model (f.eks. gpt-5-mini) fra Models + EndpointsDeploy model.

Trin 2: Hent dit projekt endpoint og modelimplementeringsnavn

Fra dit projekt i Microsoft Foundry portalen:

Project Connection String

Trin 3: Log ind på Azure med az login

Alle notebooks bruger AzureCliCredential til autentificering — ingen API-nøgler at administrere. Det kræver, at du er logget ind via Azure CLI.

  1. Installer Azure CLI hvis du ikke allerede har det: aka.ms/installazurecli

  2. Log ind ved at køre:

     az login
    

    Eller hvis du er i et remote/Codespace miljø uden browser:

     az login --use-device-code
    
  3. Vælg dit abonnement hvis du bliver bedt om det — vælg det, der indeholder dit Foundry projekt.

  4. Bekræft du er logget ind:

     az account show
    

Hvorfor az login? Notebooks autentificerer ved hjælp af AzureCliCredential fra azure-identity pakken. Det betyder, at din Azure CLI session leverer legitimationsoplysningerne — ingen API-nøgler eller hemmeligheder i din .env fil. Dette er en bedste praksis for sikkerhed.

Trin 4: Opret din .env fil

Kopier eksempel-filen:

# zsh/bash
cp .env.example .env
# PowerShell
Copy-Item .env.example .env

Åbn .env og udfyld disse to værdier:

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 finder du den
AZURE_AI_PROJECT_ENDPOINT Foundry portal → dit projekt → Oversigt siden
AZURE_AI_MODEL_DEPLOYMENT_NAME Foundry portal → Models + Endpoints → navnet på din implementerede model

Det var det for de fleste lektioner! Notebooks vil automatisk autentificere gennem din az login session.

Trin 5: Installer Python-afhængigheder

pip install -r requirements.txt

Vi anbefaler at køre dette inde i det virtuelle miljø, du oprettede tidligere.

Yderligere opsætning for Lektion 5 (Agentic RAG)

Lektion 5 bruger Azure AI Search til retrieval-augmenteret generering. Hvis du planlægger at køre den lektion, tilføj da disse variabler til din .env fil:

Variabel Hvor finder du den
AZURE_SEARCH_SERVICE_ENDPOINT Azure-portalen → din Azure AI Search ressource → Oversigt → URL
AZURE_SEARCH_API_KEY Azure-portalen → din Azure AI Search ressource → IndstillingerNøgler → primær administrator nøgle

Yderligere opsætning for lektioner der kalder Azure OpenAI direkte (lektioner 6 og 8)

Nogle notebooks i lektion 6 og 8 kalder Azure OpenAI direkte (ved brug af Responses API) i stedet for at gå gennem et Microsoft Foundry projekt. Disse eksempler brugte tidligere GitHub Models, som er forældet (udfaset juli 2026) og understøtter ikke Responses API. Hvis du planlægger at køre disse eksempler, tilføj da disse variabler til din .env fil:

Variabel Hvor finder du den
AZURE_OPENAI_ENDPOINT Azure-portalen → din Azure OpenAI ressource → Nøgler og Endpoint → Endpoint (f.eks. https://<your-resource>.openai.azure.com)
AZURE_OPENAI_DEPLOYMENT Navnet på din implementerede model (f.eks. gpt-5-mini) der understøtter Responses API
AZURE_OPENAI_API_KEY Valgfri — kun hvis du bruger nøglebaseret autentificering i stedet for az login / Entra ID

Responses API bruger den stabile /openai/v1/ endpoint, så ingen api-version er nødvendig. Log ind med az login for at bruge nøglefri Entra ID autentificering.

Alternativ udbyder: MiniMax (OpenAI-kompatibel)

MiniMax tilbyder modeller med stort kontekstvindue (op til 204K tokens) via en OpenAI-kompatibel API. Eftersom Microsoft Agent Framework’s OpenAIChatClient fungerer med enhver OpenAI-kompatibel endpoint, kan du bruge MiniMax som et plug-and-play alternativ til Azure OpenAI eller OpenAI.

Tilføj disse variabler til din .env fil:

Variabel Hvor finder du den
MINIMAX_API_KEY MiniMax Platform → API-nøgler
MINIMAX_BASE_URL Brug https://api.minimax.io/v1 (standardværdi)
MINIMAX_MODEL_ID Modelnavnet der skal bruges (f.eks., MiniMax-M3)

Eksempelmodeller: MiniMax-M3 (anbefalet), MiniMax-M2.7, MiniMax-M2.7-highspeed (hurtigere svar). Modelnavne og tilgængelighed kan ændre sig over tid, og adgang til en given model kan afhænge af din konto eller region — tjek MiniMax Platform for den aktuelle liste. Hvis MiniMax-M3 ikke er tilgængelig for din konto, sæt MINIMAX_MODEL_ID til en model du har adgang til (f.eks. MiniMax-M2.7).

Kodeeksemplerne der bruger OpenAIChatClient (f.eks. Lektion 14 hotel booking workflow) vil automatisk detektere og bruge din MiniMax-konfiguration når MINIMAX_API_KEY er sat.

Alternativ udbyder: Foundry Local (Kør modeller lokalt)

Foundry Local er en letvægts runtime, der downloader, administrerer og tjener sprogmodeller helt på din egen maskine gennem en OpenAI-kompatibel API — ingen cloud, ingen Azure abonnement, og ingen API-nøgler. Det er et fremragende valg til offline-udvikling, eksperimenter uden cloud-omkostninger, eller at holde data på enheden.

Fordi Microsoft Agent Framework’s OpenAIChatClient fungerer med enhver OpenAI-kompatibel endpoint, er Foundry Local et lokalt plug-and-play alternativ til Azure OpenAI.

1. Installer Foundry Local

# Windows
winget install Microsoft.FoundryLocal

# macOS
brew install foundrylocal

2. Download og kør en model (dette starter også den lokale service):

foundry model list          # se tilgængelige modeller
foundry model run phi-4-mini

3. Installer Python SDK’en brugt til at finde den lokale endpoint:

pip install foundry-local-sdk

4. Peg Microsoft Agent Framework til din lokale model:

from foundry_local import FoundryLocalManager
from agent_framework.openai import OpenAIChatClient

# Downloader (om nødvendigt) og tjener modellen lokalt, derefter opdager endpoint/port.
manager = FoundryLocalManager("phi-4-mini")

chat_client = OpenAIChatClient(
    base_url=manager.endpoint,      # f.eks. http://localhost:<port>/v1
    api_key=manager.api_key,        # altid "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.",
)

Bemærk: Foundry Local udsætter en OpenAI-kompatibel Chat Completions endpoint. Brug den til lokal udvikling og offline scenarier. For det fulde Responses API funktionssæt (stateful samtaler, dyb værktøjsorkestrering og agent-stil udvikling), målret mod Azure OpenAI eller et Microsoft Foundry projekt som vist i lektionerne. Se Foundry Local dokumentationen for den aktuelle modelkatalog og platformunderstøttelse.

Yderligere opsætning for Lektion 8 (Bing Grounding Workflow)

Det betingede workflow-notebook i lektion 8 bruger Bing grounding via Microsoft Foundry. Hvis du planlægger at køre det eksempel, skal du tilføje denne variabel til din .env-fil:

Variabel Hvor du finder den
BING_CONNECTION_ID Microsoft Foundry-portalen → dit projekt → ManagementConnected resources → din Bing-forbindelse → kopier forbindelses-ID’et

Fejlfinding

SSL-certifikatverifikationsfejl på macOS

Hvis du er på macOS og støder på en fejl som:

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain

Dette er et kendt problem med Python på macOS, hvor systemets SSL-certifikater ikke automatisk godkendes. Prøv følgende løsninger i rækkefølge:

Mulighed 1: Kør Pythons Install Certificates-script (anbefalet)

# Erstat 3.XX med din installerede Python-version (f.eks. 3.12 eller 3.13):
/Applications/Python\ 3.XX/Install\ Certificates.command

Mulighed 2: Brug connection_verify=False i din notebook (kun for GitHub Models-notebooks)

I Lektion 6-notebooken (06-building-trustworthy-agents/code_samples/06-system-message-framework.ipynb) er en kommentar med en løsning allerede inkluderet. Fjern kommentaren på connection_verify=False når klienten oprettes:

client = ChatCompletionsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(token),
    connection_verify=False,  # Deaktiver SSL-verifikation, hvis du støder på certifikatfejl
)

⚠️ Advarsel: Deaktivering af SSL-verifikation (connection_verify=False) reducerer sikkerheden ved at springe certifikatvalidering over. Brug dette kun som en midlertidig løsning i udviklingsmiljøer, aldrig i produktion.

Mulighed 3: Installer og brug truststore

pip install truststore

Tilføj derefter følgende øverst i din notebook eller script, før du foretager netværkskald:

import truststore
truststore.inject_into_ssl()

Stuck et sted?

Hvis du har problemer med at køre denne opsætning, kan du hoppe ind i vores Azure AI Community Discord eller oprette en issue.

Næste lektion

Du er nu klar til at køre koden til dette kursus. God fornøjelse med at lære mere om AI-agenternes verden!

Introduction to AI Agents and Agent Use Cases


Ansvarsfraskrivelse: Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.