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.
Creare, testare e distribuire flussi di lavoro hosted Foundry Agent usando il toolkit Foundry per Visual Studio Code. Il toolkit supporta la creazione dell'agente da modelli, test locali e debug con Agent Inspector per la visualizzazione e il supporto al tracing, e la distribuzione diretta su Foundry Agent Service da VS Code. I flussi di lavoro ospitati consentono a più agenti di collaborare in sequenza, ognuno con un proprio modello, strumenti e istruzioni.
Prima di iniziare, creare un agente in Foundry Agent Service usando l'estensione. È quindi possibile aggiungere flussi di lavoro ospitati a tale agente.
Questo articolo illustra come creare un progetto del flusso di lavoro, eseguirlo in locale, visualizzare l'esecuzione e distribuirlo nell'area di lavoro Foundry.
Prerequisiti
- Un progetto Foundry con un modello distribuito o una risorsa OpenAI Azure.
- È stato installato il Foundry Toolkit per Visual Studio Code.
- Identità gestita del progetto con i ruoli utente Azure AI e AcrPull assegnato. Assegna anche il ruolo
acrPullall'identità gestita del progetto Foundry in cui hai intenzione di distribuire l'agente ospitato. - Area supportata per gli agenti ospitati.
- Python 3.12 o versione successiva.
- .NET 9 SDK o versione successiva.
Creare un flusso di lavoro dell'agente ospitato
È possibile usare Foundry Toolkit per Visual Studio Code per creare flussi di lavoro dell'agente ospitato. Un flusso di lavoro dell'agente ospitato è una sequenza di agenti che interagiscono per eseguire un'attività. Ogni agente nel flusso di lavoro può avere un proprio modello, strumenti e istruzioni.
Aprire il riquadro comandi (CTRL+MAIUSC+P).
Eseguire questo comando:
>Microsoft Foundry: Create a New Hosted Agent.Scegliere un framework, Framework Microsoft Agent o LangGraph.
Scegliere un modello, Single Agent Hotel Assistant o il flusso di lavoro dell'agente Writer-Reviewer (multi-agente).
Selezionare un linguaggio di programmazione.
Scegliere un modello, quello già distribuito nel progetto o esplorare il catalogo dei modelli.
Selezionare una cartella in cui si desidera salvare il nuovo flusso di lavoro.
I file per il progetto dell'agente ospitato vengono generati nella cartella selezionata in base al framework, al modello e al linguaggio selezionati per iniziare. È possibile rimuovere o modificare il codice in base alle esigenze.
Installare le dipendenze
Installare le dipendenze necessarie per il progetto dell'agente ospitato. Le dipendenze variano in base al linguaggio di programmazione selezionato al momento della creazione del progetto.
Creare un ambiente virtuale.
python -m venv .venvAttivare l'ambiente virtuale.
# PowerShell ./.venv/Scripts/Activate.ps1 # Windows cmd .venv\Scripts\activate.bat # Unix/MacOS source .venv/bin/activateInstallare il pacchetto seguente:
pip install azure-ai-agentserver-agentframework
Passare alla directory del progetto ed eseguire questo comando per ottenere i pacchetti NuGet necessari:
dotnet restore
Eseguire il flusso di lavoro ospitato in locale
Il progetto flusso di lavoro di esempio crea un file con estensione env con le variabili di ambiente necessarie. Creare o aggiornare il file .env con le credenziali Foundry:
PROJECT_ENDPOINT=https://<your-resource-name>.services.ai.azure.com/api/projects/<your-project-name>
MODEL_DEPLOYMENT_NAME=<your-model-deployment-name>
Importante
Non eseguire mai il commit del file .env nel controllo della versione. Aggiungerlo al .gitignore file.
Autenticare l'agente ospitato
L'esempio dell'agente ospitato esegue l'autenticazione usando DefaultAzureCredential. Configurare l'ambiente di sviluppo per fornire le credenziali tramite una delle origini supportate, ad esempio:
- interfaccia della riga di comando di Azure (
az login) - Accesso all'account di Visual Studio Code
- Accesso all'Account di Visual Studio
- Variabili di ambiente per un'entità servizio (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)
Verificare l'autenticazione in locale eseguendo i comandi interfaccia della riga di comando di Azure az account show o az account get-access-token prima di eseguire l'esempio.
È possibile eseguire l'agente ospitato in modalità interattiva o in modalità contenitore.
Esegui l'agente ospitato in Agent Inspector
Per eseguire l'agente ospitato in locale in Visual Studio Code, selezionare la chiave F5. Si apre l'Agent Inspector ed esegue la tua applicazione.
In questo modo:
-
Avvia il server agente: L'interfaccia della riga di comando incapsula il tuo agente
agentdevcome server HTTP sulla porta 8087, con debugpy collegato sulla porta 5679. -
Individuare gli agenti: L'interfaccia utente recupera agenti/flussi di lavoro disponibili da
/agentdev/entities. -
Esecuzione del flusso: Gli input di chat passano a
/v1/responses, che trasmette gli eventi tramite SSE per la visualizzazione in tempo reale. - Abilitare lo spostamento nel codice: Fare doppio clic sui nodi del flusso di lavoro per aprire il file di origine corrispondente nell'editor.
- Abilitare la chat con l'agente locale e visualizzare le risposte, raggiungere i punti di interruzione per il debug e così via.
Il progetto flusso di lavoro di esempio crea un file con estensione env con le variabili di ambiente necessarie. Creare o aggiornare il file .env con le credenziali Foundry:
Configurare le variabili di ambiente in base al sistema operativo:
$env:AZURE_AI_PROJECT_ENDPOINT="https://<your-resource-name>.services.ai.azure.com/api/projects/<your-project-name>" $env:AZURE_AI_MODEL_DEPLOYMENT_NAME="your-deployment-name"
Autenticare l'agente ospitato
L'esempio dell'agente ospitato esegue l'autenticazione usando DefaultAzureCredential. Configurare l'ambiente di sviluppo per fornire le credenziali tramite una delle origini supportate, ad esempio:
- interfaccia della riga di comando di Azure (
az login) - Accesso all'account di Visual Studio Code
- Accesso all'Account di Visual Studio
- Variabili di ambiente per un'entità servizio (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET)
Verificare l'autenticazione in locale eseguendo i comandi interfaccia della riga di comando di Azure az account show o az account get-access-token prima di eseguire l'esempio.
È possibile eseguire l'agente ospitato in modalità interattiva o in modalità contenitore.
Eseguire l'agente ospitato in modalità interattiva
Eseguire l'agente ospitato direttamente per lo sviluppo e il test:
dotnet restore
dotnet build
dotnet run
Eseguire l'agente ospitato in modalità contenitore
Suggerimento
Aprire il playground locale prima di avviare l'agente contenitore per assicurarsi che la visualizzazione funzioni correttamente.
Per eseguire l'agente in modalità contenitore:
- Aprire il riquadro comandi Visual Studio Code ed eseguire il comando
Microsoft Foundry: Open Container Agent Playground Locally. - Usare il comando seguente per inizializzare l'agente ospitato in contenitori.
dotnet restore dotnet build dotnet run - Invia una richiesta all'agente tramite l'interfaccia playground. Ad esempio, immettere un prompt come: "Crea uno slogan per un nuovo SUV elettrico che è conveniente e divertente da guidare".
- Esaminare la risposta dell'agente nell'interfaccia del playground.
Visualizzare l'esecuzione del flusso di lavoro dell'agente ospitato
Foundry Toolkit for Visual Studio Code fornisce un grafico di esecuzione in tempo reale che mostra come gli agenti nel flusso di lavoro interagiscono e collaborano. Abilitare l'osservabilità nel progetto per usare questa visualizzazione.
Aggiungere il riferimento seguente al file csproj:
<ItemGroup>
<PackageReference Include="OpenTelemetry" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="9.0.10" />
</ItemGroup>
Aggiornare il programma per includere il frammento di codice seguente:
using System.Diagnostics;
using OpenTelemetry;
using OpenTelemetry.Logs;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
var otlpEndpoint =
Environment.GetEnvironmentVariable("OTLP_ENDPOINT") ?? "http://localhost:4319";
var resourceBuilder = OpenTelemetry
.Resources.ResourceBuilder.CreateDefault()
.AddService("WorkflowSample");
var s_tracerProvider = OpenTelemetry
.Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(resourceBuilder)
.AddSource("Microsoft.Agents.AI.*") // All agent framework sources
.SetSampler(new AlwaysOnSampler()) // Ensure all traces are sampled
.AddOtlpExporter(options =>
{
options.Endpoint = new Uri(otlpEndpoint);
options.Protocol = OpenTelemetry.Exporter.OtlpExportProtocol.Grpc;
})
.Build();
Monitorare e visualizzare il flusso di lavoro dell'agente ospitato
Per monitorare e visualizzare l'esecuzione del flusso di lavoro dell'agente ospitato in tempo reale:
Aprire il riquadro comandi (CTRL+MAIUSC+P).
Eseguire questo comando:
>Microsoft Foundry: Open Visualizer for Hosted Agents.
Viene aperta una nuova scheda in VS Code per visualizzare il grafico di esecuzione. La visualizzazione viene aggiornata automaticamente man mano che il flusso di lavoro avanza, per mostrare il flusso tra gli agenti e le relative interazioni.
Conflitti di porta
Per i conflitti di porta, è possibile modificare la porta di visualizzazione impostandola nelle impostazioni dell'estensione Foundry. A tale scopo, seguire questa procedura:
- Nella barra laterale sinistra di VS Code selezionare l'icona a forma di ingranaggio per aprire il menu delle impostazioni.
- Selezionare
Extensions>Microsoft Foundry Configuration. - Individuare l'impostazione
Hosted Agent Visualization Porte modificarla in un numero di porta disponibile. - Riavviare VS Code per applicare le modifiche.
Modificare la porta nel codice
Per eventuali conflitti di porta, modificare la porta di visualizzazione impostando la FOUNDRY_OTLP_PORT variabile di ambiente. Aggiorna l'endpoint OTLP nel programma di conseguenza.
Ad esempio, per modificare la porta in 4318, usare questo comando:
$env:FOUNDRY_OTLP_PORT="4318"
Nel programma aggiornare l'endpoint OTLP per usare il nuovo numero di porta:
var otlpEndpoint =
Environment.GetEnvironmentVariable("OTLP_ENDPOINT") ?? "http://localhost:4318";
Distribuire l'agente ospitato
Dopo aver testato l'agente ospitato in locale, distribuirlo nell'area di lavoro Foundry in modo che altri membri e applicazioni del team possano usarlo.
Importante
Assicurarsi di concedere le autorizzazioni necessarie per distribuire gli agenti ospitati nell'area di lavoro Foundry, come indicato in Prerequisiti. Potrebbe essere necessario collaborare con l'amministratore Azure per ottenere le assegnazioni di ruolo necessarie.
- Aprire il riquadro comandi Visual Studio Code ed eseguire il comando
Microsoft Foundry: Deploy Hosted Agent. - Configurare le impostazioni di distribuzione selezionando l'area di lavoro di destinazione, specificando il file dell'agente contenitore (
container.py) e definendo eventuali altri parametri di distribuzione in base alle esigenze. - Al termine della distribuzione, l'agente ospitato viene visualizzato nella sezione
Hosted Agents (Preview)della visualizzazione albero dell'estensione Microsoft Foundry. - Selezionare l'agente distribuito per accedere a informazioni dettagliate e funzionalità di test usando l'interfaccia del playground integrato.
- Aprire il riquadro comandi Visual Studio Code ed eseguire il comando
Microsoft Foundry: Deploy Hosted Agent. - Configurare le impostazioni di distribuzione selezionando l'area di lavoro di destinazione, specificando il file dell'agente contenitore (
<your-project-name>.csproj) e definendo eventuali altri parametri di distribuzione in base alle esigenze. - Al termine della distribuzione, l'agente ospitato viene visualizzato nella sezione
Hosted Agents (Preview)della visualizzazione albero dell'estensione Microsoft Foundry. - Selezionare l'agente distribuito per accedere a informazioni dettagliate e funzionalità di test usando l'interfaccia del playground integrato.