Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva distribuisci e richiami un agente ospitato in Foundry Agent Service. Scegliere lo strumento di sviluppo o l'SDK adatto al flusso di lavoro.
Se si usa un agente di codifica come GitHub Copilot, la competenza Microsoft Foundry consente di scegliere un percorso di sviluppo e completare la configurazione, la distribuzione e i passaggi di chiamata.
Prerequisiti
Prima di iniziare, è necessario disporre di quanto segue:
- Una sottoscrizione di Azure. Se non ne hai uno, crearne uno gratuitamente.
- Se si dispone di un progetto Foundry esistente, è necessario
Foundry Project Managera livello di progetto. Se è necessario creare un nuovo progetto Foundry, serve il ruoloOwnercon ambito gruppo di risorse. Per la matrice completa dei ruoli, vedi Riferimento delle autorizzazioni dell'agente ospitato.
Estensione
azd microsoft.foundry. Installare e verificare l'estensione dopo aver installatoazd:azd ext install microsoft.foundrySessione autenticata
azd. Accedere dopo aver installato l'estensione:azd auth login
interfaccia della riga di comando di Azure installato ed autenticato:
az loginI pacchetti SDK di Python usati in questa guida introduttiva:
pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenvProgetto Foundry esistente con un modello distribuito. Il percorso Python SDK in questa guida introduttiva crea e instrada una versione dell'agente ospitato, ma non esegue lo scaffolding di un nuovo progetto Foundry o crea automaticamente una distribuzione del modello. Se hai bisogno del flusso di provisioning completo, usa la scheda Azure Developer CLI in questo articolo.
interfaccia della riga di comando di Azure installato ed autenticato:
az loginPacchetti .NET usati in questa guida introduttiva.
dotnet add package Azure.AI.Projects --version 2.1.0-beta.4 dotnet add package Azure.IdentityNote
Le API di distribuzione del codice sorgente sono attualmente disponibili in una versione non definitiva di
Azure.AI.Projects. Il pacchetto stabile 2.0.x non include queste API.Progetto Foundry esistente con un modello distribuito. Il percorso dell'SDK C# crea e instrada una versione dell'agente ospitato, ma non crea un progetto Foundry o una distribuzione di modelli. Per il flusso di provisioning completo, usare la scheda Azure Developer CLI.
L'estensione Microsoft Foundry Canvas. Per installarlo, nella GitHub Copilot App aprirePlug-in>, cercare
microsoft-foundrye selezionare Installa. Per altre informazioni, vedere Che cos'è Microsoft Foundry Canvas?Azure developer CLI (azd) 1.27.1 o versione successiva. Il canvas usa
azdper testare e distribuire l'agente.Estensione
azd microsoft.foundry. Installare e verificare l'estensione dopo aver installatoazd:azd ext install microsoft.foundry
Host per agente di codifica con lo Skill Microsoft Foundry installato.
interfaccia della riga di comando di Azure e Azure Developer CLI (azd) installati ed autenticati:
az login azd auth login
Passaggio 1: Inizializzare l'agente di esempio
Inizializzare un nuovo agente ospitato usando l'esempio di base di Agent Framework in una directory vuota:
azd ai agent init -m "https://github.com/microsoft-foundry/foundry-samples/blob/main/samples/python/hosted-agents/agent-framework/responses/01-basic/azure.yaml" --deploy-mode code
Il flusso interattivo richiede:
- Nome dell'agente: Personalizza il nome o accetta l'impostazione predefinita, agent-framework-agent-basic-responses
- Foundry Project: selezionare Crea un nuovo project Foundry o Usa un project foundry esistente
- Tenant: selezionare il tenant Azure
- Sottoscrizione: selezionare la sottoscrizione Azure
- Location: Selezionare un'area Azure
- Modello: selezionare il modello predefinito, gpt-5.4-mini o un altro modello a cui è possibile accedere
- Versione modello: selezionare l'opzione predefinita
- SKU del modello: selezionare un'opzione con quota disponibile che non è Batch, in genere Standard o GlobalStandard
- Capacità di distribuzione: selezionare il valore predefinito10
- Nome della distribuzione: Seleziona il predefinito, gpt-5.4-mini
Al termine, viene visualizzata la definizione dell'agente di intelligenza artificiale aggiunta al progetto azd. Modificare la directory nella cartella dell'agente appena creata.
cd agent-framework-agent-basic-responses
Passaggio 2: Effettuare il provisioning delle risorse di Azure
Effettuare il provisioning delle risorse definite in azure.yaml:
azd provision
Passaggio 3: Testare l'agente in locale
azd ai agent run
Questo comando crea un ambiente virtuale, installa le dipendenze, avvia l'agente usando il startupCommand definito in azure.yamle apre il controllo agente nel browser in modo da poter chattare con l'agente.
Passaggio 4. Eseguire la distribuzione in Servizio Agente Fonderia
Distribuire il codice sorgente dell'agente.
azd comprime il codice sorgente in un file ZIP e lo carica in Foundry. Foundry risolve le dipendenze, compila l'agente ospitato in remoto e lo distribuisce:
azd deploy
Al termine dell'esecuzione del comando, l'output mostra i collegamenti al playground dell'agente e all'endpoint dell'agente:
Deploying services (azd deploy)
Done: Deploying service basic-agent
- Agent playground (portal): https://ai.azure.com/.../build/agents/basic-agent/build?version=1
- Agent endpoint: https://ai-account-<name>.services.ai.azure.com/api/projects/<project>/agents/basic-agent/versions/1
Passaggio 5: Richiamare l'agente
Inviare la stessa richiesta all'agente distribuito:
azd ai agent invoke "Write a haiku about deploying cloud applications."Dovrebbe essere visualizzata una risposta haiku entro pochi secondi.
(Facoltativo) Trasmettere i log dei contenitori durante l'interazione con l'agente:
azd ai agent monitor --follow
Passaggio 1: Creare o scegliere un progetto Foundry
Aprire il portale foundry e creare un progetto Foundry oppure selezionare uno esistente.
Nel progetto distribuire un modello che supporta la chat,
gpt-5.4-miniad esempio .Copiare questi valori dal portale:
- Endpoint del progetto da Panoramica.
- Nome della distribuzione da Build>Distribuzioni.
Passaggio 2: Scaricare il codice dell'agente di esempio basic
Clona il repository degli esempi di Foundry.
git clone https://github.com/microsoft-foundry/foundry-samples.git
Passaggio 3: Creare un ambiente Python e configurare le impostazioni
Creare un ambiente virtuale e installare i pacchetti di Python necessari per questa guida introduttiva.
Per macOS o Linux:
python -m venv .venv
source .venv/bin/activate
pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenv
Per Windows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenv
Creare una cartella di lavoro per lo script di distribuzione, quindi creare un .env file in tale cartella:
FOUNDRY_PROJECT_ENDPOINT=<your-project-endpoint>
FOUNDRY_MODEL_NAME=<your-model-deployment-name>
FOUNDRY_HOSTED_AGENT_NAME=basic-agent
FOUNDRY_SAMPLE_PATH=<full-path-to-foundry-samples/samples/python/hosted-agents/agent-framework/responses/01-basic/src/agent-framework-agent-basic-responses>
Passaggio 4: Distribuire l'agente ospitato con Python
Creare un file denominato deploy_hosted_agent.py nella stessa cartella di lavoro di .env con il contenuto seguente:
import os
import tempfile
import time
import zipfile
from pathlib import Path
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
AgentEndpointConfig,
CodeConfiguration,
CodeDependencyResolution,
FixedRatioVersionSelectionRule,
HostedAgentDefinition,
ProtocolConfiguration,
ProtocolVersionRecord,
ResponsesProtocolConfiguration,
VersionSelector,
)
from azure.identity import DefaultAzureCredential
from dotenv import load_dotenv
load_dotenv()
endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
model_name = os.environ["FOUNDRY_MODEL_NAME"]
agent_name = os.environ.get("FOUNDRY_HOSTED_AGENT_NAME", "basic-agent")
sample_path = Path(os.environ["FOUNDRY_SAMPLE_PATH"]).resolve()
def create_code_zip(source_dir: Path) -> Path:
zip_path = Path(tempfile.gettempdir()) / f"{agent_name}.zip"
excluded = {".git", ".venv", "__pycache__", ".env", "deploy_hosted_agent.py"}
with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zip_file:
for path in source_dir.rglob("*"):
if not path.is_file():
continue
if any(part in excluded for part in path.parts):
continue
zip_file.write(path, path.relative_to(source_dir))
return zip_path
def wait_for_active_version(project_client: AIProjectClient, version: str) -> None:
for attempt in range(60):
time.sleep(10)
details = project_client.agents.get_version(
agent_name=agent_name,
agent_version=version,
)
status = details["status"]
print(f"Provisioning status: {status} (attempt {attempt + 1}/60)")
if status == "active":
return
if status == "failed":
raise RuntimeError(f"Hosted agent provisioning failed: {dict(details)}")
raise RuntimeError("Timed out waiting for the hosted agent version to become active.")
code_zip_path = create_code_zip(sample_path)
with (
code_zip_path.open("rb") as code_stream,
DefaultAzureCredential() as credential,
AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
):
original_agent_endpoint = None
created = None
try:
created = project_client.agents.create_version_from_code(
agent_name=agent_name,
description="Basic hosted agent deployed from local Python source.",
definition=HostedAgentDefinition(
cpu="0.5",
memory="1Gi",
code_configuration=CodeConfiguration(
runtime="python_3_14",
entry_point=["python", "main.py"],
dependency_resolution=CodeDependencyResolution.REMOTE_BUILD,
),
environment_variables={
"FOUNDRY_PROJECT_ENDPOINT": endpoint,
"FOUNDRY_MODEL_NAME": model_name,
},
protocol_versions=[
ProtocolVersionRecord(protocol="responses", version="2.0.0")
],
),
code=code_stream,
)
print(f"Created hosted agent version {created.version}")
wait_for_active_version(project_client, created.version)
original_agent_endpoint = project_client.agents.get(
agent_name=agent_name
).agent_endpoint
project_client.agents.update_details(
agent_name=agent_name,
agent_endpoint=AgentEndpointConfig(
version_selector=VersionSelector(
version_selection_rules=[
FixedRatioVersionSelectionRule(
agent_version=created.version,
traffic_percentage=100,
),
]
),
protocol_configuration=ProtocolConfiguration(
responses=ResponsesProtocolConfiguration()
),
),
)
print(f"Agent endpoint configured for version {created.version}")
with project_client.get_openai_client(agent_name=agent_name) as openai_client:
response = openai_client.responses.create(
input="Write a haiku about deploying cloud applications.",
)
print(f"Agent response: {response.output_text}")
finally:
if original_agent_endpoint is not None:
project_client.agents.update_details(
agent_name=agent_name,
agent_endpoint=original_agent_endpoint,
)
print("Agent endpoint restored")
if created is not None:
project_client.agents.delete_version(
agent_name=agent_name,
agent_version=created.version,
force=True,
)
print(f"Deleted hosted agent version {created.version}")
Eseguire lo script:
python deploy_hosted_agent.py
Lo script comprime l'origine dell'esempio, lo carica come nuova versione dell'agente ospitato, attende il completamento del provisioning, indirizza temporaneamente l'endpoint dell'agente ospitato a tale versione, richiama l'agente distribuito e quindi ripristina la configurazione dell'endpoint precedente ed elimina la versione temporanea.
Passaggio 5: Richiamare l'agente
Al termine dello script, usare l'agente ospitato in uno dei modi seguenti:
- Modificare
deploy_hosted_agent.pye modificare ilinputvalore passato aopenai_client.responses.create(...), quindi eseguire di nuovo lo script. - Se si desidera una versione instradata persistente anziché una distribuzione di convalida temporanea, adattare lo script in modo da saltare i passaggi di ripristino e
delete_version(...)dopo avere esaminato le implicazioni relative all'instradamento del traffico. - Se è stato usato lo script di esempio come scritto, la configurazione dell'endpoint viene già ripristinata ed eliminata la versione temporanea dell'agente ospitato dopo la convalida.
- Se è stato creato un gruppo di risorse dedicato per questa guida introduttiva, è possibile eliminare il gruppo di risorse dal portale di Azure dopo che non è più necessaria la distribuzione del progetto o del modello.
Avviso
L'eliminazione del gruppo di risorse rimuove definitivamente tutti gli elementi in esso contenuti, tra cui il progetto Foundry, le distribuzioni di modelli, registro contenitori, Application Insights e l'agente ospitato.
Passaggio 1: Creare o scegliere un progetto Foundry
Aprire il portale foundry e creare un progetto Foundry oppure selezionare uno esistente.
Nel progetto distribuire un modello che supporta la chat,
gpt-5.4-miniad esempio .Copiare questi valori dal portale:
- Endpoint del progetto da Panoramica.
- Nome della distribuzione da Build>Distribuzioni.
Passaggio 2: Scaricare l'agente hello-world C#
Clonare il repository degli esempi di Foundry:
git clone https://github.com/microsoft-foundry/foundry-samples.git
La sorgente dell'agente è in samples/csharp/hosted-agents/agent-framework/hello-world/src/hello-world-dotnet-agent-framework.
Passaggio 3: Creare un progetto di distribuzione C#
Creare un'applicazione console e installare i pacchetti necessari:
dotnet new console --name HostedAgentDeployer
cd HostedAgentDeployer
dotnet add package Azure.AI.Projects --version 2.1.0-beta.4
dotnet add package Azure.Identity
Impostare i valori usati dall'applicazione di distribuzione. In PowerShell eseguire:
$env:FOUNDRY_PROJECT_ENDPOINT = "<your-project-endpoint>"
$env:FOUNDRY_MODEL_NAME = "<your-model-deployment-name>"
$env:FOUNDRY_HOSTED_AGENT_NAME = "basic-agent"
$env:FOUNDRY_SAMPLE_PATH = "<full-path-to-hello-world-dotnet-agent-framework>"
Per macOS o Linux, eseguire:
export FOUNDRY_PROJECT_ENDPOINT="<your-project-endpoint>"
export FOUNDRY_MODEL_NAME="<your-model-deployment-name>"
export FOUNDRY_HOSTED_AGENT_NAME="basic-agent"
export FOUNDRY_SAMPLE_PATH="<full-path-to-hello-world-dotnet-agent-framework>"
Passaggio 4: Distribuire l'agente ospitato con C#
Sostituire il contenuto di Program.cs con il codice seguente. I pacchetti SDK di .NET e caricano la directory di origine, quindi non è necessario creare manualmente l'archivio ZIP.
using Azure.AI.Extensions.OpenAI;
using Azure.AI.Projects;
using Azure.AI.Projects.Agents;
using Azure.Identity;
using OpenAI.Responses;
#pragma warning disable AAIP001, OPENAI001
var projectEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT")
?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT isn't set.");
var modelName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL_NAME")
?? throw new InvalidOperationException("FOUNDRY_MODEL_NAME isn't set.");
var agentName = Environment.GetEnvironmentVariable("FOUNDRY_HOSTED_AGENT_NAME")
?? "basic-agent";
var samplePath = Environment.GetEnvironmentVariable("FOUNDRY_SAMPLE_PATH")
?? throw new InvalidOperationException("FOUNDRY_SAMPLE_PATH isn't set.");
AIProjectClient projectClient = new(
endpoint: new Uri(projectEndpoint),
tokenProvider: new DefaultAzureCredential());
HostedAgentDefinition definition = new(cpu: "0.5", memory: "1Gi")
{
Versions =
{
new ProtocolVersionRecord(ProjectsAgentProtocol.Responses, "2.0.0")
},
CodeConfiguration = new(
runtime: "dotnet_10",
entryPoint: ["dotnet", "hello-world.dll"],
dependencyResolution: CodeDependencyResolution.RemoteBuild),
};
definition.EnvironmentVariables.Add(
"FOUNDRY_PROJECT_ENDPOINT", projectEndpoint);
definition.EnvironmentVariables.Add(
"AZURE_AI_MODEL_DEPLOYMENT_NAME", modelName);
ProjectsAgentVersion? created = null;
AgentEndpointConfiguration? originalEndpoint = null;
try
{
created = await projectClient.AgentAdministrationClient
.CreateAgentVersionFromCodeAsync(
agentName: agentName,
filePath: samplePath,
metadata: new AgentVersionFromCodeMetadata(definition));
Console.WriteLine($"Created hosted agent version {created.Version}");
for (var attempt = 1; attempt <= 60; attempt++)
{
await Task.Delay(TimeSpan.FromSeconds(10));
created = await projectClient.AgentAdministrationClient
.GetAgentVersionAsync(agentName, created.Version);
Console.WriteLine(
$"Provisioning status: {created.Status} (attempt {attempt}/60)");
if (created.Status == AgentVersionStatus.Active)
{
break;
}
if (created.Status == AgentVersionStatus.Failed)
{
throw new InvalidOperationException("Hosted agent provisioning failed.");
}
}
if (created.Status != AgentVersionStatus.Active)
{
throw new TimeoutException(
"Timed out waiting for the hosted agent version to become active.");
}
ProjectsAgentRecord agent = await projectClient.AgentAdministrationClient
.GetAgentAsync(agentName);
originalEndpoint = agent.AgentEndpoint;
AgentEndpointConfiguration endpoint = new()
{
VersionSelector = new(
[new FixedRatioVersionSelectionRule(created.Version, 100)]),
ProtocolConfiguration = new()
{
Responses = new ResponsesProtocolConfiguration()
}
};
await projectClient.AgentAdministrationClient.PatchAgentAsync(
agentName,
new PatchAgentOptions { AgentEndpoint = endpoint });
Console.WriteLine($"Agent endpoint configured for version {created.Version}");
ProjectResponsesClient responsesClient = projectClient.ProjectOpenAIClient
.GetProjectResponsesClientForAgentEndpoint(agentName);
ResponseResult response = await responsesClient.CreateResponseAsync(
"Write a haiku about deploying cloud applications.");
Console.WriteLine($"Agent response: {response.GetOutputText()}");
}
finally
{
if (originalEndpoint is not null)
{
await projectClient.AgentAdministrationClient.PatchAgentAsync(
agentName,
new PatchAgentOptions { AgentEndpoint = originalEndpoint });
Console.WriteLine("Agent endpoint restored");
}
if (created is not null)
{
await projectClient.AgentAdministrationClient.DeleteAgentVersionAsync(
agentName,
created.Version,
force: true);
Console.WriteLine($"Deleted hosted agent version {created.Version}");
}
}
Il codice segue i modelli di caricamento del codice sorgente e di instradamento degli endpoint dall'esempio di agente di codice di Azure SDK per .NET.
Eseguire l'applicazione:
dotnet run
L'applicazione carica l'origine dell'agente C#, attende il provisioning, indirizza l'endpoint dell'agente alla nuova versione, invia un prompt, ripristina la route precedente ed elimina la versione temporanea.
Passaggio 5: Richiamare l'agente
Al termine dell'applicazione, usare l'agente ospitato in uno dei modi seguenti:
- In
Program.cs, modifica il prompt passato aCreateResponseAsync, quindi esegui nuovamentedotnet run. - Per mantenere la versione instradata, rimuovi endpoint-restoration e le chiamate
DeleteAgentVersionAsyncdopo aver esaminato l'impatto dell'instradamento del traffico. - Se è stata usata l'applicazione C# come scritto, ripristina la configurazione dell'endpoint ed elimina la versione temporanea dell'agente ospitato dopo la convalida.
- Se è stato creato un gruppo di risorse dedicato per questa guida introduttiva, eliminare il gruppo di risorse dal portale di Azure quando non è più necessaria la distribuzione del progetto o del modello.
Avviso
L'eliminazione del gruppo di risorse rimuove definitivamente tutti gli elementi in esso contenuti, tra cui il progetto Foundry, le distribuzioni di modelli, registro contenitori, Application Insights e l'agente ospitato.
Passaggio 1: Creare un progetto Foundry
- Aprire il riquadro comandi (Ctrl+MAIUSC+P) e selezionare Foundry Toolkit: Create Project.
- Selezionare la sottoscrizione Azure.
- Creare un nuovo gruppo di risorse o selezionarne uno esistente.
- Immettere un nome per il progetto Foundry.
Passaggio 2: Distribuire un modello
- Aprire il riquadro comandi e selezionare Foundry Toolkit: Apri catalogo modelli.
- Cerca
gpt-4.1e seleziona Distribuisci. - Nella pagina di distribuzione del modello selezionare Deploy per Microsoft Foundry.
Passaggio 3: Creare un progetto agente ospitato
- Aprire il riquadro comandi e selezionare Foundry Toolkit: Crea nuovo agente ospitato.
- Selezionare Python come linguaggio.
- Per il Framework, selezionare Agent Framework.
- Selezionare Responses API come tipo di protocollo.
- Selezionare Basic come codice di esempio.
- Seleziona il pulsante Avanti.
- Scegliere una cartella per i file di progetto e immettere un nome per l'agente.
- In Configurazione dell'ambiente scegliere Configura con Microsoft Foundry. Il contenuto viene popolato automaticamente con il progetto e il modello creati nei passaggi 1 e 2.
- Selezionare il pulsante Crea.
Viene visualizzata una nuova finestra di VS Code con il progetto come area di lavoro attiva.
Passaggio 4: Installare le dipendenze
Creare un ambiente virtuale e installare i requisiti.
Per macOS o Linux:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Per Windows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Passaggio 5: Testare l'agente in locale
Premere F5 per avviare il server HTTP locale con il debug abilitato. Foundry Toolkit Agent Inspector si apre per i test interattivi ed è possibile impostare punti di interruzione nel codice.
Per eseguire il server senza eseguire il debug:
python main.py
L'agente ascolta su http://localhost:8088/. Inviare un prompt di test con curl (o qualsiasi client HTTP):
curl -sS -H "Content-Type: application/json" -X POST http://localhost:8088/responses \
-d '{"input": "Write a haiku about deploying cloud applications.", "stream": false}'
Passaggio 6. Eseguire la distribuzione in Servizio Agente Fonderia
- Apri la tavolozza dei comandi e seleziona Foundry Toolkit: Deploy Hosted Agent. Verrà visualizzata una visualizzazione Web di distribuzione.
- In Metodo di distribuzione selezionare Codice.
- Selezionare Remote come modalità del pacchetto.
- Il nome dell'agente viene popolato automaticamente.
- Seleziona il pulsante Avanti.
- La pagina Rivedi e distribuisci viene popolata automaticamente.
- Selezionare il pulsante Distribuisci .
Al termine della distribuzione, l'agente viene visualizzato in Agenti ospitati in Foundry Toolkit Explorer.
Passaggio 7: Richiamare l'agente
- Nello strumento di esplorazione di Foundry Toolkit espandere Agenti ospitati e selezionare l'agente. La pagina dei dettagli mostra lo stato nella sezione Dettagli della distribuzione.
- Seleziona la scheda Playground e invia un prompt di prova come
Write a haiku about deploying cloud applications..
Il Canvas di Microsoft Foundry ti guida nella creazione e distribuzione di un agente ospitato dal pannello laterale nell'app GitHub Copilot. Quando si effettuano scelte nell'area di disegno, ogni passaggio viene passato a Copilot con il contesto pertinente del progetto Foundry.
Passaggio 1: Aprire l'area di disegno
Nell'app GitHub Copilot, chiedere a Copilot di creare un agente ospitato in Foundry. Per esempio:
Create a Foundry hosted agent using Microsoft Foundry CanvasL'area di disegno si apre nel pannello destro. Se non si apre automaticamente, aprirlo dal pannello di destra.
L'area di lavoro guida attraverso tre fasi, che corrispondono ai seguenti passaggi:
- Creare un agente ospitato. Scegli il tuo progetto Foundry e indica a Copilot cosa vuoi realizzare. È possibile iniziare da un prompt prescritto per velocizzare le operazioni.
- Crea l'agente ospitato. Scegli il modello, gli strumenti, le abilità e i vincoli per il tuo agente tra le risorse del tuo progetto Foundry.
- Distribuire e testare. Testate l'agente localmente e, una volta soddisfatti, distribuitelo in Foundry Agent Service.
Passaggio 2: Connettere un progetto Foundry
- Aprire il menu del progetto canvas e accedere a Azure se richiesto.
- Seleziona un abbonamento.
- Selezionare un progetto Foundry. L'area di disegno mantiene questa selezione quando viene riaperta.
Passaggio 3: Creare l'impalcatura dell'agente
Scegliere come iniziare:
- Seleziona Dammi un'idea per creare la struttura di base di un agente ospitato a partire da un'idea generata.
- Selezionare il prompt di esempio Hello world per iniziare da un agente di base.
Copilot genera la struttura del codice dell'agente nel tuo spazio di lavoro in base alla tua scelta.
Passaggio 4: configura l'agente
In questa fase si connette l'agente alle risorse nel progetto Foundry. Ogni selezione invia una richiesta di Copilot, che aggiorna automaticamente il codice e la configurazione dell'agente:
- Selezionare un modello distribuito per attivare il ragionamento dell'agente.
- Collega i toolbox di Foundry e i relativi strumenti per fornire capacità all'agente, ad esempio chiamare API o eseguire codice.
- Connettere le competenze che consentono di creare un pacchetto di logica riutilizzabile per l'agente.
- Assegna barriere di protezione per applicare controlli di sicurezza e sui contenuti.
Passaggio 5: Testare l'agente in locale
Selezionare Ispeziona in locale. Il canvas esegue
azd ai agent runnel terminale integrato di Copilot, rimane in attesa dell'agente sulla porta8088e integra Agent Inspector.Inviare una richiesta di test, ad esempio:
Write a haiku about deploying cloud applications.Se l’ispettore segnala un errore, copia il messaggio di errore nell’area del prompt dell’area di disegno e chiedi a Copilot di risolvere il problema.
Passaggio 6. Eseguire la distribuzione in Servizio Agente Fonderia
- Selezionare Distribuisci in Foundry. Il canvas usa
azde Copilot per distribuire l'agente ospitato. - Al termine della distribuzione, usare i collegamenti nell'output per aprire l'area di test dell'agente nel portale Foundry.
Passaggio 1: Apri uno spazio di lavoro con Foundry Skill
Aprire una cartella vuota nell'host dell'agente di codifica, ad esempio GitHub Copilot in Visual Studio Code, interfaccia della riga di comando Copilot o Claude Code. Verifica che la skill microsoft-foundry sia disponibile prima di chiedere all'agente di coding di creare risorse di Azure.
Se l'abilità non è disponibile, consulta Usare l'abilità Microsoft Foundry negli agenti di codifica.
Passaggio 2: Chiedi alla skill di creare l'agente ospitato
Chiedi al tuo agente di codifica di utilizzare la competenza per il flusso di lavoro completo dell'agente ospitato:
Use the Microsoft Foundry Skill hosted-agent quick-start workflow to create my
first hosted agent end to end. Verify my environment first, and stop if I need
to sign in myself. Use Python 3.13, Agent Framework, the Responses API, the
Basic sample, and code deployment. Create a new Foundry project unless I provide
an existing project. Use the model deployment from the Basic sample unless I
provide an existing deployment. Test the agent locally, deploy it to Foundry
Agent Service, and invoke it with: "Write a haiku about deploying cloud
applications."
L'agente di codifica deve esaminare gli strumenti Foundry disponibili quando gli strumenti MCP sono disponibili, caricare il flusso di lavoro di avvio rapido dell'agente ospitato e richiedere o impostare valori predefiniti per i valori mancanti, ad esempio la sottoscrizione, l'area geografica, il nome del progetto e se utilizzare un progetto Foundry esistente.
Passaggio 3: Esaminare e approvare il piano
- Esaminare il piano, i file, i comandi, le risorse Azure e le assegnazioni di ruolo proposte dall'agente di codifica.
- Per seguire questa guida introduttiva, seleziona Python 3.13, Agent Framework, Responses API, il codice di esempio Basic e la distribuzione Code.
- Approvare la creazione di risorse a carico dei costi solo dopo aver verificato la sottoscrizione, l'area, il gruppo di risorse, la distribuzione del modello e la quota.
- Se l'agente di codifica ti chiede di autenticarti, esegui tu stesso/a
az logineazd auth login, quindi chiedi all'agente di codifica di continuare.
Passaggio 4: Creare la struttura di base della competenza e testare l'agente
Consentire all'agente di codifica di creare il progetto dell'agente ospitato, effettuare il provisioning delle risorse quando si sceglie un nuovo progetto Foundry, scrivere valori di ambiente locale, preparare l'ambiente locale ed eseguire un smoke test locale. Per gli agenti in Python, il workflow delle competenze usa azd ai agent run per installare le dipendenze durante la prima esecuzione locale.
Il flusso di lavoro deve anche aggiungere il file di linee guida del progetto richiesto dall'host dell'agente di codifica e controllare la configurazione del progetto generata prima del test locale.
Se l'host dell'agente di codifica non riesce a mantenere in esecuzione un server locale per lo smoke test, usare la scheda di Azure Developer CLI in questo articolo per i comandi del test locale. È possibile continuare a eseguire la distribuzione solo dopo aver deciso di convalidare l'agente in modalità remota.
Passaggio 5: Distribuire e richiamare l'agente ospitato
Una volta superato il test preliminare locale, chiedere all'agente di programmazione di completare la distribuzione e la convalida remota:
Continue with the Microsoft Foundry Skill workflow. Deploy the hosted agent to
Foundry Agent Service, show the deployment status and playground link, and invoke
it remotely with: "Write a haiku about deploying cloud applications." If the
skill workflow requires evaluation suite generation before the final summary,
submit the generation job and show me the follow-up eval command.
Al termine del flusso di lavoro, l'agente di codifica deve visualizzare il nome dell'agente ospitato, la versione, lo stato della distribuzione, l'endpoint, il collegamento al playground, le risorse create, la risposta al prompt dei test e qualsiasi comando di completamento della valutazione.
Pulire le risorse
Elimina le risorse quando hai finito, per evitare ulteriori addebiti.
Avviso
Se l'ambiente corrente azd ha creato il progetto Foundry, azd down elimina definitivamente il gruppo di risorse del progetto e tutti gli elementi in esso contenuti. Se è stato selezionato un progetto esistente durante l'inizializzazione, azd down lascia il progetto, il relativo gruppo di risorse, l'agente ospitato e altre risorse di avvio rapido sul posto. Per eliminare le risorse non più necessarie dal progetto esistente, eliminarle separatamente.
azd down
Quando l'ambiente ha creato il progetto, azd elenca le risorse, richiede la conferma e le elimina in circa 2-5 minuti.
- Aprire il portale di Azure e passare al gruppo di risorse che contiene l'agente.
- Selezionare Elimina gruppo di risorse, digitare il nome del gruppo di risorse da confermare e selezionare Elimina.
Avviso
L'eliminazione del gruppo di risorse rimuove definitivamente tutti gli elementi in esso contenuti, inclusi il progetto Foundry, registro contenitori, Application Insights e l'agente ospitato.
Il canvas crea un'area di lavoro basata su azd, pertanto è possibile eseguire la pulizia dalla cartella dell'area di lavoro con azd down.
Avviso
Se l'ambiente corrente azd ha creato il progetto Foundry, azd down elimina definitivamente il gruppo di risorse del progetto e tutti gli elementi in esso contenuti. Se è stato selezionato un progetto esistente durante l'inizializzazione, azd down lascia il progetto, il relativo gruppo di risorse, l'agente ospitato e altre risorse di avvio rapido sul posto. Per eliminare le risorse non più necessarie dal progetto esistente, eliminarle separatamente.
azd down
Quando l'ambiente ha creato il progetto, azd elenca le risorse, richiede la conferma e le elimina in circa 2-5 minuti.
L'abilità Microsoft Foundry non elimina automaticamente le risorse. Può aiutare l'agente di codifica a identificare le risorse create da questa guida rapida e a scegliere il metodo di pulizia corretto. Tu o il tuo agente di coding continuate comunque a eseguire il comando di pulizia dopo averlo esaminato e approvato.
Nella cartella del progetto dell'agente ospitato, chiedi all'agente di codifica di verificare le attività di pulizia:
Use the Microsoft Foundry Skill to identify the Azure resources created for this quickstart. Confirm whether azd down is the right cleanup method for this project, and show me the resources before any deletion command runs.Se il progetto agente ospitato è stato creato con
azde il gruppo di risorse contiene solo risorse di avvio rapido, eseguire:azd downApprovare l'eliminazione solo dopo aver verificato il gruppo di risorse e le risorse elencate dal comando.
Se il tuo agente di coding non riesce a eseguire i comandi di pulizia, usa la scheda dell'interfaccia della riga di comando per sviluppatori di Azure in questo articolo oppure elimina il gruppo di risorse dal portale di Azure.
Risoluzione dei problemi
| Problema | Soluzione |
|---|---|
SubscriptionNotRegistered |
Registrare il provider: az provider register --namespace Microsoft.CognitiveServices. |
AuthorizationFailed durante il provisioning |
Richiedere il ruolo Collaboratore nella sottoscrizione o nel gruppo di risorse. |
Errore AuthenticationError o DefaultAzureCredential |
Per aggiornare le credenziali, eseguire azd auth logout e quindi azd auth login. |
ResourceNotFound oppure DeploymentNotFound |
Verifica l'URL dell'endpoint e il nome del deployment del modello nel portale Foundry in Build>Deployments. |
create_version_from_code non riesce con Hosted agent provisioning failed |
Verificare che main.py e requirements.txt si trovino nella radice del file ZIP caricato e verificare che il nome della distribuzione del modello in .env esista nel progetto Foundry di destinazione. |
Connection refused in esecuzione locale |
Verificare che nessun altro processo usi la porta 8088. |
azd ai agent init Fallisce |
Eseguire azd version per verificare la versione 1.27.1 o successiva. Eseguire l'aggiornamento con winget upgrade Microsoft.Azd (Windows) o brew upgrade azd (macOS). Eseguire azd ext show azure.ai.agents per verificare la versione 1.0.0-beta.4 o successiva. Aggiorna con azd ext upgrade azure.ai.agents. |
| Estensione Microsoft Foundry Toolkit non trovata | Installare il Microsoft Foundry Toolkit per Visual Studio Code da Marketplace e passare al canale di pre-release. |
| L'agente di codifica non carica la competenza Microsoft Foundry | Installare o ricaricare l'abilità seguendo Usare l'abilità Microsoft Foundry negli agenti di codifica. |
| L'agente di codifica non può eseguire lo smoke test locale | Usare la scheda Azure Developer CLI o VS Code in questo articolo per i test locali. Continuare con la convalida remota solo dopo aver esaminato il motivo per cui la convalida locale non è disponibile. |
L'esecuzione locale non riesce in Windows ARM64 con errori di compilazione per aiohttp, grpcio, cryptography o httptools |
Le ruote predefinite arm64 non vengono pubblicate per questi pacchetti e le compilazioni di origine richiedono Microsoft C++ Build Tools. Come soluzione alternativa, ignorare il passaggio 3 e convalidare l'agente in modalità remota con azd deploy seguito da azd ai agent invoke. |
Per la matrice completa delle autorizzazioni e delle assegnazioni di ruolo, vedi Riferimento per le autorizzazioni dell'agente ospitato.
Che cosa si è appreso
Questa guida introduttiva spiega come:
- Creato un progetto di agente ospitato a partire dall'esempio Basic dell'agente.
- È stata caricata e instradata una versione dell’agente ospitato con l’SDK per Python o C#, oppure è stato generato lo scaffold dell’esempio con Azure Developer CLI.
- Testato l'agente eseguito localmente.
- Distribuito l'agente nel servizio agente Foundry.
- Inviare richieste di test dall'SDK Python o C#, dall'interfaccia della riga di comando per sviluppatori Azure, da VS Code, dall'area di disegno Foundry o da un agente di codifica che usa la Microsoft Competenza Foundry.