

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Confirmation de l’utilisateur avant d’invoquer la fonction de groupe d’actions
<a name="agents-userconfirmation"></a>

Vous pouvez protéger votre application contre les injections d’invite malveillantes en demandant la confirmation aux utilisateurs de l’application avant d’invoquer la fonction de groupe d’actions. Lorsqu’un utilisateur final interagit avec votre application, l’agent Amazon Bedrock détermine l’API ou les bases de connaissances à invoquer pour automatiser la tâche pour l’utilisateur. Les informations provenant de l’API ou des bases de connaissances peuvent contenir des données potentiellement dommageables. Entre chaque itération, si la réponse contient une instruction, l’agent s’y conformera. Si la réponse inclut des instructions pour que le modèle invoque des actions imprévues, l’agent se conformera à ces instructions. Pour garantir que certaines actions ne sont mises en œuvre qu’après le consentement explicite de l’utilisateur, nous vous recommandons de demander une confirmation à l’utilisateur final avant d’invoquer la fonction. 

Lorsque vous configurez votre groupe d’actions, vous pouvez choisir d’activer la confirmation utilisateur pour des actions spécifiques. Si la confirmation utilisateur est activée pour une action, l’agent répond par une question de confirmation demandant à l’utilisateur final de confirmer ou de refuser l’action. Vous pouvez activer la confirmation utilisateur dans la console, à l’aide de l’interface de ligne de commande (CLI) ou du kit SDK. 

Pour activer la confirmation utilisateur d’une action, consultez [Ajout d’un groupe d’actions à votre agent dans Amazon Bedrock](agents-action-add.md).

## Fonctionnement de la confirmation utilisateur
<a name="user-confirmation-works"></a>

La confirmation utilisateur est configurée pour une action dans le groupe d’actions par le développeur de l’agent. Si l’agent décide d’appeler cette action, l’API ou les détails de la fonction obtenus auprès de l’utilisateur et la confirmation utilisateur configurée par le développeur de l’agent seront renvoyés dans le champ `invocationInputs` de la réponse [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html), à côté de `invocationType`, et un code unique `invocationId`.

L’agent invoque l’API ou la fonction fournie dans `invocationInputs`. Si la confirmation utilisateur est activée pour la fonction ou l’API, l’utilisateur a la possibilité de **CONFIRMER** ou de **REFUSER** l’action mentionnée dans la réponse.

Les résultats de l’invocation de la fonction ou de l’API par l’agent sont envoyés dans une autre demande [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html), dans le champ `sessionState`, afin de fournir un contexte à l’agent. Le paramètre de demande pour `InvokeAgent` utilise `returnControlInvocationResults`, qui est une liste de mappages vers des objets `apiResult` ou `functionResult`. Les objets `apiResult` et `functionResult` ont un champ supplémentaire `confirmationState`. Ce champ contient la réponse de confirmation utilisateur. 

Si la réponse de l’utilisateur est **CONFIRMER**, la fonction ou l’API contenue dans la réponse est implémentée. 

Si la réponse de l’utilisateur est **REFUSER**, la fonction ou l’API contenue dans la réponse n’est pas implémentée. 

## Exemples de InvokeAgent réponse et de demande
<a name="agents-userconfirmation-ex"></a>

**Réponse**

```
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": { ... }
   },
}
```

**Demande**

```
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" 
      }
   }
}
```