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 un mayor control del contexto de la sesión, puede modificar la 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>", ... }, "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 } } }, ... ] }

Seleccione un tema para obtener más información sobre los campos del SessionStateobjeto.

Atributos de sesión y sesión de peticiones

Los agentes de Amazon Bedrock le permiten 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.

  • conversationHistory— En el caso de la colaboración entre varios agentes, acepta un contexto adicional para procesar las solicitudes de tiempo de ejecución si conversationalHistorySharing está habilitada para un agente colaborador. De forma predeterminada, el agente supervisor crea este campo automáticamente al invocar al agente colaborador. Si lo desea, puede utilizar este campo para proporcionar contexto adicional. Para obtener más información, consulte Utilice la colaboración entre varios agentes con Amazon Bedrock Agents .

  • promptSessionAttributes— Atributos que persisten durante un solo turno (uno) InvokeAgentllamada). Puede usar el marcador de posición $prompt_session_attributes$ al editar la plantilla de peticiones de orquestación básica. Este marcador de posición se rellenará en el tiempo de ejecución con los atributos que especifique 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 de Lambda, incluya sessionAttributes o promptSessionAttributes en el evento de respuesta que se devuelve a Amazon Bedrock.

  • Durante el tiempo de ejecución, cuando envías 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 la sesión

En el siguiente ejemplo, se utiliza un atributo de la sesión para personalizar un mensaje para el usuario.

  1. Escribe el código de tu aplicación para pedirle al usuario que proporcione su nombre y la solicitud que quiere hacer al agente y para almacenar 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 su aplicación y proporciona su nombre, su código enviará el nombre como un atributo de la sesión y el agente almacenará dicho nombre durante toda la sesión.

  4. Como los atributos de la sesión se envían en el evento de entrada de Lambda, puede hacer referencia a estos atributos de la 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 de atributo de la sesión de peticiones

En el siguiente ejemplo general, se utiliza un atributo de la sesión de peticiones para proporcionar un contexto temporal al agente.

  1. Escribe el código de tu 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 el usuario utiliza una palabra que indique la hora relativa (como «mañana») y guárdela en una variable llamada<timezone>. <request>

  3. Escriba su solicitud para enviar un InvokeAgentsolicitud ante el siguiente organismo:

    { "inputText": "<request>", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>" } } }
  4. Si un usuario usa una palabra que indique un tiempo relativo, su código enviará el atributo de la sesión de peticiones timeZone y el agente lo guardará durante todo el turno.

  5. Por ejemplo, si un usuario pregunta I need to book a hotel for tomorrow, el código enviará la zona horaria del usuario al agente y el agente determinará la fecha exacta a la que se refiere la palabra “mañana”.

  6. El atributo de la sesión de peticiones se puede utilizar en los siguientes pasos.

Resultados de la invocación del grupo 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 realizar 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 lista returnControlInvocationResults es uno de los siguientes objetos:

    • 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", "agentId" : :string", "apiPath": "string", "confirmationState" : "CONFIRM | DENY", "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", "agentId" : :string", "confirmationState" : "CONFIRM | DENY", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }

Los resultados pueden usarse como contexto para una mayor orquestación, enviarse al procesamiento posterior 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 asociadas a su agente, incluya el campo knowledgeBaseConfigurations con una lista de configuraciones para cada base de conocimientos cuyas configuraciones desee especificar. Especifique el knowledgeBaseId. En el campo vectorSearchConfiguration, puede especificar las siguientes configuraciones de consulta (para obtener más información sobre estas configuraciones, consulte Configuración y personalización de 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). Use el campo overrideSearchType.

  • Número máximo de resultados recuperados: el número máximo de resultados recuperados de la consulta que se utilizará 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 del origen de datos.