

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.

# Redonner le contrôle au développeur de l’agent en envoyant les informations obtenues dans une réponse InvokeAgent
<a name="agents-returncontrol"></a>

Plutôt que d’envoyer les informations que votre agent a obtenues de l’utilisateur à une fonction Lambda pour exécution, vous pouvez choisir de redonner le contrôle au développeur de l’agent en envoyant les informations contenues dans 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). Vous pouvez configurer le retour de contrôle au développeur de l’agent lors de la création ou de la mise à jour d’un groupe d’actions. Grâce à l’API, vous spécifiez `RETURN_CONTROL` comme valeur `customControl` de l’objet `actionGroupExecutor` dans une demande [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html) ou [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateAgentActionGroup.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateAgentActionGroup.html). Pour plus d’informations, consultez [Ajout d’un groupe d’actions à votre agent dans Amazon Bedrock](agents-action-add.md).

Si vous configurez le retour de contrôle pour un groupe d’actions, et si l’agent détermine qu’il doit appeler une action dans ce groupe d’actions, les détails de l’API ou de la fonction obtenus auprès de l’utilisateur 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), avec un `invocationId` unique. Vous pouvez alors effectuer ce qui suit :
+ Configurez votre application pour invoquer l’API ou la fonction que vous avez définie, à condition que les informations soient renvoyées dans `invocationInputs`.
+ Envoyez les résultats de l’invocation de votre application 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`, pour fournir du contexte à l’agent. Vous devez utiliser les mêmes `invocationId` et `actionGroup` que ceux qui ont été renvoyés dans 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). Ces informations peuvent être utilisées comme contexte pour une orchestration ultérieure, envoyées au post-traitement pour que l’agent mette en forme une réponse, ou utilisées directement dans la réponse de l’agent à l’utilisateur.
**Note**  
Si vous incluez `returnControlInvocationResults` dans le champ `sessionState`, le champ `inputText` sera ignoré.

Pour savoir comment configurer le retour de contrôle au développeur de l’agent lors de la création du groupe d’actions, consultez [Ajout d’un groupe d’actions à votre agent dans Amazon Bedrock](agents-action-add.md).

## Exemple de retour du contrôle au développeur de l’agent
<a name="agents-returncontrol-ex"></a>

Par exemple, vous pouvez avoir les groupes d’actions suivants :
+ Un groupe d’actions `PlanTrip` avec une action `suggestActivities` qui aide vos utilisateurs à trouver des activités à effectuer pendant un voyage. La `description` de cette action indique `This action suggests activities based on retrieved weather information`.
+ Un groupe d’actions `WeatherAPIs` avec une action `getWeather` qui aide votre utilisateur à obtenir la météo d’un lieu spécifique. Les paramètres requis de l’action sont `location` et `date`. Le groupe d’actions est configuré pour redonner le contrôle au développeur de l’agent.

Voici une séquence hypothétique qui pourrait se produire :

1. L’utilisateur demande à votre agent la requête suivante : **What should I do today?** Cette requête est envoyée dans le champ `inputText` d’une 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).

1. Votre agent reconnaît que l’action `suggestActivities` doit être invoquée, mais compte tenu de la description, il prévoit qu’il doit d’abord invoquer l’action `getWeather` comme contexte pour aider à exécuter l’action `suggestActivities`.

1. L’agent sait que la `date` courante est `2024-09-15`, mais il a besoin du paramètre `location` de l’utilisateur pour obtenir la météo. Il pose à nouveau à l’utilisateur la question « Où vous situez-vous ? »

1. L’utilisateur répond **Seattle**.

1. L’agent renvoie les paramètres pour `getWeather` dans 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) suivante (sélectionnez un onglet pour voir des exemples de groupe d’actions défini avec cette méthode) :

------
#### [ Function details ]

   ```
   HTTP/1.1 200
   x-amzn-bedrock-agent-content-type: application/json
   x-amz-bedrock-agent-session-id: session0
   Content-type: application/json
    
   {
       "returnControl": {
           "invocationInputs": [{
               "functionInvocationInput": {
                   "actionGroup": "WeatherAPIs",
                   "function": "getWeather",
                   "parameters": [
                       {
                           "name": "location",
                           "type": "string",
                           "value": "seattle"
                       },
                       {
                           "name": "date",
                           "type": "string",
                           "value": "2024-09-15"
                       }
                   ]
               }
           }],
           "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172"
       }
   }
   ```

------
#### [ OpenAPI schema ]

   ```
   HTTP/1.1 200
   x-amzn-bedrock-agent-content-type: application/json
   x-amz-bedrock-agent-session-id: session0
   Content-type: application/json
   
   {
       "invocationInputs": [{
           "apiInvocationInput": {
               "actionGroup": "WeatherAPIs",
               "apiPath": "/get-weather",
               "httpMethod": "get",
               "parameters": [
                   {
                       "name": "location",
                       "type": "string",
                       "value": "seattle"
                   },
                   {
                       "name": "date",
                       "type": "string",
                       "value": "2024-09-15"
                   }
               ]
           }
       }],
       "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad"
   }
   ```

------

1. Votre application est configurée pour utiliser ces paramètres afin d’obtenir la météo pour `seattle` à la date du `2024-09-15`. Le temps devrait être pluvieux.

1. Vous envoyez ces résultats dans le champ `sessionState` d’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), en utilisant les mêmes `invocationId`, `actionGroup` et `function` que la réponse précédente. Sélectionnez un onglet pour voir des exemples de groupes d’actions définis avec cette méthode :

------
#### [ Function details ]

   ```
   POST https://bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text
               
   {
       "enableTrace": true,
       "sessionState": {
           "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172",
           "returnControlInvocationResults": [{
               "functionResult": {
                   "actionGroup": "WeatherAPIs",
                   "function": "getWeather",
                   "responseBody": {
                       "TEXT": {
                           "body": "It's rainy in Seattle today."
                       }
                   }
               }
           }]
       }
   }
   ```

------
#### [ OpenAPI schema ]

   ```
   POST https: //bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text
    
   {
       "enableTrace": true,
       "sessionState": {
           "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad",
           "returnControlInvocationResults": [{
               "apiResult": {
                   "actionGroup": "WeatherAPIs",
                   "httpMethod": "get",
                   "apiPath": "/get-weather",
                   "responseBody": {
                       "application/json": {
                           "body": "It's rainy in Seattle today."
                       }
                   }
               }
           }]
       }
   }
   ```

------

1. L’agent prédit qu’il doit appeler l’action `suggestActivities`. Il utilise le contexte selon lequel il pleut ce jour-là et suggère à l’utilisateur des activités intérieures plutôt qu’extérieures dans la réponse.

### Exemple de retour du contrôle à l’agent collaborateur
<a name="collaborator-agent-returncontrol-ex"></a>

Si vous utilisez la [collaboration multi-agent](agents-multi-agent-collaboration.md) et si un agent collaborateur choisit de reprendre le contrôle en envoyant les informations contenues dans 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), les informations sont renvoyées dans la réponse de l’agent superviseur avec les identifiants `agentId` et `collaboratorName` supplémentaires. Sélectionnez un onglet pour voir des exemples de groupes d’actions définis avec cette méthode : 

------
#### [ Function details ]

```
HTTP/1.1 200
x-amzn-bedrock-agent-content-type: application/json
x-amz-bedrock-agent-session-id: session0
Content-type: application/json
 
{
    "returnControl": {
        "invocationInputs": [{
            "functionInvocationInput": {
                "agentId": "AGENTID",
                "collaboratorName": "WeatherAgent"
                "actionGroup": "WeatherAPIs",
                "function": "getWeather",
                "parameters": [
                    {
                        "name": "location",
                        "type": "string",
                        "value": "seattle"
                    },
                    {
                        "name": "date",
                        "type": "string",
                        "value": "2024-09-15"
                    }
                ]
            }
        }],
        "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172"
    }
}
```

------
#### [ OpenAPI Schema ]

```
HTTP/1.1 200
x-amzn-bedrock-agent-content-type: application/json
x-amz-bedrock-agent-session-id: session0
Content-type: application/json

{
    "invocationInputs": [{
        "apiInvocationInput": {
            "actionGroup": "WeatherAPIs",
            "agentId": "AGENTID",
            "collaboratorName": "WeatherAgent"
            "apiPath": "/get-weather",
            "httpMethod": "get",
            "parameters": [
                {
                    "name": "location",
                    "type": "string",
                    "value": "seattle"
                },
                {
                    "name": "date",
                    "type": "string",
                    "value": "2024-09-15"
                }
            ]
        }
    }],
    "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad"
}
```

------

L’invocateur de l’agent superviseur renvoie les résultats du champ `sessionState` à l’agent superviseur avec le `agentId` correspondant pour qu’ils soient propagés au bon agent collaborateur.

------
#### [ Function details ]

```
POST https://bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text
            
{
    "enableTrace": true,
    "sessionState": {
        "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172",
        "returnControlInvocationResults": [{
            "functionResult": {
                "agentId": "AGENTID",
                "actionGroup": "WeatherAPIs",
                "function": "getWeather",
                "responseBody": {
                    "TEXT": {
                        "body": "It's rainy in Seattle today."
                    }
                }
            }
        }]
    }
}
```

------
#### [ OpenAPI Schema ]

```
POST https: //bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text
 
{
    "enableTrace": true,
    "sessionState": {
        "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad",
        "returnControlInvocationResults": [{
            "apiResult": {
                "agentId": "AGENTID",
                "actionGroup": "WeatherAPIs",
                "httpMethod": "get",
                "apiPath": "/get-weather",
                "responseBody": {
                    "application/json": {
                        "body": "It's rainy in Seattle today."
                    }
                }
            }
        }]
    }
}
```

------