Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie azd ai agent invoke, um Nachrichten an Ihren Agenten zu senden, entweder an die bereitgestellte Version in Microsoft Foundry oder an eine lokal ausgeführte Instanz. Sie erfahren, wie Sie einen Agent auswählen, direkte Endpunkte verwenden, Sitzungen verwalten, Dateien senden, Versionen anheften und unformatierte Antworten überprüfen.
Voraussetzungen
- Ein initialisiertes gehostetes Agentprojekt. Informationen zum Erstellen eines Projekts finden Sie unter Initialisieren eines Agentprojekts.
- Die azd Foundry-Erweiterungen sind installiert. Installationsschritte finden Sie unter Installieren der azd Foundry-Erweiterungen.
- Eine authentifizierte Azure Developer CLI-Sitzung. Führen Sie
azd auth loginbei Bedarf aus. - Für Remoteaufrufe ein bereitgestellter gehosteter Agent. Informationen zum Bereitstellen finden Sie unter Bereitstellen eines gehosteten Agents.
- Für den lokalen Aufruf ein ausgeführter lokaler Agent. Informationen zum Starten finden Sie unter Ausführen eines gehosteten Agents lokal mit der Azure Developer CLI.
- Um eine delegierte Endbenutzeridentität remote zu senden, ist die Berechtigung
Microsoft.CognitiveServices/accounts/AIServices/agents/endpoints/UserIdentityImpersonation/actionfür den Agenten erforderlich. Für diese Berechtigung ist eine benutzerdefinierte Rolle erforderlich; siehe Delegieren der Endbenutzeridentität.
Aufrufen des bereitgestellten Agents
Senden Sie einen Prompt an den bereitgestellten Agenten:
azd ai agent invoke "What is Microsoft Foundry?"
Aufrufen eines bestimmten Agents
Wenn Ihr Projekt mehrere Agents enthält, geben Sie an, welches aufgerufen werden soll:
azd ai agent invoke my-agent "What is Microsoft Foundry?"
Aufrufen eines bestimmten bereitgestellten Endpunkts
Wenn Sie einen bestimmten bereitgestellten Agenten aufrufen möchten, ohne von der aktiven azd-Umgebung oder azure.yaml abhängig zu sein, verwenden Sie --agent-endpoint, um direkt auf die URL des bereitgestellten Agenten zu verweisen. Dieses Muster ist nützlich aus einem Skript außerhalb des Projekts, von einem Codierungs-Agent oder wenn Sie eine bestimmte Agent-Version testen.
Geben Sie den bereitgestellten Agent-Endpunkt an:
azd ai agent invoke \ --agent-endpoint "https://my-project.services.ai.azure.com/api/projects/my-project/agents/release-summarizer/endpoint/protocols/openai/responses?api-version=v1" \ "Summarize today's release notes."Kopieren Sie den Callable-Protokollendpunkt von
azd ai agent showoderazd ai agent endpoint show. Eine Versionsverwaltungs-URL, die mit/versions/3endet, ist kein Aufrufendpunkt.--agent-endpointumgeht die azd-Umgebung und dieazure.yaml-Auflösung.
Lokal aufrufen
Aufrufen eines lokalen Agents:
azd ai agent invoke --local "Hello!"Der Agent muss bereits mit
azd ai agent runin einem anderen Terminal laufen.
Über einen benutzerdefinierten lokalen Port aufrufen
Wenn Ihr Agent auf einem anderen als dem Standardport ausgeführt wird, geben Sie
--portan:azd ai agent invoke --local --port 9090 "Hello!"
Auswählen eines Protokolls
Wenn Sie --protocol weglassen, verwendet die CLI vollständige bereitgestellte Endpunktdaten, wenn verfügbar, und dann die Agentdefinition. Wenn es nicht genau ein aufrufbares Protokoll identifizieren kann, geben Sie --protocol explizit an. Stellen Sie erneut bereit, um Endpunktdaten zu aktualisieren, die von älteren Erweiterungen gespeichert wurden.
-
responses-- sendet eine standardmäßige OpenAI-Antwort-API-Anforderung mit{"input": "your message"}. Aufgezeichnete Unterhaltungen werden automatisch verwaltet. -
invocations-- sendet jede beliebige Payload, die Ihr Agentcode erwartet. Verwenden Sie--input-file(-f) mit einer JSON-Datei, die dem vom Handler definierten Schema entspricht. -
a2a-- ruft einen bereitgestellten Agent-zu-Agent-Endpunkt auf. Übergeben Sie eine Nachricht, oder verwenden Sie--input-filemit einer vollständigen JSON-RPC-Anforderung. Dieses Protokoll unterstützt--localnicht.
Überprüfen Sie bei invocations-Agents die Infodatei des Beispiels, oder überprüfen Sie den Handler-Einstiegspunkt, um die erwartete Nutzlast zu verstehen.
Wenn Ihr Agent mehrere Protokolle implementiert, übergeben Sie
--protocol(-p), um auszuwählen:azd ai agent invoke --protocol invocations -f request.json
Einschränkungen des VoIP-Agents
azd ai agent invoke implementiert keine Sprachunterhaltungen. Wenn azure.yaml den ausgewählten Dienst als prompt-voice oder voice identifiziert, gibt der Befehl voice agents cannot be invoked with this command zurück und führt Sie zum Foundry portal.
Diese Einschränkung gilt auch für einen Sprachwrapper, der conversationEngine verwendet, um auf ein gehostetes Ziel zu verweisen. Durch die Auswahl --protocol responses wird die Sprachdienstprüfung nicht umgangen.
Verwenden Sie den Playground, um einen VoIP-Agent zu testen, wie in der Schnellstartanleitung des Sprach-Agents beschrieben.
Verwalten von Sitzungen
Die CLI speichert Die Sitzungs- und Unterhaltungsauswahl lokal pro Agent. Eine Sitzung behält den Sandbox-Status bei, z. B. hochgeladene Dateien. Für das Responses-Protokoll behält eine Unterhaltung den Nachrichtenverlauf bei. Die bloße Wiederverwendung einer Sitzung stellt für das Invocations-Protokoll keinen Gesprächsverlauf bereit.
Starten einer neuen Sitzung
Verwerfen Sie die gespeicherte Sitzung, und beginnen Sie neu:
azd ai agent invoke --new-session "Start fresh"
Verwenden einer bestimmten Sitzungs-ID
Übergeben Sie eine vorhandene Sitzungs-ID:
azd ai agent invoke --session-id my-session-123 "Continue conversation"
Unterhaltungsverlauf separat auswählen
Starten Sie für das Antwortprotokoll eine neue Unterhaltung mit --new-conversation, oder setzen Sie eine bekannte Unterhaltung mit --conversation-id fort:
azd ai agent invoke --new-conversation "Start a new topic"
azd ai agent invoke --conversation-id <conversation-id> "Continue this topic"
--new-session setzt auch die gespeicherte Unterhaltung zurück. Informationen zum Unterschied zwischen Konversationsverlauf und Sandkastenstatus finden Sie unter Verwalten gehosteter Agentsitzungen.
Senden einer Datei als Eingabe
Übergeben Sie für strukturierte oder große Nutzlasten, insbesondere mit dem invocations Protokoll, eine JSON-Datei.
Senden einer Datei:
azd ai agent invoke -f request.jsonOder senden Sie eine Datei an einen bestimmten Agent:
azd ai agent invoke my-agent -f request.json
Bereitgestellte Version aufrufen
Wenn ein Agent über mehrere bereitgestellten Versionen verfügt, fixieren Sie eine bestimmte mit --version.
azd erstellt oder verwendet eine Sitzung wieder, die dieser Version zugeordnet ist, sodass jede Version ihren eigenen Konversationszustand beibehält.
Anheften einer Version:
azd ai agent invoke --version 3 "Use the v3 prompt"--versionkann nicht mit--localoder--session-idkombiniert werden, weil Sitzungen bei ihrer Erstellung an eine Version gebunden werden.
Festlegen eines benutzerdefinierten Timeouts
Geben Sie ein Timeout in Sekunden an:
azd ai agent invoke --timeout 300 "Process this large dataset"Das Standardtimeout beträgt 1800 Sekunden (30 Minuten). Verwenden Sie
--timeout 0für kein Timeout.
Übergeben Sie eine Endbenutzeridentität
Übergeben Sie --user-identity, um eine Anfrage im Auftrag eines Endbenutzers zu senden. Sendet für Remoteanforderungen azd den Wert im x-ms-user-identity Header. Die Kennzeichnung funktioniert mit den Protokollen „Antworten“, „Aufrufe“ und „A2A“.
Die Anfrage wird weiterhin mit den Microsoft Entra-Anmeldeinformationen des Aufrufers authentifiziert. Die Kopfzeile identifiziert den repräsentierten Benutzer; sie ersetzt die Authentifizierung nicht und erteilt nicht die in den Voraussetzungen aufgeführte Delegierungsberechtigung.
Endbenutzeridentität an den bereitgestellten Agenten senden:
azd ai agent invoke my-agent \ --user-identity "user-123" \ "Hello!"Ersetzen Sie den
user-123Wert durch einen stabilen Bezeichner für den authentifizierten Endbenutzer. Bei jedem Aufruf--user-identityeinschließen; die Kennzeichnung ist standardmäßig leer. Ohne diese Angabe verwendet Foundry die eigene Identität des Aufrufers.
azd Speichert Sitzungs- und Unterhaltungs-IDs pro Agent und nicht pro --user-identity Wert. Das Ändern der Identität führt nicht zur Auswahl eines anderen gespeicherten Zustands. Wenn Sie Benutzer mit dem Responses-Protokoll wechseln, starten Sie eine neue Sitzung und Konversation:
azd ai agent invoke my-agent --protocol responses \
--user-identity "user-456" \
--new-session --new-conversation \
"Start a conversation for this user"
Wenn Sie den vorhandenen Responses-Status eines Benutzers fortsetzen möchten, übergeben Sie die --session-id und --conversation-id dieses Benutzers mit demselben --user-identity. Verwenden Sie die Konversations-ID eines anderen Benutzers nicht erneut.
Verwenden Sie --user-identity, nicht --client-header, für x-ms-user-identity. Das --client-header Flag akzeptiert nur x-client-* Namen und lehnt Identitätsheader ab.
Informationen zu Bezeichneranforderungen und Isolationsverhalten finden Sie unter Gehostete Agentsitzungen pro Benutzer isolieren. Aktuelle Versionen der Agents-Erweiterung akzeptieren die früheren --user-isolation-key, --chat-isolation-keyoder --isolation-key Flags nicht.
Identität an einen lokalen Agenten übergeben
Mit --local, azd sendet denselben Flagwert wie x-agent-user-id anstelle von x-ms-user-identity:
azd ai agent invoke my-agent --local \
--user-identity "user-123" \
"Hello!"
Verwenden Sie diesen Header, um zu testen, wie Ihr lokaler Agent den Benutzerkontext verarbeitet. Lokale Ausführungen erzwingen die Isolations- oder Delegierungsberechtigungen von Foundry nicht.
Anwendungsspezifische Header senden
Verwenden Sie wiederholbare --client-header "Name: Value" Flags für Anforderungsmetadaten, z. B. eine Korrelations-ID oder Mandantenbezeichnung:
azd ai agent invoke \
--client-header "x-client-request-id: request-123" \
--client-header "x-client-tenant: contoso" \
"Hello!"
Nur x-client-* Headernamen werden akzeptiert. Die Endpunkte Responses und Invocations leiten diese Header an Ihren Agent weiter. Das A2A-Protokoll unterstützt dieses Flag nicht. Verwenden Sie --user-identity, nicht --client-header, für Identitätsdelegierung.
Arbeit nach dem Trennen des Clients ausführen
Für das Responses-Protokoll startet --long-running dienstseitige Hintergrundarbeit. Der Befehl bleibt bis zum Abschluss angefügt, es sei denn, Sie übergeben auch --no-wait:
azd ai agent invoke --long-running --no-wait "Run the long task"
Der Befehl kehrt zurück, nachdem er die vom Dienst zugewiesene Antwort-ID empfängt. Überprüfen, verfolgen oder die Stornierung dieser Arbeit anfordern:
azd ai agent invocations show --protocol responses
azd ai agent invocations follow --protocol responses
azd ai agent invocations cancel --protocol responses
Diese Befehle verwenden standardmäßig die neueste gespeicherte ID für den ausgewählten Agent und das ausgewählte Protokoll. Übergeben Sie --id <response-id>, um eine andere Antwort als Ziel festzulegen, ohne diese Auswahl zu ändern. Verwenden Sie --agent-name oder --agent-endpoint, um ein Ziel auszuwählen, und wiederholen Sie --user-identity für delegierte Anforderungen. Ein direkter Endpunkt identifiziert das Protokoll; kombinieren Sie ihn nicht mit --protocol oder --agent-name.
Die Funktion „Antworten“ unterstützt show, follow und cancel. Aufrufe unterstützen show und cancel, aber nicht follow. A2A unterstützt diese Lebenszyklusbefehle nicht. Der Dienst kann Vorgänge ablehnen, die ein einzelner Agent nicht implementiert.
Die Hintergrundausführung aktiviert keine Absturzwiederherstellung oder automatische Wiederverbindung. Konfigurieren Sie das Wiederherstellungsverhalten des Agents separat; siehe "Wiederherstellung lang ausgeführter Arbeit nach einem Absturz".
Plattformlatenz überprüfen
Response- und Invocation-Anfragen von Remote-Hosted-Agent sammeln standardmäßig Plattformlatenzdiagnosen. Wenn der Dienst Timing-Header zurückgibt, zeigt die CLI eine Zusammenfassung an. Deaktivieren Sie die Erfassung und die Zusammenfassung über --debug-latency=false.
Lokale Aufrufe, Prompt-Agent und A2A-Aufrufe sammeln keine Plattformlatenz. Die explizite Angabe --debug-latency=true wird für diese Routen nicht akzeptiert. Diese Einstellung ist unabhängig von dem globalen --debug Flag.
Überprüfen der unformatierten HTTP-Antwort
Wenn Sie genau sehen müssen, was der Server zurückgegeben hat, einschließlich Response-Headern wie der Agent-Version, der Statuszeile und dem unveränderten Body, übergeben Sie --output raw (-o raw).
Rohausgabe anfordern:
azd ai agent invoke --output raw "Hello!"Im unformatierten Modus werden benutzerfreundliche Sammelzeilen wie
Session:undInvocation:unterdrückt, und die HTTP-Antwort wird verbatim gedumpt. Dieser Modus ist nützlich für das Debuggen des Serververhaltens und die Bestätigung, welche Agentversion den Anruf verarbeitet hat.
Verwandte Inhalte
- Isolieren Sie gehostete Agent-Sitzungen pro Benutzer zur benutzerspezifischen Isolation in Mehrmandanten-Agents.
- Führen Sie einen gehosteten Agent lokal mit der Azure Developer CLI aus, um Ihren Agent für die lokale Entwicklung zu starten.
- Überwachen Sie die Protokolle des gehosteten Agents mit der Azure Developer CLI, um das bereitgestellte Agentverhalten zu prüfen.