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.
Usare azd ai agent invoke per inviare messaggi all'agente, ovvero la versione distribuita in Microsoft Foundry o un'istanza in esecuzione in locale. Imparerai come scegliere un agente, usare endpoint diretti, gestire le sessioni, inviare file, bloccare le versioni e controllare le risposte grezze.
Prerequisiti
- Progetto di agente ospitato inizializzato. Per crearne uno, vedere Inizializzare un progetto di agente.
- Le estensioni azd di Foundry installate. Per la procedura di installazione, vedere Installare le estensioni azd Foundry.
- Una sessione autenticata di Azure Developer CLI. Eseguire
azd auth loginse necessario. - Per la chiamata remota, un agente ospitato distribuito. Per distribuirne una, vedere Distribuire un agente ospitato.
- Per la chiamata locale, un agente locale in esecuzione. Per avviarne uno, vedere Eseguire un agente ospitato in locale con l'interfaccia della riga di comando per sviluppatori di Azure.
- Per inviare un'identità dell'utente finale delegata in modalità remota, l'agente deve disporre dell'autorizzazione
Microsoft.CognitiveServices/accounts/AIServices/agents/endpoints/UserIdentityImpersonation/action. Questa autorizzazione richiede un ruolo personalizzato; vedere Delegare l'identità dell'utente finale.
Richiamare l'agente distribuito
Inviare un prompt all'agente distribuito:
azd ai agent invoke "What is Microsoft Foundry?"
Richiamare un agente specifico
Se il progetto contiene più agenti, specificare quale richiamare:
azd ai agent invoke my-agent "What is Microsoft Foundry?"
Richiamare un endpoint distribuito specifico
Quando si vuole richiamare un agente distribuito specifico senza dipendere dall'ambiente azd attivo o azure.yaml, usare --agent-endpoint per puntare direttamente all'URL dell'agente distribuito. Questo modello è utile da uno script esterno al progetto, da un agente di codifica o quando si testa una versione specifica dell'agente.
Specifica l'endpoint dell'agente distribuito:
azd ai agent invoke \ --agent-endpoint https://my-project.services.ai.azure.com/api/projects/my-project/agents/release-summarizer/versions/3 \ "Summarize today's release notes."--agent-endpointsostituisce l'ambiente azd e la risoluzione diazure.yaml, quindi non è necessario essere all'interno della directory di progetto azd per usarlo.
Invoca localmente
Richiamare un agente locale:
azd ai agent invoke --local "Hello!"L'agente deve essere già in esecuzione con
azd ai agent runin un altro terminale.
Invocare su una porta locale personalizzata
Se l'agente è in esecuzione su una porta non predefinita, passare
--port:azd ai agent invoke --local --port 9090 "Hello!"
Scegliere un protocollo
Il protocollo utilizzato per invoke è determinato dal protocols campo del azure.ai.agent servizio in azure.yaml.
-
responses-- invia una richiesta API OpenAI Responses standard con{"input": "your message"}. La cronologia delle conversazioni viene gestita automaticamente. -
invocations- invia qualsiasi payload previsto dal codice dell'agente. Usare--input-file(-f) con un file JSON corrispondente allo schema definito dal gestore.
Per gli agenti invocations, consultare il file LEGGIMI dell’esempio o esaminare il punto di ingresso del gestore per capire il payload previsto.
Se l'agente implementa più protocolli, passare
--protocol(-p) per scegliere:azd ai agent invoke --protocol invocations -f request.json
Limitazioni dell'agente vocale
azd ai agent invoke non implementa conversazioni vocali. Quando azure.yaml identifica il servizio selezionato come voice o prompt-voice, il comando restituisce voice agents cannot be invoked with this command e reindirizza al portale Foundry.
Questa restrizione si applica anche a un wrapper vocale che usa conversationEngine per fare riferimento a una destinazione ospitata. Selezionando --protocol responses non si aggira il controllo del servizio voce.
Usa il playground per testare un agente vocale, come descritto nella guida introduttiva all'agente vocale.
Gestire le sessioni
Le sessioni vengono salvate in modo permanente per agente. Quando si richiama un agente, salva l'ID sessione in locale, azd quindi la successiva invoke continua automaticamente la stessa sessione e mantiene la cronologia delle conversazioni tra le chiamate.
Avviare una nuova sessione
Rimuovere la sessione salvata e iniziare a eseguire le operazioni seguenti:
azd ai agent invoke --new-session "Start fresh"
Usare un ID sessione specifico
Passa un ID di sessione esistente:
azd ai agent invoke --session-id my-session-123 "Continue conversation"
Inviare un file come input
Per payload strutturati o di grandi dimensioni, in particolare con il invocations protocollo, passare un file JSON.
Inviare un file:
azd ai agent invoke -f request.jsonIn alternativa, inviare un file a un agente specifico:
azd ai agent invoke my-agent -f request.json
Invocare una versione distribuita
Quando un agente dispone di più versioni distribuite, aggiungerne una specifica con --version.
azd crea o riutilizza una sessione supportata da tale versione, in modo che ogni versione mantenga il proprio stato di conversazione.
Aggiungere una versione:
azd ai agent invoke --version 3 "Use the v3 prompt"--versionnon può essere combinato con--localo--session-idperché le sessioni sono associate a una versione al momento della creazione.
Impostare un timeout personalizzato
Passare un timeout in secondi:
azd ai agent invoke --timeout 300 "Process this large dataset"Il timeout predefinito è 1800 secondi (30 minuti). Utilizzare
--timeout 0per non impostare alcun timeout.
Passare un'identità utente finale
Passare --user-identity per inviare una richiesta per conto di un utente finale. Per le richieste remote, azd invia il valore nell'intestazione x-ms-user-identity . Il flag funziona con i protocolli Risposte, Chiamate e A2A.
La richiesta viene comunque autenticata con le credenziali Microsoft Entra del chiamante. L'intestazione identifica l'utente rappresentato; non sostituisce l'autenticazione o concede l'autorizzazione di delega elencata nei prerequisiti.
Inviare un'identità dell'utente finale all'agente distribuito:
azd ai agent invoke my-agent \ --user-identity "user-123" \ "Hello!"Sostituire
user-123con un identificatore stabile per l'utente finale autenticato. Includere--user-identityin ogni chiamata; il flag è vuoto per impostazione predefinita. Senza di esso, Foundry usa l'identità del chiamante.
azd salva gli ID sessione e conversazione per agente, non per --user-identity valore. La modifica dell'identità non seleziona uno stato salvato diverso. Quando si cambia utente con il protocollo Risposte, avviare una nuova sessione e una nuova conversazione:
azd ai agent invoke my-agent --protocol responses \
--user-identity "user-456" \
--new-session --new-conversation \
"Start a conversation for this user"
Per riprendere lo stato Risposte esistente di un utente, passare i valori --session-id e --conversation-id di quell'utente insieme allo stesso valore di --user-identity. Non riutilizzare l'ID conversazione di un altro utente.
Usare --user-identity, non --client-header, per x-ms-user-identity. Il --client-header flag accetta solo nomi x-client-* e rifiuta gli header identity.
Per i requisiti di identificatore e il comportamento di isolamento, vedere Isolare le sessioni dell'agente ospitato per utente. Le versioni correnti dell'estensione agenti non accettano i precedenti flag --chat-isolation-key, --isolation-key o --user-isolation-key.
Passare l'identità a un agente locale
Con --local, azd invia lo stesso valore del flag di x-agent-user-id invece di x-ms-user-identity:
azd ai agent invoke my-agent --local \
--user-identity "user-123" \
"Hello!"
Usare questa intestazione per testare il modo in cui l'agente locale gestisce il contesto utente. Le esecuzioni locali non applicano le autorizzazioni di isolamento o delega di Foundry.
Esaminare la risposta HTTP non elaborata
Quando è necessario visualizzare esattamente ciò che il server ha restituito, comprese intestazioni di risposta come la versione dell'agente, la riga di stato e il corpo non modificato, specificare --output raw (-o raw).
Richiedi output non elaborato:
azd ai agent invoke --output raw "Hello!"In modalità raw, le righe di riepilogo intuitive come
Session:eInvocation:vengono soppresse e la risposta HTTP viene riportata integralmente. Questa modalità è utile per il debug del comportamento del server e la conferma della versione dell'agente che ha gestito la chiamata.
Contenuti correlati
- Isolare le sessioni degli agenti ospitati per utente per l'isolamento per utente negli agenti multi-tenant.
- Eseguire un agente ospitato in locale con l'interfaccia della riga di comando per sviluppatori Azure per avviare l'agente per lo sviluppo locale.
- Monitorare i log dell'agente ospitato con l'interfaccia della riga di comando per sviluppatori Azure per controllare il comportamento dell'agente distribuito.