

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Come ottenere la conferma dell’utente prima di invocare la funzione del gruppo di operazioni
<a name="agents-userconfirmation"></a>

È possibile proteggere l’applicazione da iniezioni di prompt dannose richiedendo la conferma agli utenti dell’applicazione prima di invocare la funzione del gruppo di operazioni. Quando un utente finale interagisce con la tua applicazione, Agent per Amazon Bedrock individua l’API o le knowledge base da invocare per automatizzare l’attività per l’utente. Le informazioni dell’API o delle knowledge base potrebbero contenere dati potenzialmente dannosi. Tra un’iterazione e l’altra, l’agente rispetta eventuali istruzioni contenute nella risposta. Se la risposta include istruzioni per consentire al modello di invocare azioni non intenzionali, l’agente procederà di conseguenza. Per garantire che determinate azioni vengano implementate solo dopo il consenso esplicito dell’utente, consigliamo di richiedere la conferma all’utente finale prima di invocare la funzione. 

Quando configuri il tuo gruppo di operazioni, puoi scegliere di abilitare la conferma dell’utente per azioni specifiche. Se per un’azione è abilitata la conferma dell’utente, l’agente risponde con una domanda di conferma chiedendo all’utente finale di confermare o rifiutare l’azione. Puoi abilitare la conferma dell’utente nella console, utilizzando la CLI o l’SDK. 

Per abilitare la conferma dell’utente di un’azione, consulta [Aggiunta di un gruppo di operazioni all’agente in Amazon Bedrock](agents-action-add.md).

## Come funziona la conferma dell’utente
<a name="user-confirmation-works"></a>

La conferma dell’utente viene configurata per un’azione nel gruppo di operazioni dallo sviluppatore dell’agente. Se l’agente decide di richiedere tale azione, nel campo `invocationInputs` della risposta [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) verranno restituiti i dettagli dell’API o della funzione forniti dall’utente e la conferma dell’utente configurata dallo sviluppatore dell’agente, insieme a `invocationType` e a un messaggio univoco `invocationId`.

L’agente invoca l’API o la funzione fornita negli `invocationInputs`. Se per la funzione o l’API è abilitata la conferma dell’utente, all’utente vengono presentate due opzioni, **CONFERMA** o **NEGA**, per scegliere l’azione menzionata nella risposta.

I risultati dell’invocazione della funzione o dell’API da parte dell’agente vengono inviati in un’altra richiesta [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) nel campo `sessionState`, per fornire un contesto all’agente. Il parametro di richiesta per `InvokeAgent` utilizza `returnControlInvocationResults`, ovvero un elenco di mappature agli oggetti `apiResult` o `functionResult`. Gli oggetti `apiResult` e `functionResult` hanno un campo di `confirmationState` aggiuntivo, che contiene la risposta della conferma dell’utente. 

Se la risposta dell’utente è **CONFERMA**, nella risposta viene implementata la funzione o l’API. 

Se la risposta dell’utente è **NEGA**, la funzione o l’API non viene implementata nella risposta. 

## Esempi di risposta e richiesta di InvokeAgent
<a name="agents-userconfirmation-ex"></a>

**Risposta**

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

**Richiesta**

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