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.
Contexte de session de l'agent de contrôle
Pour un meilleur contrôle du contexte de session, vous pouvez modifier SessionStateobjet dans votre agent. La SessionStatel'objet contient des informations qui peuvent être conservées à tour de rôle (séparément) InvokeAgentdemande et réponses). Vous pouvez utiliser ces informations pour fournir un contexte conversationnel à l'agent lors des conversations avec les utilisateurs.
Le format général du SessionStatel'objet est le suivant.
{ "sessionAttributes": { "
<attributeName1>
": "<attributeValue1>"
, "<attributeName2>
": "<attributeValue2>"
, ... }, "conversationHistory": { "messages": [{ "role": "user | assistant", "content": [{ "text": "string" }] }], }, "promptSessionAttributes": { "<attributeName3>
": "<attributeValue3>"
, "<attributeName4>
": "<attributeValue4>"
, ... }, "invocationId": "string", "returnControlInvocationResults": [ ApiResult or FunctionResult, ... ], "knowledgeBases": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC", "numberOfResults": int, "filter": RetrievalFilter object } } }, ... ] }
Sélectionnez un sujet pour en savoir plus sur les champs du SessionStateobjet.
Rubriques
Attributs de session et de session d'invite
Amazon Bedrock Agents vous permet de définir les types d'attributs contextuels suivants qui persistent pendant certaines parties d'une session :
-
SessionAttributes — Attributs qui persistent tout au long d'une session entre un utilisateur et un agent. Tous InvokeAgentles demandes faites avec la même session
sessionId
appartiennent à la même session, tant que la limite de temps de session (laidleSessionTTLinSeconds
) n'a pas été dépassée. -
ConversationHistory — Pour la collaboration multi-agents, accepte un contexte supplémentaire pour le traitement des demandes d'exécution si cette option
conversationalHistorySharing
est activée pour un agent collaborateur. Par défaut, ce champ est automatiquement créé par l'agent superviseur lors de l'appel de l'agent collaborateur. Vous pouvez éventuellement utiliser ce champ pour fournir un contexte supplémentaire. Pour de plus amples informations, veuillez consulter Utilisez la collaboration multi-agents avec Amazon Bedrock Agents . -
promptSessionAttributes— Attributs qui persistent pendant un seul tour (un InvokeAgentappel). Vous pouvez utiliser l'espace réservé $prompt_session_attributes$ lorsque vous modifiez le modèle d'invite de base d'orchestration. Cet espace réservé sera renseigné au moment de l'exécution avec les attributs que vous spécifiez dans le
promptSessionAttributes
champ.
Vous pouvez définir les attributs d'état de session en deux étapes différentes :
-
Lorsque vous configurez un groupe d'action et que vous écrivez la fonction Lambda, incluez
sessionAttributes
ou incluezpromptSessionAttributes
l'événement de réponse renvoyé à Amazon Bedrock. -
Pendant l'exécution, lorsque vous envoyez un InvokeAgentdemande, incluez un
sessionState
objet dans le corps de la demande pour modifier dynamiquement les attributs d'état de session au milieu de la conversation.
Exemple d'attribut de session
L'exemple suivant utilise un attribut de session pour personnaliser un message destiné à votre utilisateur.
-
Rédigez le code de votre application pour demander à l'utilisateur de fournir son prénom et la demande qu'il souhaite faire à l'agent et pour stocker les réponses sous forme de variables
<first_name>
et<request>
. -
Rédigez le code de votre application pour envoyer un InvokeAgentdemande avec le corps suivant :
{ "inputText": "
<request>
", "sessionState": { "sessionAttributes": { "firstName": "<first_name>
" } } } -
Lorsqu'un utilisateur utilise votre application et fournit son prénom, votre code envoie le prénom en tant qu'attribut de session et l'agent enregistre son prénom pendant toute la durée de la session.
-
Comme les attributs de session sont envoyés lors de l'événement d'entrée Lambda, vous pouvez faire référence à ces attributs de session dans une fonction Lambda pour un groupe d'actions. Par exemple, si le schéma d'API d'action nécessite un prénom dans le corps de la demande, vous pouvez utiliser l'attribut
firstName
session lors de l'écriture de la fonction Lambda pour un groupe d'actions afin de remplir automatiquement ce champ lors de l'envoi de la demande d'API.
Exemple d'attribut de session rapide
L'exemple général suivant utilise un attribut de session prompt pour fournir un contexte temporel à l'agent.
-
Écrivez le code de votre application pour stocker la demande de l'utilisateur dans une variable appelée
<request>
. -
Écrivez le code de votre application pour récupérer le fuseau horaire de l'utilisateur si celui-ci utilise un mot indiquant l'heure relative (tel que « demain ») dans le
<request>
, et stockez-le dans une variable appelée<timezone>
. -
Rédigez votre candidature pour envoyer un InvokeAgentdemande avec le corps suivant :
{ "inputText": "
<request>
", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>
" } } } -
Si un utilisateur utilise un mot indiquant le temps relatif, votre code enverra l'attribut de session
timeZone
prompt et l'agent le stockera pendant toute la durée du tour. -
Par exemple, si un utilisateur le demande
I need to book a hotel for tomorrow
, votre code envoie le fuseau horaire de l'utilisateur à l'agent et celui-ci peut déterminer la date exacte à laquelle « demain » fait référence. -
L'attribut prompt session peut être utilisé lors des étapes suivantes.
-
Si vous incluez l'espace réservé $prompt_session_attributes$ dans le modèle d'invite d'orchestration, l'invite d'orchestration envoyée au FM inclut les attributs de session d'invite.
-
Résultats de l'invocation d'un groupe d'actions
Si vous avez configuré un groupe d'action pour rétablir le contrôle dans un InvokeAgentréponse, vous pouvez envoyer les résultats de l'appel du groupe d'action dans un sessionState
InvokeAgentrépondez en incluant les champs suivants :
-
invocationId
— Cet identifiant doit correspondre à celuiinvocationId
renvoyé dans l'ReturnControlPayloadobjet dans lereturnControl
champ du InvokeAgentréponse. -
returnControlInvocationResults
— Inclut les résultats que vous obtenez en invoquant l'action. Vous pouvez configurer votre application pour qu'elle transmette l'ReturnControlPayloadobjet afin d'exécuter une demande d'API ou d'appeler une fonction que vous définissez. Vous pouvez ensuite fournir les résultats de cette action ici. Chaque membre de lareturnControlInvocationResults
liste est l'un des suivants :-
Un ApiResultobjet contenant l'opération d'API dont l'agent avait prédit qu'elle devait être appelée dans un précédent InvokeAgentséquence et les résultats de l'invocation de l'action dans vos systèmes. Le format général est le suivant :
{ "actionGroup": "string", "agentId" : :string", "apiPath": "string", "confirmationState" : "CONFIRM | DENY", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
-
Un FunctionResultobjet contenant la fonction dont l'agent avait prédit qu'il devait être appelé dans un précédent InvokeAgentséquence et les résultats de l'invocation de l'action dans vos systèmes. Le format général est le suivant :
{ "actionGroup": "string", "agentId" : :string", "confirmationState" : "CONFIRM | DENY", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }
-
Les résultats fournis peuvent être utilisés comme contexte pour une orchestration ultérieure, envoyés au post-traitement pour que l'agent mette en forme une réponse, ou utilisés directement dans la réponse de l'agent à l'utilisateur.
Configurations de récupération de la base de connaissances
Pour modifier la configuration de récupération des bases de connaissances associées à votre agent, incluez le knowledgeBaseConfigurations
champ avec une liste de configurations pour chaque base de connaissances dont vous souhaitez spécifier les configurations. Spécifiez knowledgeBaseId
. Dans le vectorSearchConfiguration
champ, vous pouvez spécifier les configurations de requête suivantes (pour plus d'informations sur ces configurations, voirConfiguration et personnalisation des requêtes et de la génération de réponses) :
-
Type de recherche : indique si la base de connaissances recherche uniquement les intégrations vectorielles (
SEMANTIC
) ou à la fois les intégrations vectorielles et le texte brut ().HYBRID
Utilisez leoverrideSearchType
champ. -
Nombre maximum de résultats extraits : nombre maximal de résultats issus de l'extraction de la requête à utiliser dans la réponse.
-
Métadonnées et filtrage : filtres que vous pouvez configurer pour filtrer les résultats en fonction des attributs de métadonnées des fichiers de source de données.