Questa lezione tratterà come eseguire gli esempi di codice di questo corso.
Prima di iniziare a clonare il tuo repo, unisciti al canale Discord AI Agents For Beginners per ricevere aiuto con la configurazione, qualsiasi domanda sul corso o per connetterti con altri apprendenti.
Per iniziare, per favore clona o fai il fork del repository GitHub. Questo creerà la tua propria versione del materiale del corso così potrai eseguire, testare e modificare il codice!
Questo può essere fatto cliccando il link per fare il fork del repo
Ora dovresti avere la tua versione forkata di questo corso nel seguente link:

Il repository completo può essere grande (~3 GB) quando scarichi tutta la cronologia e tutti i file. Se partecipi solo al workshop o hai bisogno solo di alcune cartelle delle lezioni, una clonazione superficiale (o clonazione sparsa) scarica molto meno.
Sostituisci <your-username> nei comandi sottostanti con l’URL del tuo fork (o l’URL upstream se preferisci).
Per clonare solo la cronologia dell’ultimo commit (scaricamento piccolo):
git clone --depth 1 https://github.com/<your-username>/ai-agents-for-beginners.git
Per clonare un branch specifico:
git clone --depth 1 --branch <branch-name> https://github.com/<your-username>/ai-agents-for-beginners.git
Questo utilizza la clonazione parziale e sparse-checkout (richiede Git 2.25+ e si consiglia Git moderno con supporto per clonazione parziale):
git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-username>/ai-agents-for-beginners.git
Entra nella cartella del repo:
cd ai-agents-for-beginners
Poi specifica quali cartelle vuoi (l’esempio sotto mostra due cartelle):
git sparse-checkout set 00-course-setup 01-intro-to-ai-agents
Dopo aver clonato e verificato i file, se ti servono solo i file e vuoi liberare spazio (senza cronologia git), elimina i metadati del repository (💀 irreversibile — perderai tutta la funzionalità Git):
# zsh/bash
rm -rf .git
# PowerShell
Remove-Item -Recurse -Force .git
Crea un nuovo Codespace per questo repo tramite l’interfaccia GitHub.
Questo corso offre una serie di Jupyter Notebooks che puoi eseguire per ottenere esperienza pratica nella costruzione di AI Agents.
Gli esempi di codice usano Microsoft Agent Framework (MAF) con FoundryChatClient, che si collega a Microsoft Foundry Agent Service V2 (l’API Responses) tramite Microsoft Foundry.
Tutti i notebook Python sono etichettati *-python-agent-framework.ipynb.
NOTA: Se non hai Python3.12 installato, assicurati di installarlo. Poi crea il tuo venv usando python3.12 per garantire che le versioni corrette siano installate dal file requirements.txt.
Esempio
Crea la directory del venv Python:
python -m venv venv
Poi attiva l’ambiente venv per:
# zsh/bash
source venv/bin/activate
# Command Prompt for Windows
venv\Scripts\activate
.NET 10+: Per gli esempi di codice che usano .NET, assicurati di aver installato il .NET 10 SDK o successivo. Poi, controlla la versione del tuo SDK .NET installato:
dotnet --list-sdks
gpt-5-mini). Vedi Passo 1 qui sotto.Abbiamo incluso un file requirements.txt nella root di questo repository che contiene tutti i pacchetti Python richiesti per eseguire gli esempi di codice.
Puoi installarli eseguendo il seguente comando nel tuo terminale alla root del repository:
pip install -r requirements.txt
Consigliamo di creare un ambiente virtuale Python per evitare conflitti e problemi.
Assicurati di usare la versione corretta di Python in VSCode.
Hai bisogno di un hub Microsoft Foundry e di un progetto con un modello distribuito per eseguire i notebook.
gpt-5-mini) da Models + Endpoints → Deploy model.Dal tuo progetto nel portale Microsoft Foundry:

gpt-5-mini).az loginLa maggior parte dei notebook si autentica attraverso il tuo accesso Azure CLI — usando AzureCliCredential o DefaultAzureCredential (entrambi rilevano la tua sessione az login) dal pacchetto azure-identity — quindi non richiedono chiavi API. Alcune lezioni e integrazioni opzionali usano chiavi API; verifica i prerequisiti di ogni lezione per eventuali variabili d’ambiente aggiuntive. Questo richiede che tu sia connesso tramite Azure CLI.
Installa Azure CLI se non l’hai ancora fatto: aka.ms/installazurecli
Effettua il login eseguendo:
az login
Oppure se sei in un ambiente remoto/Codespace senza browser:
az login --use-device-code
Seleziona la sottoscrizione se richiesto — scegli quella contenente il tuo progetto Foundry.
Verifica di essere connesso:
az account show
Perché
az login? I notebook si autenticano usandoAzureCliCredential(oDefaultAzureCredential, che rileva anche il tuo login Azure CLI) dal pacchettoazure-identity. Questo significa che la tua sessione Azure CLI fornisce le credenziali — niente chiavi API o segreti nel file.env. Questa è una best practice di sicurezza.
.envCopia il file di esempio:
# zsh/bash
cp .env.example .env
# PowerShell
Copy-Item .env.example .env
Apri .env e compila questi due valori:
AZURE_AI_PROJECT_ENDPOINT=https://<your-project>.services.ai.azure.com/api/projects/<your-project-id>
AZURE_AI_MODEL_DEPLOYMENT_NAME=gpt-5-mini
| Variabile | Dove trovarla |
|---|---|
AZURE_AI_PROJECT_ENDPOINT |
Portale Foundry → il tuo progetto → pagina Overview |
AZURE_AI_MODEL_DEPLOYMENT_NAME |
Portale Foundry → Models + Endpoints → nome del modello distribuito |
Questo è tutto per la maggior parte delle lezioni! I notebook si autenticheranno automaticamente tramite la tua sessione az login.
pip install -r requirements.txt
Consigliamo di eseguire questo dentro l’ambiente virtuale che hai creato prima.
Le Lezioni 5 (Agentic RAG) e 16 funzionano subito con una base di conoscenza in memoria — nessuna risorsa Azure extra necessaria. Se vuoi supportarle con un vero indice Azure AI Search, nota che il notebook della Lezione 16 attualmente usa l’autenticazione basata su chiave: passa dalla ricerca in memoria ad Azure AI Search solo quando sia AZURE_SEARCH_SERVICE_ENDPOINT che AZURE_SEARCH_API_KEY sono impostati, altrimenti rimane sulla ricerca in memoria — quindi per eseguirlo con un indice reale devi impostare anche la chiave admin. L’autenticazione senza chiave con Microsoft Entra ID (RBAC) è l’approccio raccomandato per il tuo codice in produzione, coerente con il flusso az login usato ovunque nel corso.
I passaggi RBAC sotto si applicano agli esempi della guida di configurazione e al tuo codice. Non abilitano l’autenticazione senza chiave nel notebook della Lezione 16; la Lezione 16 richiede ancora sia endpoint che chiave admin per usare Azure AI Search.
Abilita l’accesso basato su ruolo sul tuo servizio di ricerca:
az search service update --name <service-name> --resource-group <resource-group> --auth-options aadOrApiKey
Assegna a te stesso i ruoli richiesti (creare/caricare indici e query):
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)
Aggiungi l’endpoint al tuo file .env:
| Variabile | Dove trovarla |
|---|---|
AZURE_SEARCH_SERVICE_ENDPOINT |
Portale Azure → la tua risorsa Azure AI Search → Overview → URL |
AZURE_SEARCH_API_KEY |
Necessaria (insieme all’endpoint) per abilitare Azure AI Search nel notebook della Lezione 16, che usa autenticazione basata su chiave. Portale Azure → Settings → Keys → chiave admin primaria |
Perché senza chiave? Le chiavi admin concedono accesso completo in scrittura al tuo servizio di ricerca e possono trapelare tramite i file
.env. Con RBAC, viene usata la tua identitàaz login— lo stesso pattern senza chiave Entra ID usato nei notebook del corso (tramiteAzureCliCredential/DefaultAzureCredential). Vedi Connettersi a Azure AI Search usando i ruoli.
Consulta la guida alla configurazione di Azure AI Search per esempi completi di creazione indici in Python e .NET.
Alcuni notebook nelle lezioni 6 e 8 chiamano Azure OpenAI direttamente (usando l’API Responses) invece di passare tramite un progetto Microsoft Foundry. Questi esempi usavano precedentemente GitHub Models, ora deprecato e non supporta l’API Responses. Aggiungi queste variabili al tuo file .env:
| Variabile | Dove trovarla |
|---|---|
AZURE_OPENAI_ENDPOINT |
Portale Azure → la tua risorsa Azure OpenAI → Keys and Endpoint → Endpoint (es. https://<your-resource>.openai.azure.com) |
AZURE_OPENAI_DEPLOYMENT |
Il nome del tuo modello distribuito (es. gpt-5-mini) che supporta l’API Responses |
AZURE_OPENAI_API_KEY |
Facoltativo — solo se usi autenticazione basata su chiave invece di az login / Entra ID |
L’API Responses usa l’endpoint stabile
/openai/v1/, quindi non serveapi-version. Effettua il login conaz loginper usare l’autenticazione senza chiave Entra ID.
MiniMax fornisce modelli large-context (fino a 204K token) tramite un’API compatibile OpenAI. Poiché il OpenAIChatClient di Microsoft Agent Framework funziona con qualsiasi endpoint compatibile OpenAI, puoi usare MiniMax come alternativa integrata per le lezioni che usano OpenAIChatClient.
Aggiungi queste variabili al tuo file .env:
| Variabile | Dove trovarla |
|---|---|
MINIMAX_API_KEY |
MiniMax Platform → API Keys |
MINIMAX_BASE_URL |
Usa https://api.minimax.io/v1 (valore predefinito) |
MINIMAX_MODEL_ID |
Nome del modello da usare (es., MiniMax-M3) |
Modelli di esempio: MiniMax-M3 (consigliato), MiniMax-M2.7, MiniMax-M2.7-highspeed (risposte più veloci). I nomi e la disponibilità dei modelli possono cambiare nel tempo e l’accesso a un modello specifico può dipendere dal tuo account.
Gli esempi di codice che usano OpenAIChatClient (es., flusso di prenotazione hotel nella Lezione 14) rileveranno e useranno automaticamente la tua configurazione MiniMax quando MINIMAX_API_KEY è impostato.
Novita AI fornisce un’API compatibile con OpenAI per LLM open-source e all’avanguardia (DeepSeek, Llama, Qwen e altri). Poiché OpenAIChatClient del Microsoft Agent Framework funziona con qualsiasi endpoint compatibile con OpenAI, puoi usare Novita AI come alternativa plug-and-play ad Azure OpenAI o OpenAI.
Aggiungi queste variabili al tuo file .env:
| Variabile | Dove trovarla |
|---|---|
NOVITA_API_KEY |
Novita AI Dashboard → API Keys |
NOVITA_BASE_URL |
Usa https://api.novita.ai/openai/v1 (valore predefinito) |
NOVITA_MODEL_ID |
Nome del modello da usare (es. moonshotai/kimi-k3) |
Esempi di modelli: moonshotai/kimi-k3, zai-org/glm-5.2, deepseek/deepseek-v4-flash-0731. Novita AI ospita anche molte altre famiglie di modelli open-source (Llama, Qwen, GLM e altro) — controlla la libreria modelli Novita AI per l’elenco aggiornato dei modelli disponibili e i loro ID.
Gli esempi attuali non consumano automaticamente variabili NOVITA_*. Per usare Novita AI, passa esplicitamente questi valori durante la costruzione di OpenAIChatClient nel campione che stai eseguendo.
Foundry Local è un runtime leggero che scarica, gestisce e serve modelli linguistici interamente sulla tua macchina tramite un’API compatibile OpenAI — nessun cloud richiesto.
Poiché OpenAIChatClient del Microsoft Agent Framework funziona con qualsiasi endpoint compatibile OpenAI, Foundry Local è un’alternativa locale plug-and-play ad Azure OpenAI.
1. Installa Foundry Local
# Windows
winget install Microsoft.FoundryLocal
# macOS
brew install foundrylocal
2. Scarica ed esegui un modello (questo avvia anche il servizio locale):
foundry model list # see available models
foundry model run phi-4-mini
3. Installa l’SDK Python usato per scoprire l’endpoint locale:
pip install foundry-local-sdk
4. Punta il Microsoft Agent Framework al tuo modello locale:
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.",
)
Nota: Foundry Local espone un endpoint compatibile OpenAI per le Chat Completions. Usalo per lo sviluppo locale e scenari offline. Per il set completo di funzionalità Responses API (conversazioni con stato, ecc.), usa Azure OpenAI o un progetto Microsoft Foundry.
Il notebook del workflow condizionale nella lezione 8 usa grounding Bing tramite Microsoft Foundry. Se intendi eseguire quell’esempio, aggiungi questa variabile al tuo file .env:
| Variabile | Dove trovarla |
|---|---|
BING_CONNECTION_ID |
Portale Microsoft Foundry → il tuo progetto → Gestione → Risorse collegate → la tua connessione Bing → copia l’ID della connessione |
Se sei su macOS e incontri un errore come:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
Questa è una problematica nota con Python su macOS dove i certificati SSL di sistema non sono automaticamente attendibili. Prova le seguenti soluzioni in ordine:
Opzione 1: Esegui lo script Install Certificates di Python (consigliato)
# Replace 3.XX with your installed Python version (e.g., 3.12 or 3.13):
/Applications/Python\ 3.XX/Install\ Certificates.command
Opzione 2: Usa connection_verify=False nel tuo notebook (solo per i notebook GitHub Models)
Nel notebook della Lezione 6 (06-building-trustworthy-agents/code_samples/06-system-message-framework.ipynb), è già incluso un workaround commentato. Decommenta connection_verify=False quando incontri errori di certificato:
client = ChatCompletionsClient(
endpoint=endpoint,
credential=AzureKeyCredential(token),
connection_verify=False, # Disable SSL verification if you encounter certificate errors
)
⚠️ Attenzione: Disabilitare la verifica SSL (
connection_verify=False) riduce la sicurezza saltando la validazione del certificato. Usalo solo come soluzione temporanea in ambienti di sviluppo. Mai in produzione.
Opzione 3: Installa e usa truststore
pip install truststore
Poi aggiungi quanto segue all’inizio del tuo notebook o script prima di fare chiamate di rete:
import truststore
truststore.inject_into_ssl()
Se hai problemi con questa configurazione, unisciti al nostro Discord della Community Azure AI o apri un problema.
Ora sei pronto per eseguire il codice di questo corso. Buono studio nel mondo degli Agenti IA!
Introduzione agli Agenti IA e ai casi d’uso degli Agenti
Disclaimer: Questo documento è stato tradotto utilizzando il servizio di traduzione AI Co-op Translator. Sebbene ci impegniamo per garantire la precisione, si prega di notare che le traduzioni automatizzate possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un essere umano. Non siamo responsabili per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.