Zurückgeben der Steuerung an den Agent-Entwickler durch Senden der abgerufenen Informationen in einer InvokeAgent-Antwort - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zurückgeben der Steuerung an den Agent-Entwickler durch Senden der abgerufenen Informationen in einer InvokeAgent-Antwort

Anstatt die Informationen, die Ihr Agent beim Benutzer abgefragt hat, zur Erfüllung an eine Lambda-Funktion zu senden, können Sie stattdessen die Steuerung an den Agent-Entwickler zurückzugeben, indem Sie die Informationen in der InvokeAgent-Antwort senden. Sie können die Rückgabe der Steuerung an den Agent-Entwickler konfigurieren, wenn Sie eine Aktionsgruppe erstellen oder aktualisieren. Über die API geben Sie RETURN_CONTROL als customControl-Wert im actionGroupExecutor-Objekt in einer CreateAgentActionGroup- oder UpdateAgentActionGroup-Anfrage an. Weitere Informationen finden Sie unter Hinzufügen einer Aktionsgruppe zu Ihrem Agenten in Amazon Bedrock.

Wenn Sie die Rückgabe der Steuerung für eine Aktionsgruppe konfigurieren und laut Agent eine Aktion in dieser Aktionsgruppe aufgerufen werden soll, werden die vom Benutzer abgerufenen API- oder Funktionsdetails zusammen mit einer eindeutigen invocationId im Feld invocationInputs der InvokeAgent-Antwort zurückgegeben. Sie können dann Folgendes durchführen:

  • Richten Sie Ihre Anwendung so ein, dass sie die von Ihnen definierte API oder Funktion aufruft, vorausgesetzt, dass die Informationen in den invocationInputs zurückgegeben wurden.

  • Senden Sie die Ergebnisse des Aufrufs Ihrer Anwendung in einer anderen InvokeAgent-Anfrage, im Feld sessionState, um Kontext für den Agenten bereitzustellen. Sie müssen dieselbe invocationId und actionGroup verwenden, die in der InvokeAgent-Antwort zurückgegeben wurden. Diese Informationen können als Kontext für die weitere Orchestrierung verwendet, zur Nachbearbeitung gesendet werden, damit der Agent eine Antwort formatieren kann, oder direkt in der Antwort des Agenten an den Benutzer verwendet werden.

    Anmerkung

    Wenn Sie returnControlInvocationResults in das Feld sessionState aufnehmen, wird das Feld inputText ignoriert.

Informationen dazu, wie Sie die Rückgabe der Steuerung an den Agent-Entwickler beim Erstellen der Aktionsgruppe konfigurieren, finden Sie unter Hinzufügen einer Aktionsgruppe zu Ihrem Agenten in Amazon Bedrock.

Beispiel für die Rückgabe der Steuerung an den Agent-Entwickler

Sie könnten beispielsweise über die folgenden Aktionsgruppen verfügen:

  • Eine PlanTrip-Aktionsgruppe mit einer suggestActivities-Aktion, die Ihre Benutzern beim Suchen von Aktivitäten unterstützt, die sie während einer Reise unternehmen können. Die description für diese Aktion lautet This action suggests activities based on retrieved weather information.

  • Eine WeatherAPIs-Aktionsgruppe mit einer getWeather-Aktion, die Ihrem Benutzer hilft, die Wetterdaten für einen bestimmten Ort abzurufen. Die erforderlichen Parameter der Aktion lauten location und date. Die Aktionsgruppe ist so konfiguriert, dass sie die Steuerung an den Agent-Entwickler zurückgibt.

Nachfolgend finden Sie eine hypothetische Sequenz, die auftreten könnte:

  1. Der Benutzer fordert Ihren Agenten mit der folgenden Abfrage auf: What should I do today? Diese Abfrage wird im Feld inputText einer InvokeAgent-Anfrage gesendet.

  2. Ihr Agent erkennt, dass die Aktion suggestActivities aufgerufen werden sollte, sagt aber anhand der Beschreibung voraus, dass er zuerst die Aktion getWeather als Kontext zur Ausführung der Aktion suggestActivities aufrufen sollte.

  3. Der Agent weiß, dass das aktuelle date 2024-09-15 lautet, benötigt jedoch den location des Benutzers als erforderlichen Parameter, um die Wetterdaten zu ermitteln. Der Benutzer wird erneut zur Beantwortung der Frage „Wo befinden Sie sich?“ aufgefordert.

  4. Der Benutzer antwortet Seattle.

  5. Der Agent gibt die Parameter für getWeather in der folgenden InvokeAgent-Antwort zurück (wählen Sie eine Registerkarte aus, um Beispiele für eine mit dieser Methode definierte Aktionsgruppe anzuzeigen):

    Function details
    HTTP/1.1 200 x-amzn-bedrock-agent-content-type: application/json x-amz-bedrock-agent-session-id: session0 Content-type: application/json { "returnControl": { "invocationInputs": [{ "functionInvocationInput": { "actionGroup": "WeatherAPIs", "function": "getWeather", "parameters": [ { "name": "location", "type": "string", "value": "seattle" }, { "name": "date", "type": "string", "value": "2024-09-15" } ] } }], "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172" } }
    OpenAPI schema
    HTTP/1.1 200 x-amzn-bedrock-agent-content-type: application/json x-amz-bedrock-agent-session-id: session0 Content-type: application/json { "invocationInputs": [{ "apiInvocationInput": { "actionGroup": "WeatherAPIs", "apiPath": "/get-weather", "httpMethod": "get", "parameters": [ { "name": "location", "type": "string", "value": "seattle" }, { "name": "date", "type": "string", "value": "2024-09-15" } ] } }], "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad" }
  6. Ihre Anwendung ist so konfiguriert, dass sie diese Parameter verwendet, um das Wetter für seattle für das Datum 2024-09-15 abzurufen. Das Wetter wird voraussichtlich regnerisch sein.

  7. Sie senden diese Ergebnisse im Feld sessionState einer anderen InvokeAgent-Anfrage und verwenden dabei dieselbe invocationId, actionGroup und function wie bei der vorherigen Antwort. Wählen Sie eine Registerkarte aus, um Beispiele für eine Aktionsgruppe anzuzeigen, die mit dieser Methode definiert wurde:

    Function details
    POST https://bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text { "enableTrace": true, "sessionState": { "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172", "returnControlInvocationResults": [{ "functionResult": { "actionGroup": "WeatherAPIs", "function": "getWeather", "responseBody": { "TEXT": { "body": "It's rainy in Seattle today." } } } }] } }
    OpenAPI schema
    POST https: //bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text { "enableTrace": true, "sessionState": { "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad", "returnControlInvocationResults": [{ "apiResult": { "actionGroup": "WeatherAPIs", "httpMethod": "get", "apiPath": "/get-weather", "responseBody": { "application/json": { "body": "It's rainy in Seattle today." } } } }] } }
  8. Der Agent sagt voraus, dass die Aktion suggestActivities aufgerufen werden soll. Er nutzt den Kontext, dass es an diesem Tag regnet, und schlägt dem Benutzer in der Antwort Indoor- anstelle von Outdoor-Aktivitäten vor.

Beispiel für die Rückgabe der Steuerung an den Partner-Agent

Wenn Sie die Zusammenarbeit mehrerer Agenten verwenden und ein Agent-Partner die Steuerung durch Senden der Informationen in der InvokeAgent-Antwort zurückgibt, werden die Informationen in der Antwort des Supervisor-Agenten mit den zusätzlichen Kennungen agentId und collaboratorName zurückgegeben. Wählen Sie eine Registerkarte aus, um Beispiele für eine Aktionsgruppe anzuzeigen, die mit dieser Methode definiert wurde:

Function details
HTTP/1.1 200 x-amzn-bedrock-agent-content-type: application/json x-amz-bedrock-agent-session-id: session0 Content-type: application/json { "returnControl": { "invocationInputs": [{ "functionInvocationInput": { "agentId": "AGENTID", "collaboratorName": "WeatherAgent" "actionGroup": "WeatherAPIs", "function": "getWeather", "parameters": [ { "name": "location", "type": "string", "value": "seattle" }, { "name": "date", "type": "string", "value": "2024-09-15" } ] } }], "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172" } }
OpenAPI Schema
HTTP/1.1 200 x-amzn-bedrock-agent-content-type: application/json x-amz-bedrock-agent-session-id: session0 Content-type: application/json { "invocationInputs": [{ "apiInvocationInput": { "actionGroup": "WeatherAPIs", "agentId": "AGENTID", "collaboratorName": "WeatherAgent" "apiPath": "/get-weather", "httpMethod": "get", "parameters": [ { "name": "location", "type": "string", "value": "seattle" }, { "name": "date", "type": "string", "value": "2024-09-15" } ] } }], "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad" }

Der Aufrufer des Supervisor-Agenten sendet die Ergebnisse im Feld sessionState zurück an den Supervisor-Agenten mit der entsprechenden agentId, damit sie an den richtigen Agent-Partner übertragen werden.

Function details
POST https://bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text { "enableTrace": true, "sessionState": { "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172", "returnControlInvocationResults": [{ "functionResult": { "agentId": "AGENTID", "actionGroup": "WeatherAPIs", "function": "getWeather", "responseBody": { "TEXT": { "body": "It's rainy in Seattle today." } } } }] } }
OpenAPI Schema
POST https: //bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text { "enableTrace": true, "sessionState": { "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad", "returnControlInvocationResults": [{ "apiResult": { "agentId": "AGENTID", "actionGroup": "WeatherAPIs", "httpMethod": "get", "apiPath": "/get-weather", "responseBody": { "application/json": { "body": "It's rainy in Seattle today." } } } }] } }