Contexto de sesión del agente de control - Amazon Bedrock

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.

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 el idleSessionTTLinSeconds 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 o promptSessionAttributes 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.

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

  2. Escribe el código de tu aplicación para enviar un InvokeAgentsolicitud ante el siguiente organismo:

    { "inputText": "<request>", "sessionState": { "sessionAttributes": { "firstName": "<first_name>" } } }
  3. 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.

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

  1. Escriba el código de la aplicación para almacenar la solicitud del usuario en una variable llamada <request>.

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

  3. Escribe tu solicitud para enviar un InvokeAgentsolicitud ante el siguiente organismo:

    { "inputText": "<request>", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>" } } }
  4. 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.

  5. Por ejemplo, si un usuario preguntaI 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».

  6. El atributo prompt session se puede utilizar en los siguientes pasos.

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 el invocationId devuelto en el ReturnControlPayloadobjeto en el returnControl 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 la returnControlInvocationResults 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.