Testen des Verhaltens von Agenten und Beheben von Fehlern - Amazon Bedrock

Testen des Verhaltens von Agenten und Beheben von Fehlern

Nachdem Sie einen Agenten erstellt haben, liegt ein Arbeitsentwurf vor. Dieser Arbeitsentwurf ist eine Version des Agenten, mit der Sie den Agenten iterativ entwickeln können. Jedes Mal, wenn Sie Änderungen am Agenten vornehmen, wird der Arbeitsentwurf aktualisiert. Wenn Sie mit den Konfigurationen des Agenten zufrieden sind, können Sie eine Version (also einen Snapshot des Agenten) und einen Alias, der auf die Version verweist, erstellen. Anschließend können Sie den Agenten in Ihren Anwendungen bereitstellen, indem Sie den Alias aufrufen. Weitere Informationen finden Sie unter Bereitstellen und Verwenden eines Amazon-Bedrock-Agenten in Ihrer Anwendung.

Im Folgenden wird beschrieben, wie Sie einen Agenten testen:

  • In der Amazon-Bedrock-Konsole: Öffnen Sie das Testfenster an der Seite und senden Sie eine Eingabe, auf die der Agent reagieren soll. Sie können entweder den Arbeitsentwurf oder eine von Ihnen erstellte Version auswählen.

  • In der API: Hier ist die DRAFT-Version der Arbeitsentwurf. Sie senden Eingaben an den Agenten, indem Sie InvokeAgent mit dem Test-Alias, TSTALIASID oder einem anderen Alias, der auf eine statische Version verweist, verwenden. Bevor Sie den Agenten testen können, müssen Sie ihn vorbereiten, indem Sie PrepareAgent aufrufen.

Nachverfolgen des Agentenverhaltens

Als Hilfe zur Behebung von Fehlern im Agentenverhalten bietet Agenten für Amazon Bedrock die Möglichkeit, die Nachverfolgung während einer Sitzung mit dem Agenten anzuzeigen. Die Nachverfolgung zeigt den Argumentationsprozess des Agenten schrittweise an. Weitere Informationen zur Nachverfolgung finden Sie unter Nachverfolgen des schrittweisen Argumentationsprozesses des Agenten mit Trace.

Testen des Agenten

Im Folgenden finden Sie Schritte zum Testen des Agenten. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie die angegebenen Schritte:

Console
Testen Sie einen Agenten wie folgt:
  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 die Option Agenten aus. Wählen Sie dann im Abschnitt Agenten einen Agenten aus.

  3. Wählen Sie im Abschnitt Agenten aus der Agentenliste den Link für den Agenten aus, den Sie testen möchten.

  4. Das Fenster Testen wird in einem Bereich auf der rechten Seite angezeigt.

    Anmerkung

    Wenn das Testfenster geschlossen ist, können Sie es erneut öffnen, indem Sie oben auf der Seite mit den Agentendetails oder einer beliebigen Seite darin die Option Testen auswählen.

  5. Nachdem Sie einen Agenten erstellt haben, müssen Sie ihn mit den Änderungen des Arbeitsentwurfs ausstatten, indem Sie ihn auf eine der folgenden Weisen vorbereiten:

    • Wählen Sie im Fenster Testen die Option Vorbereiten aus.

    • Wählen Sie oben auf der Seite Arbeitsentwurf die Option Vorbereiten aus.

    Anmerkung

    Jedes Mal, wenn Sie den Arbeitsentwurf aktualisieren, müssen Sie den Agenten darauf vorbereiten, ihn mit den aktuellen Änderungen auszustatten. Als Best Practice empfehlen wir, stets im Abschnitt Agentenübersicht auf der Seite Arbeitsentwurf die Angabe Zuletzt vorbereitet zu überprüfen, um sicherzugehen, dass Sie den Agenten mit den aktuellen Konfigurationen testen.

  6. Verwenden Sie das Dropdown-Menü oben im Testfenster, um einen Alias und die zugehörige Version zum Testen auszuwählen. Standardmäßig ist die Kombination TestAlias: Arbeitsentwurf ausgewählt.

  7. (Optional) Um „Bereitgestellter Durchsatz“ für Ihren Alias auszuwählen, wird unter dem ausgewählten Testalias entweder der Text ODT wird verwendet … oder der Text PT wird verwendet … angezeigt. Um ein „Bereitgestellter Durchsatz“-Modell zu erstellen, wählen Sie Ändern aus. Weitere Informationen finden Sie unter Bereitgestellter Durchsatz.

  8. (Optional) Um einen Prompt aus dem Prompt-Management zu verwenden, wählen Sie das Optionssymbol ( Vertical ellipsis icon representing a menu or more options. ) im Meldungsfeld und anschließend Prompt zum Importieren aus. Wählen Sie den Prompt und die Version aus. Geben Sie Werte für die Prompt-Variablen im Abschnitt Test-Variablenwerte ein. Weitere Informationen zu Prompts im Prompt-Management finden Sie unter Erstellen und Speichern wiederverwendbarer Prompts mit dem Prompt-Management in Amazon Bedrock.

  9. Um den Agenten zu testen, geben Sie eine Nachricht ein und wählen Sie Ausführen aus. Während Sie auf die Generierung der Antwort warten oder nachdem diese generiert wurde, haben Sie die folgenden Optionen:

    • Um Details zu jedem Schritt des Orchestrierungsprozesses des Agenten anzuzeigen, einschließlich des Prompts, der Inferenzkonfigurationen und des Argumentationsprozesses des Agenten für jeden Schritt sowie der Verwendung seiner Aktionsgruppen und Wissensdatenbanken, wählen Sie Nachverfolgung anzeigen aus. Die Nachverfolgung wird in Echtzeit aktualisiert, sodass Sie sie einsehen können, bevor die Antwort zurückgegeben wird. Wählen Sie einen Pfeil neben einem Schritt aus, um die Nachverfolgung für diesen Schritt zu erweitern oder zu reduzieren. Weitere Informationen zum Fenster Nachverfolgung und zu den angezeigten Details finden Sie unter Nachverfolgen des schrittweisen Argumentationsprozesses des Agenten mit Trace.

    • Ruft der Agent eine Wissensdatenbank auf, enthält die Antwort Fußnoten. Um den Link zum S3-Objekt anzuzeigen, das die zitierten Informationen für einen bestimmten Teil der Antwort enthält, wählen Sie die entsprechende Fußnote aus.

    • Wenn Sie den Agenten so einstellen, dass er die Kontrolle zurückgibt, anstatt eine Lambda-Funktion für die Bearbeitung der Aktionsgruppe zu verwenden, enthält die Antwort die vorhergesagte Aktion und deren Parameter. Geben Sie einen Beispielausgabewert aus der API oder der Funktion für die Aktion ein und wählen Sie dann Senden aus, um eine Agentenantwort zu generieren. Die folgenden Bilder dienen als Beispiel:

      Testfenster für Anfrage nach Beispielausgabe für die Aktion.

    Im Testfenster können Sie die folgenden Aktionen ausführen:

    • Aktualisierungssymbol auswählen, um eine neue Konversation mit dem Agenten zu beginnen;

    • Erweiterungssymbol auswählen, um das Fenster Nachverfolgung anzuzeigen; Verkleinern-Symbol auswählen, um das Fenster Nachverfolgung zu schließen;

    • Rechtspfeil-Symbol auswählen, um das Fenster Testen zu schließen.

Sie können Aktionsgruppen und Wissensdatenbanken aktivieren oder deaktivieren. Verwenden Sie dieses Feature, um Agentenfehler zu beheben, indem durch die Bewertung des Agentenverhaltens anhand verschiedener Einstellungen die zu aktualisierenden Aktionen und Wissensdatenbanken isoliert werden.

Aktivieren Sie eine Aktionsgruppe oder Wissensdatenbank wie folgt:
  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 im Abschnitt Agenten aus der Agentenliste den Link für den Agenten aus, den Sie testen möchten.

  4. Wählen Sie auf der Detailseite des Agenten im Abschnitt Arbeitsentwurf den Link für den Arbeitsentwurf aus.

  5. Zeigen Sie im Abschnitt Aktionsgruppen oder Wissensdatenbanken mit der Maus auf den Status der Aktionsgruppe oder der Wissensdatenbank, deren Status Sie ändern möchten.

  6. Es wird eine Schaltfläche zum Bearbeiten angezeigt. Klicken Sie darauf und wählen Sie dann aus dem Dropdown-Menü aus, ob die Aktionsgruppe oder Wissensdatenbank Aktiviert oder Deaktiviert ist.

  7. Wenn eine Aktionsgruppe Deaktiviert ist, verwendet der Agent die Aktionsgruppe nicht. Wenn eine Wissensdatenbank Deaktiviert ist, verwendet der Agent die Wissensdatenbank nicht. Aktivieren oder deaktivieren Sie Aktionsgruppen oder Wissensdatenbanken und verwenden Sie dann das Fenster Testen, um Fehler beim Agenten zu beheben.

  8. Wählen Sie Vorbereiten aus, um die am Agenten vorgenommenen Änderungen zu übernehmen, bevor Sie ihn testen.

API

Für Agenten, die after 31. März 2025 erstellt wurden:

  • Wenn Sie den Agenten in der Konsole erstellt haben, ist das Streaming standardmäßig aktiviert. Sie können das Streaming jederzeit deaktivieren.

  • Stellen Sie sicher, dass die Ausführungsrolle des Agenten die Berechtigung bedrock:InvokeModelWithResponseStream für das konfigurierte Agentenmodell umfasst.

Bevor Sie den Agenten zum ersten Mal testen, müssen Sie ihn mit den Arbeitsentwürfen ausstatten, indem Sie eine PrepareAgent-Anfrage mit einem Build-Time-Endpunkt für Agenten für Amazon Bedrock senden. Fügen Sie der Anfrage die agentId hinzu. Die Änderungen gelten für die DRAFT-Version, auf die der Alias TSTALIASID verweist.

def prepare_agent(self, agent_id): """ Creates a DRAFT version of the agent that can be used for internal testing. :param agent_id: The unique identifier of the agent to prepare. :return: The response from Amazon Bedrock Agents if successful, otherwise raises an exception. """ try: prepared_agent_details = self.client.prepare_agent(agentId=agent_id) except ClientError as e: logger.error(f"Couldn't prepare agent. {e}") raise else: return prepared_agent_details

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

Anmerkung

Jedes Mal, wenn Sie den Arbeitsentwurf aktualisieren, müssen Sie den Agenten darauf vorbereiten, ihn mit den aktuellen Änderungen auszustatten. Als Best Practice empfehlen wir, eine GetAgent-Anfrage (siehe Link für Anfrage- und Antwortformate sowie Felddetails) mit einem Build-Time-Endpunkt für Agenten für Amazon Bedrock zu senden und die preparedAt-Zeit zu überprüfen, die der Agent benötigt, um zu verifizieren, ob Sie den Agenten mit den neuesten Konfigurationen testen.

Um den Agenten zu testen, senden Sie eine InvokeAgent-Anfrage an den Agenten. Einen Beispielcode finden Sie unter Aufrufen eines Agenten über Ihre Anwendung.

Anmerkung

Die AWS CLI unterstützt InvokeAgent nicht.

Die Anfrage enthält folgende Felder:

  • Machen Sie mindestens die folgenden Angaben:

    Feld Kurzbeschreibung
    agentId ID des Agenten
    agentAliasId ID des Alias. TSTALIASID verwenden, um die DRAFT-Version aufzurufen
    sessionId Alphanumerische ID für die Sitzung (2–100 Zeichen)
    inputText Der Benutzer-Prompt zum Senden an den Agenten
  • Die folgenden Felder sind optional:

    Feld Kurzbeschreibung
    enableTrace Geben Sie TRUE an, um die Nachverfolgung zu sehen.
    endSession Geben Sie TRUE an, um die Sitzung mit dem Agenten nach dieser Anfrage zu beenden.
    sessionState Schließt Kontext ein, der das Verhalten des Agenten oder das Verhalten von Wissensdatenbanken, die dem Agenten zugeordnet sind, beeinflusst. Weitere Informationen finden Sie unter Steuern des Kontexts von Agentensitzungen.
    streamingConfigurations Beinhaltet Konfigurationen für die Streaming-Antwort. Um das Streaming zu aktivieren, stellen Sie streamFinalResponse auf TRUE ein.

Die Antwort wird in einem Ereignis-Stream zurückgegeben. Jedes Ereignis umfasst einen chunk, der einen Teil der Antwort im bytes-Feld enthält, der dekodiert werden muss. Die folgenden Objekte können ebenfalls zurückgegeben werden:

  • Wenn der Agent eine Wissensdatenbank abgefragt hat, beinhaltet der chunk auch citations.

  • Wenn das Streaming aktiviert und der Integritätsschutz für den Agenten konfiguriert ist, wird die Antwort in den für das Integritätsschutz-Intervall angegebenen Zeichenintervallen generiert. Standardmäßig ist das Intervall auf 50 Zeichen eingestellt.

  • Wenn Sie eine Nachverfolgung aktiviert haben, wird auch ein trace-Objekt zurückgegeben. Wenn ein Fehler auftritt, wird ein Feld mit der Fehlermeldung zurückgegeben. Weitere Informationen zum Interpretieren der Nachverfolgung finden Sie unter Nachverfolgen des schrittweisen Argumentationsprozesses des Agenten mit Trace.

  • Wenn Sie Ihre Aktionsgruppe anhand einer Lambda-Funktion so einrichten, dass sie übersprungen wird, wird im Feld returnControl ein ReturnControlPayload-Objekt zurückgegeben. Die allgemeine Struktur des Objekts ReturnControlPayload sieht wie folgt aus:

    { "invocationId": "string", "invocationInputs": [ ApiInvocationInput or FunctionInvocationInput, ... ] }

    Jedes Objekt der invocationInputs-Liste ist einer der folgenden Objektarten zugeordnet:

    • Ein ApiInvocationInput-Objekt, das den API-Vorgang enthält, der laut Vorhersage des Agenten auf der Grundlage der Benutzereingabe aufgerufen werden sollte, zusätzlich zu den Parametern und weiteren vom Benutzer erhaltenen Informationen, um der API zu entsprechen. Struktur des ApiInvocationInput-Objekts:

      { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "requestBody": { <content-type>: { "properties": [ { "name": "string", "type": "string", "value": "string" } ] } } }
    • Es handelt sich um ein FunctionInvocationInput-Objekt, das die Funktion enthält, die laut Vorhersage des Agenten auf der Grundlage der Benutzereingabe aufgerufen werden sollte, zusätzlich zu den vom Benutzer erhaltenen Parametern für diese Funktion. Struktur von FunctionInvocationInput:

      { "actionGroup": "string", "function": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" } ] }