

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Obter a confirmação do usuário antes de invocar a função do grupo de ação
<a name="agents-userconfirmation"></a>

É possível proteger a aplicação contra injeções de prompt mal-intencionadas solicitando a confirmação dos usuários da aplicação antes de invocar a função do grupo de ação. Quando um usuário final interage com a aplicação, o agente do Amazon Bedrock estima a API ou as bases de conhecimento a serem invocadas para automatizar a tarefa para o usuário. As informações da API ou das bases de conhecimento podem conter dados potencialmente prejudiciais. Entre cada iteração, se a resposta contiver alguma instrução, o agente cumprirá. Se a resposta incluir instruções para que o modelo invoque ações indesejadas, o agente seguirá em frente e cumprirá a instrução. Para garantir que determinadas ações sejam implementadas somente após o consentimento explícito do usuário, recomendamos solicitar a confirmação do usuário final antes de invocar a função. 

Ao configurar seu grupo de ação, é possível optar por habilitar a confirmação do usuário para ações específicas. Se a confirmação do usuário estiver habilitada para uma ação, o agente responderá com uma pergunta de confirmação solicitando que o usuário final confirme ou negue a ação. É possível habilitar a confirmação do usuário por meio do console, da CLI ou do SDK. 

Para habilitar a confirmação do usuário para uma ação, consulte [Adicionar um grupo de ação ao agente no Amazon Bedrock](agents-action-add.md).

## Como funciona a confirmação do usuário
<a name="user-confirmation-works"></a>

A confirmação do usuário é configurada para uma ação no grupo de ação pelo desenvolvedor do agente. Se o agente decidir que deve chamar essa ação, os detalhes da API ou da função obtidos do usuário e a confirmação do usuário configurada pelo desenvolvedor do agente serão exibidos no campo `invocationInputs` na resposta [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), com o `invocationType` e um `invocationId` exclusivo.

O agente invoca a API ou a função fornecida no `invocationInputs`. Se a confirmação do usuário estiver habilitada para a função ou a API, o usuário terá a opção de **CONFIRMAR** ou **NEGAR** a ação mencionada na resposta.

Os resultados da invocação da função ou da API pelo agente são enviados em outra solicitação [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), no campo `sessionState`, para fornecer contexto ao agente. O parâmetro de solicitação para `InvokeAgent` usa `returnControlInvocationResults`, que é uma lista de mapeamentos de objetos `functionResult` ou `apiResult`. Os objetos `apiResult` e `functionResult` têm um campo adicional de `confirmationState`. Esse campo tem a resposta de confirmação do usuário. 

Se a resposta do usuário for **CONFIRMAR**, a função ou a API na resposta será implementada. 

Se a resposta do usuário for **NEGAR**, a função ou a API na resposta não será implementada. 

## Exemplos de resposta e solicitação do InvokeAgent
<a name="agents-userconfirmation-ex"></a>

**Resposta**

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

**Solicitação**

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