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

Redonnez 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 la customControl valeur de l'actionGroupExecutorobjet dans une UpdateAgentActionGroupdemande CreateAgentActionGroupou. Pour de plus amples informations, veuillez consulter Ajoutez un groupe d'action à 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 invocationInputs champ de la InvokeAgentréponse, avec un identifiant unique. invocationId Vous pouvez alors effectuer ce qui suit :

  • Configurez votre application pour appeler l'API ou la fonction que vous avez définie, à condition que les informations soient renvoyées dans leinvocationInputs.

  • Envoyez les résultats de l'invocation de votre application dans une autre InvokeAgentdemande, sessionState sur le terrain, pour fournir du contexte à l'agent. Vous devez utiliser le même invocationId et celui actionGroup qui a été renvoyé dans la InvokeAgentréponse. 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 l'incluez returnControlInvocationResults dans le sessionState champ, le inputText champ 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, voirAjoutez un groupe d'action à 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 PlanTrip d'action avec une suggestActivities action qui aide vos utilisateurs à trouver des activités à effectuer pendant un voyage. Le description nom de cette action indiqueThis action suggests activities based on retrieved weather information.

  • Un groupe WeatherAPIs d'action avec une getWeather action qui aide votre utilisateur à obtenir la météo d'un lieu spécifique. Les paramètres requis pour l'action sont location etdate. 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 inputText champ d'une InvokeAgentdemande.

  2. Votre agent reconnaît que l'suggestActivitiesaction doit être invoquée, mais compte tenu de la description, il prévoit qu'il doit d'abord invoquer l'getWeatheraction comme contexte pour aider à exécuter l'suggestActivitiesaction.

  3. L'agent sait que date c'est le courant2024-09-15, mais il a besoin location du paramètre de l'utilisateur pour obtenir la météo. Il invite à nouveau l'utilisateur à poser la question « Où vous situez-vous ? »

  4. L'utilisateur répondSeattle.

  5. L'agent renvoie les paramètres pour getWeather dans la InvokeAgentréponse 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 seattle pour cette date2024-09-15. Le temps est déterminé à être pluvieux.

  7. Vous envoyez ces résultats dans le sessionState champ d'une autre InvokeAgentdemande, en utilisant le même invocationId et function en tant que réponse précédente. actionGroup 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 lancer l'suggestActivitiesaction. 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-agents et si un agent collaborateur choisit de reprendre le contrôle en envoyant les informations contenues dans la InvokeAgentréponse, les informations sont renvoyées dans la réponse de l'agent superviseur avec des identifiants agentId supplémentaires et. collaboratorName 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 sessionState champ à l'agent superviseur avec le correspondant agentId 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." } } } }] } }