Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Contexto de sesión del agente de control
Para tener un mayor control del contexto de la sesión, puede modificar el SessionStateobjeto en su agente. Con la SessionStateel objeto contiene información que se puede conservar a lo largo de los turnos (separada) InvokeAgentsolicitud y respuestas). Puede utilizar esta información para proporcionar un contexto conversacional al agente durante las conversaciones con los usuarios.
El formato general del SessionStateel objeto es el siguiente.
{ "sessionAttributes": { "
<attributeName1>
": "<attributeValue1>"
, "<attributeName2>
": "<attributeValue2>"
, ... }, "promptSessionAttributes": { "<attributeName3>
": "<attributeValue3>"
, "<attributeName4>
": "<attributeValue4>"
, ... }, "invocationId": "string", "returnControlInvocationResults": [ ApiResult or FunctionResult, ... ], "knowledgeBases": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC", "numberOfResults": int, "filter": RetrievalFilter object } } }, ... ] }
Seleccione un tema para obtener más información sobre los campos del SessionStateobjeto.
Temas
Atributos de sesión y sesión rápida
Amazon Bedrock Agents le permite definir los siguientes tipos de atributos contextuales que persisten durante partes de una sesión:
-
sessionAttributes— Atributos que persisten durante una sesión entre un usuario y un agente. Todas las InvokeAgentlas solicitudes realizadas con la misma
sessionId
pertenecen a la misma sesión, siempre que no se haya superado elidleSessionTTLinSeconds
límite de tiempo de la sesión. -
promptSessionAttributes— Atributos que persisten durante un solo turno (uno) InvokeAgentllamada). Puedes usar el marcador de posición $prompt_session_attributes$ al editar la plantilla de mensajes base de orquestación. Este marcador de posición se rellenará en tiempo de ejecución con los atributos que especifiques en el campo.
promptSessionAttributes
Puede definir los atributos del estado de la sesión en dos pasos diferentes:
-
Al configurar un grupo de acciones y escribir la función Lambda, incluya
sessionAttributes
opromptSessionAttributes
en el evento de respuesta que se devuelve a Amazon Bedrock. -
Durante el tiempo de ejecución, cuando envía un InvokeAgentsolicitud, incluye un
sessionState
objeto en el cuerpo de la solicitud para cambiar dinámicamente los atributos del estado de la sesión en mitad de la conversación.
Ejemplo de atributo de sesión
En el siguiente ejemplo, se utiliza un atributo de sesión para personalizar un mensaje para el usuario.
-
Escriba el código de la aplicación para pedir al usuario que proporcione su nombre y la solicitud que desea realizar al agente, y almacene las respuestas como variables
<first_name>
y<request>
. -
Escribe el código de tu aplicación para enviar un InvokeAgentsolicitud ante el siguiente organismo:
{ "inputText": "
<request>
", "sessionState": { "sessionAttributes": { "firstName": "<first_name>
" } } } -
Cuando un usuario usa tu aplicación y proporciona su nombre, tu código enviará el nombre como atributo de sesión y el agente guardará su nombre durante toda la sesión.
-
Como los atributos de sesión se envían en el evento de entrada de Lambda, puede hacer referencia a estos atributos de sesión en una función de Lambda para un grupo de acciones. Por ejemplo, si el APIesquema de acción requiere un nombre en el cuerpo de la solicitud, puede usar el atributo
firstName
session al escribir la función Lambda para que un grupo de acciones complete automáticamente ese campo al enviar la solicitud. API
Ejemplo del atributo Prompt session
En el siguiente ejemplo general, se utiliza un atributo prompt session para proporcionar un contexto temporal al agente.
-
Escriba el código de la aplicación para almacenar la solicitud del usuario en una variable llamada
<request>
. -
Escriba el código de la aplicación para recuperar la zona horaria en la ubicación del usuario si este utiliza una palabra que indique la hora relativa (como «mañana») en el
<request>
, y guárdelo en una variable llamada<timezone>
. -
Escribe tu solicitud para enviar un InvokeAgentsolicitud ante el siguiente organismo:
{ "inputText": "
<request>
", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>
" } } } -
Si un usuario usa una palabra que indique el tiempo relativo, tu código enviará el atributo
timeZone
prompt session y el agente lo guardará durante el turno. -
Por ejemplo, si un usuario pregunta
I need to book a hotel for tomorrow
, tu código envía la zona horaria del usuario al agente y el agente puede determinar la fecha exacta a la que se refiere «mañana». -
El atributo prompt session se puede utilizar en los siguientes pasos.
-
Si incluye el marcador de posición $prompt_session_attributes$ en la plantilla de mensaje de orquestación, el mensaje de orquestación del FM incluye los atributos de sesión del mensaje.
-
Resultados de la invocación de grupos de acciones
Si configuró un grupo de acciones para devolver el control en un InvokeAgentrespuesta, puede enviar los resultados de la invocación del grupo sessionState
de acciones en otra posterior InvokeAgentresponda incluyendo los siguientes campos:
-
invocationId
— Este identificador debe coincidir con elinvocationId
devuelto en el ReturnControlPayloadobjeto en elreturnControl
campo del InvokeAgentrespuesta. -
returnControlInvocationResults
— Incluye los resultados que se obtienen al invocar la acción. Puede configurar su aplicación para que pase el ReturnControlPayloadobjeto a fin de ejecutar una API solicitud o llamar a una función que usted defina. A continuación, puede proporcionar los resultados de esa acción aquí. Cada miembro de lareturnControlInvocationResults
lista es uno de los siguientes:-
Un ApiResultobjeto que contiene la API operación que el agente predijo que debería invocarse anteriormente InvokeAgentsecuencia y los resultados de la invocación de la acción en sus sistemas. El formato general es el siguiente:
{ "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
-
Un FunctionResultobjeto que contiene la función que el agente predijo que debería invocarse anteriormente InvokeAgentsecuencia y los resultados de la invocación de la acción en sus sistemas. El formato general es el siguiente:
{ "actionGroup": "string", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }
-
Los resultados que se proporcionan se pueden usar como contexto para una mayor organización, enviarse al posprocesamiento para que el agente formatee una respuesta o usarse directamente en la respuesta del agente al usuario.
Configuraciones de recuperación de la base de conocimientos
Para modificar la configuración de recuperación de las bases de conocimiento adjuntas a su agente, incluya el knowledgeBaseConfigurations
campo con una lista de configuraciones para cada base de conocimiento cuyas configuraciones desee especificar. Especifique el knowledgeBaseId
. En el vectorSearchConfiguration
campo, puede especificar las siguientes configuraciones de consulta (para obtener más información sobre estas configuraciones, consulteConfigurar y personalizar las consultas y la generación de respuestas):
-
Tipo de búsqueda: si la base de conocimientos busca solo incrustaciones vectoriales (
SEMANTIC
) o tanto incrustaciones vectoriales como texto sin procesar ().HYBRID
Usa el campo.overrideSearchType
-
Número máximo de resultados recuperados: el número máximo de resultados de la recuperación de consultas que se utilizarán en la respuesta.
-
Metadatos y filtrado: filtros que puede configurar para filtrar los resultados en función de los atributos de los metadatos de los archivos de la fuente de datos.