Hinzufügen einer Aktionsgruppe zu Ihrem Agenten in Amazon Bedrock - 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.

Hinzufügen einer Aktionsgruppe zu Ihrem Agenten in Amazon Bedrock

Nachdem Sie das OpenAPI-Schema und die Lambda-Funktion für Ihre Aktionsgruppe eingerichtet haben, können Sie die Aktionsgruppe erstellen. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte aus:

Anmerkung

Wenn Sie Anthropic Claude 3.5 Sonnet verwenden, stellen Sie sicher, dass Ihr Toolname, der die Form httpVerb__actionGroupName__apiName hat, dem Anthropic-Toolnamenformat ^[a-zA-Z0-9_-]{1,64}$ entspricht. Ihr actionGroupName und Ihr apiName dürfen keine doppelten Unterstriche '__' enthalten.

Console

Wenn Sie einen Agenten erstellen, können Sie dem Arbeitsentwurf Aktionsgruppen hinzufügen.

Nachdem ein Agent erstellt wurde, können Sie ihm Aktionsgruppen hinzufügen, indem Sie die folgenden Schritte ausführen:

So fügen Sie einem Agenten eine Aktionsgruppe hinzu
  1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die zur Verwendung der Amazon-Bedrock-Konsole berechtigt ist. Öffnen Sie dann die Amazon-Bedrock-Konsole unter https://console.aws.amazon.com/bedrock.

  2. Wählen Sie im linken Navigationsbereich Agenten aus. Wählen Sie im Abschnitt Agenten einen Agenten aus.

  3. Wählen Sie In Agent Builder bearbeiten aus.

  4. Wählen Sie im Abschnitt Aktionsgruppen die Option Hinzufügen aus.

  5. (Optional) Ändern Sie im Abschnitt Einzelheiten zur Aktionsgruppe den automatisch generierten Namen und geben Sie optional eine Beschreibung für Ihre Aktionsgruppe ein.

  6. Wählen Sie im Abschnitt Aktionsgruppentyp eine der folgenden Methoden zur Definition der Parameter aus, die der Agent bei Benutzern zur Unterstützung der Ausführung von Aktionen abfragen kann:

    1. Mit Funktionsdetails definieren – Definieren Sie Parameter, die Ihr Agent beim Benutzer zur Ausführung der Aktionen abfragen soll. Weitere Informationen zum Hinzufügen von Funktionen finden Sie unter Definieren der Funktionsdetails für die Aktionsgruppen Ihres Agenten in Amazon Bedrock.

    2. Mit API-Schemas definieren – Definieren Sie die API-Operationen, die der Agent aufrufen kann, und die Parameter. Verwenden Sie ein von Ihnen erstelltes OpenAPI-Schema oder den Konsolentexteditor, um das Schema zu erstellen. Weitere Informationen zum Einrichten eines OpenAPI-Schemas finden Sie unter Definieren von OpenAPI-Schemas für die Aktionsgruppen Ihres Agenten in Amazon Bedrock.

  7. Im Abschnitt Aktionsgruppenaufruf legen Sie fest, was der Agent tut, nachdem er die API oder Funktion, die er aufrufen soll, vorhergesagt und die benötigten Parameter erhalten hat. Wählen Sie eine der folgenden Optionen aus:

    • Schnell eine neue Lambda-Funktion erstellen – Empfohlen – Lassen Sie Amazon Bedrock eine grundlegende Lambda-Funktion für Ihren Agenten erstellen, die Sie später in AWS Lambda für Ihren Anwendungsfall ändern können. Der Agent übergibt die API oder Funktion, die er vorhersagt, und die auf der Sitzung basierenden Parameter an die Lambda-Funktion.

    • Eine vorhandene Lambda-Funktion auswählen – Wählen Sie eine Lambda-Funktion, die Sie zuvor in AWS Lambda erstellt haben, und die zu verwendende Version der Funktion. Der Agent übergibt die API oder Funktion, die er vorhersagt, und die auf der Sitzung basierenden Parameter an die Lambda-Funktion.

      Anmerkung

      Wenn Sie dem Service-Prinzipal von Amazon Bedrock den Zugriff auf die Lambda-Funktion ermöglichen möchten, hängen Sie der Lambda-Funktion eine ressourcenbasierte Richtlinie an.

    • Kontrolle zurückgeben – Anstatt die vorhergesagten Parameter für die API oder Funktion an die Lambda-Funktion zu übergeben, gibt der Agent die Kontrolle an Ihre Anwendung zurück. Er übergibt in der InvokeAgent-Antwort die Aktion, von der er vorhersagt, dass sie aufgerufen werden sollte, zusätzlich zu den Parametern und Informationen für die Aktion, die er in der Sitzung ermittelt hat. Weitere Informationen finden Sie unter Zurückgeben der Steuerung an den Agent-Entwickler durch Senden der abgerufenen Informationen in einer InvokeAgent-Antwort.

  8. Abhängig von Ihrer Wahl für den Aktionsgruppentyp wird einer der folgenden Abschnitte angezeigt:

    • Wenn Sie Mit Funktionsdetails definieren ausgewählt haben, steht Ihnen der Abschnitt Aktionsgruppenfunktion zur Verfügung. Gehen Sie wie folgt vor, um die Funktion zu definieren:

      1. Geben Sie einen Namen und eine optionale (aber empfohlene) Beschreibung ein.

      2. Um vor dem Aufruf der Funktion eine Bestätigung vom Benutzer anzufordern, wählen Sie Aktiviert aus. Das Anfordern einer Bestätigung, bevor die Funktion aufgerufen wird, kann Ihre Anwendung davor schützen, aufgrund bösartiger Promptinjektionen Maßnahmen zu ergreifen.

      3. Wählen Sie im Unterabschnitt Parameter die Option Parameter hinzufügen aus. Definieren Sie die folgenden Felder:

        Feld Beschreibung
        Name Geben Sie einen Namen für den Parameter an.
        Description (optional) Beschreiben Sie den Parameter.
        Typ Geben Sie den Datentyp des Parameters an.
        Erforderlich Geben Sie an, ob der Agent den Parameter vom Benutzer verlangt.
      4. Wenn Sie einen weiteren Parameter hinzufügen möchten, wählen Sie Parameter hinzufügen aus.

      5. Wenn Sie ein Feld in einem Parameter bearbeiten möchten, wählen Sie das Feld aus und bearbeiten Sie es nach Bedarf.

      6. Wenn Sie einen Parameter löschen möchten, wählen Sie das Löschsymbol ( Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family. ) in der Zeile aus, die den Parameter enthält.

      Wenn Sie die Funktion lieber mithilfe eines JSON-Objekts definieren möchten, wählen Sie JSON-Editor statt Tabelle aus. Das JSON-Objektformat lautet wie folgt (jeder Schlüssel im parameters-Objekt ist ein Parametername, den Sie angeben):

      { "name": "string", "description": "string", "parameters": [ { "name": "string", "description": "string", "required": "True" | "False", "type": "string" | "number" | "integer" | "boolean" | "array" } ] }

      Wenn Sie Ihrer Aktionsgruppe eine weitere Funktion hinzufügen möchten, indem Sie einen anderen Satz von Parametern definieren, wählen Sie Aktionsgruppenfunktion hinzufügen aus.

    • Wenn Sie Mit API-Schemas definieren ausgewählt haben, steht Ihnen der Abschnitt Aktionsgruppenschema mit den folgenden Optionen zur Verfügung:

      • Wenn Sie ein OpenAPI-Schema verwenden möchten, das Sie zuvor mit API-Beschreibungen, Strukturen und Parametern für die Aktionsgruppe vorbereitet haben, wählen Sie API-Schema auswählen aus und geben Sie einen Link zum Amazon-S3-URI des Schemas an.

      • Wenn Sie das OpenAPI-Schema mit dem Inline-Schema-Editor definieren möchten, wählen Sie Über den Inline-Schema-Editor definieren aus. Es wird ein Beispielschema angezeigt, das Sie bearbeiten können.

        1. Wählen Sie das Format für das Schema aus, indem Sie das Dropdownmenü neben Format verwenden.

        2. Wählen Sie Schema importieren, geben Sie den S3-URI ein und wählen Sie dann Importieren, um ein vorhandenes Schema zur Bearbeitung aus S3 zu importieren.

        3. Wählen Sie Zurücksetzen und bestätigen Sie dann die angezeigte Meldung, indem Sie erneut auf Zurücksetzen klicken, um das Schema auf das ursprüngliche Beispielschema zurückzusetzen.

  9. Wenn Sie mit der Erstellung der Aktionsgruppe fertig sind, wählen Sie Hinzufügen aus. Wenn Sie ein API-Schema definiert haben, wird ein grünes Erfolgsbanner angezeigt, wenn es keine Probleme gibt. Wenn bei der Überprüfung des Schemas Probleme auftreten, wird ein rotes Banner angezeigt. Ihnen stehen folgende Optionen zur Verfügung:

    • Scrollen Sie durch das Schema, um die Zeilen zu sehen, in denen ein Fehler oder eine Warnung zur Formatierung vorliegt. Ein X weist auf einen Formatierungsfehler hin, während ein Ausrufezeichen auf eine Warnung zur Formatierung hinweist.

    • Wählen Sie im roten Banner die Option Details anzeigen, um eine Liste mit Fehlern im Zusammenhang mit dem Inhalt des API-Schemas anzuzeigen.

  10. Vergewissern Sie sich, dass Sie den Vorgang Vorbereiten durchführen, um die am Agenten vorgenommenen Änderungen zu übernehmen, bevor Sie ihn testen.

API

Wenn Sie eine Aktionsgruppe erstellen möchten, senden Sie eine CreateAgentActionGroup-Anfrage mit einem Build-Time-Endpunkt von Agenten für Amazon Bedrock. Sie müssen entweder ein Funktionsschema oder ein OpenAPI-Schema angeben.

Die folgende Liste beschreibt die Felder in der Anforderung:

  • Die folgenden Felder sind erforderlich:

    Feld Kurzbeschreibung
    agentId Die ID des Agenten, zu dem die Aktionsgruppe gehört
    agentVersion Die Version des Agenten, zu dem die Aktionsgruppe gehört
    actionGroupName Der Name der Aktionsgruppe
  • Wenn Sie die Parameter für die Aktionsgruppe definieren möchten, müssen Sie eines der folgenden Felder angeben (Sie können nicht beide angeben).

    Feld Kurzbeschreibung
    functionSchema Definiert die Parameter für die Aktionsgruppe, die der Agent beim Benutzer abfragt Weitere Informationen finden Sie unter Definieren der Funktionsdetails für die Aktionsgruppen Ihres Agenten in Amazon Bedrock.
    apiSchema Gibt das OpenAPI-Schema an, das die Parameter für die Aktionsgruppe definiert, oder verweist auf ein S3-Objekt, das sie enthält Weitere Informationen finden Sie unter Definieren von OpenAPI-Schemas für die Aktionsgruppen Ihres Agenten in Amazon Bedrock.

    Im Folgenden ist das allgemeine Format des functionSchema und apiSchema angegeben:

    • Jedes Element im functionSchema-Array ist ein FunctionSchema-Objekt. Geben Sie für jede Funktion Folgendes an:

      • Geben Sie einen name und eine optionale (aber empfohlene) description an.

      • Geben Sie optional ENABLED für das requireConfirmation-Feld an, um eine Bestätigung vom Benutzer anzufordern, bevor die Funktion aufgerufen wird. Das Anfordern einer Bestätigung, bevor die Funktion aufgerufen wird, kann Ihre Anwendung davor schützen, aufgrund bösartiger Promptinjektionen Maßnahmen zu ergreifen.

      • In dem parameters-Objekt ist jeder Schlüssel ein Parametername, der Details zu diesem Parameter in einem ParameterDetail-Objekt zugeordnet ist.

      Das allgemeine Format des functionSchema sieht folgendermaßen aus:

      "functionSchema": [ { "name": "string", "description": "string", "requireConfirmation": ENABLED | DISABLED, "parameters": { "<string>": { "type": "string" | number | integer | boolean | array, "description": "string", "required": boolean }, ... // up to 5 parameters } }, ... // up to 11 functions ]
    • Das APISchema kann in einem der folgenden Formate vorliegen:

      1. Für das folgende Format können Sie das OpenAPI-Schema im JSON- oder YAML-Format direkt als Wert einfügen.

        "apiSchema": { "payload": "string" }
      2. Geben Sie für das folgende Format den Amazon-S3-Bucket-Namen und den Objektschlüssel an, in dem das OpenAPI-Schema gespeichert ist.

        "apiSchema": { "s3": { "s3BucketName": "string", "s3ObjectKey": "string" } }
  • Wenn Sie konfigurieren möchten, wie die Aktionsgruppe den Aufruf der Aktionsgruppe verarbeitet, nachdem sie beim Benutzer Parameter abgefragt hat, müssen Sie eines der folgenden Felder innerhalb des actionGroupExecutor-Felds angeben.

    Feld Kurzbeschreibung
    Lambda Wenn Sie die Parameter an eine Lambda-Funktion senden möchten, die die Ergebnisse des Aktionsgruppenaufrufs verarbeitet, geben Sie den Amazon-Ressourcennamen (ARN) des Lambda an. Weitere Informationen finden Sie unter Konfigurieren von Lambda-Funktionen zum Senden von Informationen, die ein Amazon-Bedrock-Agent beim Benutzer abfragt.
    customControl Wenn Sie die Verwendung einer Lambda-Funktion überspringen und stattdessen die vorhergesagte Aktionsgruppe zusätzlich zu den dafür erforderlichen Parametern und Informationen in der InvokeAgent-Antwort zurückgeben möchten, geben Sie RETURN_CONTROL an. Weitere Informationen finden Sie unter Zurückgeben der Steuerung an den Agent-Entwickler durch Senden der abgerufenen Informationen in einer InvokeAgent-Antwort.
  • Die folgenden Felder sind optional:

    Feld Kurzbeschreibung
    parentActionGroupSignature Geben Sie AMAZON.UserInput an, damit der Agent den Benutzer erneut zur Eingabe weiterer Informationen auffordern kann, wenn er nicht über genügend Informationen verfügt, um eine weitere Aktionsgruppe abzuschließen. Sie müssen die Felder description, apiSchema und actionGroupExecutor leer lassen, wenn Sie dieses Feld angeben.
    description Eine Beschreibung der Aktionsgruppe
    actionGroupState Ob der Agent die Aktionsgruppe aufrufen darf oder nicht
    clientToken Ein Bezeichner, um zu verhindern, dass Anforderungen dupliziert werden
    def create_agent_action_group( self, name, description, agent_id, agent_version, function_arn, api_schema ): """ Creates an action group for an agent. An action group defines a set of actions that an agent should carry out for the customer. :param name: The name to give the action group. :param description: The description of the action group. :param agent_id: The unique identifier of the agent for which to create the action group. :param agent_version: The version of the agent for which to create the action group. :param function_arn: The ARN of the Lambda function containing the business logic that is carried out upon invoking the action. :param api_schema: Contains the OpenAPI schema for the action group. :return: Details about the action group that was created. """ try: response = self.client.create_agent_action_group( actionGroupName=name, description=description, agentId=agent_id, agentVersion=agent_version, actionGroupExecutor={"lambda": function_arn}, apiSchema={"payload": api_schema}, ) agent_action_group = response["agentActionGroup"] except ClientError as e: logger.error(f"Error: Couldn't create agent action group. Here's why: {e}") raise else: return agent_action_group

    Weitere Informationen finden Sie unter Hallo Agenten für Amazon Bedrock.