Einholen der Benutzerbestätigung vor dem Aufrufen der Aktionsgruppenfunktion
Sie können Ihre Anwendung vor böswilligen Promptinjektionen schützen, indem Sie vor dem Aufrufen der Aktionsgruppenfunktion eine Bestätigung von den Anwendungsbenutzern anfordern. Wenn ein Endbenutzer mit Ihrer Anwendung interagiert, ermittelt Amazon-Bedrock-Agent die API oder Wissensdatenbanken, die aufgerufen werden müssen, um die Aufgabe für den Benutzer zu automatisieren. Die Informationen aus der API oder den Wissensdatenbanken können potenziell schädliche Daten enthalten. Wenn die Antwort zwischen den einzelnen Iterationen Anweisungen enthält, hält sich der Agent daran. Wenn die Antwort Anweisungen für das Modell enthält, unbeabsichtigte Aktionen aufzurufen, fährt der Agent fort und befolgt die Anweisung. Um sicherzustellen, dass bestimmte Aktionen nur nach ausdrücklicher Zustimmung des Benutzers implementiert werden, empfehlen wir, vor dem Aufrufen der Funktion die Bestätigung vom Endbenutzer einzuholen.
Beim Konfigurieren Ihrer Aktionsgruppe können Sie auswählen, ob Sie die Benutzerbestätigung für bestimmte Aktionen aktivieren möchten. Wenn die Benutzerbestätigung für eine Aktion aktiviert ist, antwortet der Agent mit einer Bestätigungsfrage und fordert den Endbenutzer auf, die Aktion entweder zu bestätigen oder verweigern. Sie können die Benutzerbestätigung in der Konsole, mit der CLI oder mit der SDK aktivieren.
Informationen zum Aktivieren der Benutzerbestätigung für eine Aktion finden Sie unter Hinzufügen einer Aktionsgruppe zu Ihrem Agenten in Amazon Bedrock.
So funktioniert die Benutzerbestätigung
Die Benutzerbestätigung wird vom Agentenentwickler für eine Aktion in der Aktionsgruppe konfiguriert. Wenn der Agent entscheidet, dass er diese Aktion aufrufen soll, werden die API oder die Funktionsdetails, die vom Benutzer abgerufen wurden, sowie die vom Agentenentwickler konfigurierte Benutzerbestätigung im Feld invocationInputs in der InvokeAgent-Antwort zusammen mit invocationType und einer eindeutigen invocationId zurückgegeben.
Der Agent ruft die API oder die Funktion auf, die in invocationInputs bereitgestellt wurde. Wenn die Benutzerbestätigung für die Funktion oder die API aktiviert ist, wird dem Benutzer die Option angezeigt, die in der Antwort erwähnte Aktion zu BESTÄTIGEN oder zu VERWEIGERN.
Die Ergebnisse des Aufrufs der Funktion oder API durch den Agenten werden in einer weiteren InvokeAgent-Anfrage im Feld sessionState gesendet, um dem Agenten einen Kontext bereitzustellen. Der Anforderungsparameter für InvokeAgent nutzt returnControlInvocationResults. Dabei handelt es sich um eine Liste von Zuordnungen an apiResult- oder functionResult-Objekte. Die functionResult- und apiResult-Objekte haben ein zusätzliches Feld: confirmationState Dieses Feld enthält die Bestätigungsantwort des Benutzers.
Wenn die Benutzerantwort BESTÄTIGEN lautet, wird die Funktion oder die API in der Antwort implementiert.
Wenn die Benutzerantwort VERWEIGERN lautet, wird die Funktion oder die API nicht in der Antwort implementiert.
Beispiele für die Antwort und Anforderung von InvokeAgent
Antwort
HTTP/1.1 200 x-amzn-bedrock-agent-content-type: contentType x-amz-bedrock-agent-session-id: sessionId Content-type: application/json { "chunk": { ... }, ... "returnControl": { "invocationId": "string", "invocationInputs": [ { ... } ] }, "trace": { "agentAliasId": "string", "agentId": "string", "agentVersion": "string", "sessionId": "string", "trace": { ... } }, }
Anforderung
POST /agents/agentId/agentAliases/agentAliasId/sessions/sessionId/text HTTP/1.1 Content-type: application/json { "enableTrace": boolean, "endSession": boolean, "inputText": "string", "sessionState": { "invocationId": "string", "promptSessionAttributes": { "string" : "string" }, "returnControlInvocationResults": [ { ... } ], "sessionAttributes": { "string" : "string" } } }