Redonner le contrôle au développeur de l’agent en envoyant les informations obtenues dans une réponse InvokeAgent - Amazon Bedrock

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

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 InvokeAgent. 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 CreateAgentActionGroup ou UpdateAgentActionGroup. Pour plus d’informations, consultez Ajout d’un groupe d’actions à votre agent dans Amazon Bedrock.

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 InvokeAgent, 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 InvokeAgent, 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 InvokeAgent. 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.

Exemple de retour du contrôle au développeur de l’agent

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 InvokeAgent.

  2. 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.

  3. 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 ? »

  4. L’utilisateur répond Seattle.

  5. L’agent renvoie les paramètres pour getWeather dans la réponse InvokeAgent 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" }
  6. 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.

  7. Vous envoyez ces résultats dans le champ sessionState d’une autre demande InvokeAgent, 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." } } } }] } }
  8. 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

Si vous utilisez la collaboration multi-agent et si un agent collaborateur choisit de reprendre le contrôle en envoyant les informations contenues dans la réponse InvokeAgent, 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." } } } }] } }