

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Controlar o contexto da sessão do agente
<a name="agents-session-state"></a>

Para maior controle do contexto da sessão, é possível modificar o objeto [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState) no agente. O objeto [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState) contém informações que podem ser mantidas em turnos (solicitações e respostas [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) separadas). É possível usar essas informações para fornecer contexto conversacional ao agente durante conversas com o usuário.

O formato do objeto [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState) é o seguinte:

```
{
    "sessionAttributes": {
        "<attributeName1>": "<attributeValue1>",
        "<attributeName2>": "<attributeValue2>",
        ...
    },
     "conversationHistory": {
          "messages": [{
              "role": "user | assistant",
              "content": [{
                  "text": "string"
              }]
          }],
               },
    "promptSessionAttributes": {
        "<attributeName3>": "<attributeValue3>",
        "<attributeName4>": "<attributeValue4>",
        ...
    },
    "invocationId": "string",
    "returnControlInvocationResults": [
        [ApiResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ApiResult.html) or [FunctionResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_FunctionResult.html),
        ...
    ],
    "knowledgeBases": [
       {
        "knowledgeBaseId": "string",
        "retrievalConfiguration": {
            "vectorSearchConfiguration": {
                "overrideSearchType": "HYBRID | SEMANTIC",
                "numberOfResults": int,
                "filter": [RetrievalFilter](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html) object
            }
        }
       },
       ...
    ]
}
```

Selecione um tópico para saber mais sobre os campos no objeto [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState).

**Topics**
+ [Atributos da sessão e da sessão de prompt](#session-state-attributes)
+ [Exemplo de atributo de sessão](#session-attribute-ex)
+ [Exemplo de atributo de sessão de prompt](#prompt-session-attribute-ex)
+ [Resultados da invocação do grupo de ação](#session-state-return-control)
+ [Configurações de recuperação da base de conhecimento](#session-state-kb)

## Atributos da sessão e da sessão de prompt
<a name="session-state-attributes"></a>

O Amazon Bedrock Agents permite definir os seguintes tipos de atributo contextual que persistem em partes de uma sessão:
+ **sessionAttributes**: atributos que persistem durante uma [sessão](advanced-prompts.md#advanced-prompts-terminology) entre um usuário e um agente. Todas as solicitações [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) feitas com o mesmo `sessionId` pertencem à mesma sessão, desde que o limite de tempo da sessão (`idleSessionTTLinSeconds`) não tenha sido ultrapassado.
+ **conversationHistory**: para colaboração multiagente, aceita contexto adicional para processar solicitações em tempo de execução se `conversationalHistorySharing` estiver habilitado para um agente colaborador. Por padrão, esse campo é criado automaticamente pelo agente supervisor ao invocar o agente colaborador. Opcionalmente, você pode usar esse campo para fornecer contexto adicional. Para obter mais informações, consulte [Usar a colaboração multiagente com Agentes do Amazon Bedrock](agents-multi-agent-collaboration.md).
+ **promptSessionAttributes**: atributos que persistem em um único [turno](advanced-prompts.md#advanced-prompts-terminology) (uma chamada [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html)). É possível usar o [espaço reservado](prompt-placeholders.md) \$1prompt\$1session\$1attributes\$1 ao editar o modelo de prompt base da orquestração. Esse espaço reservado será preenchido em tempo de execução com os atributos que você especificar no campo `promptSessionAttributes`.

É possível definir os atributos do estado da sessão em duas etapas diferentes:
+ Ao configurar um grupo de ação e [escrever a função do Lambda](agents-lambda.md), inclua `sessionAttributes` ou `promptSessionAttributes` no [evento de resposta](agents-lambda.md#agents-lambda-response) retornado ao Amazon Bedrock.
+ Durante o runtime, ao enviar uma solicitação [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html), inclua um objeto `sessionState` no corpo da solicitação para alterar dinamicamente os atributos do estado da sessão no meio da conversa.

## Exemplo de atributo de sessão
<a name="session-attribute-ex"></a>

O exemplo a seguir usa um atributo de sessão para personalizar uma mensagem para o usuário.

1. Escreva o código da aplicação para solicitar que o usuário forneça seu nome e a solicitação que ele deseja fazer ao agente e armazene as respostas como variáveis *<first\$1name>* e *<request>*.

1. Escreva o código da aplicação para enviar uma solicitação [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) com o seguinte corpo:

   ```
   {
       "inputText": "<request>",
       "sessionState": {
           "sessionAttributes": {
               "firstName": "<first_name>"
           }
       }
   }
   ```

1. Quando um usuário usa a aplicação e fornece seu nome, o código envia o nome como um atributo da sessão e o agente armazena o nome enquanto a [sessão](advanced-prompts.md#advanced-prompts-terminology) durar.

1. Como os atributos da sessão são enviados no [evento de entrada do Lambda](agents-lambda.md#agents-lambda-input), é possível fazer referência a esses atributos de sessão em uma função do Lambda de um grupo de ação. Por exemplo, se o [esquema de API](agents-api-schema.md) da ação exigir um nome no corpo da solicitação, será possível usar o atributo de sessão `firstName` ao escrever a função do Lambda para que um grupo de ação preencha automaticamente esse campo ao enviar a solicitação de API.

## Exemplo de atributo de sessão de prompt
<a name="prompt-session-attribute-ex"></a>

O exemplo geral a seguir usa um atributo de sessão de prompt para fornecer contexto temporal ao agente.

1. Escreva o código da aplicação para armazenar a solicitação do usuário em uma variável chamada *<request>*.

1. Escreva o código da aplicação para recuperar o fuso horário no local do usuário, se o usuário usar uma palavra indicando o tempo relativo (como “amanhã”) na *<request>*, e armazene em uma variável chamada *<timezone>*.

1. Escreva a aplicação para enviar uma solicitação [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) com o seguinte corpo:

   ```
   {
       "inputText": "<request>",
       "sessionState": {
           "promptSessionAttributes": {
               "timeZone": "<timezone>"
           }
       }
   }
   ```

1. Se um usuário usar uma palavra indicando o tempo relativo, o código enviará o atributo `timeZone` da sessão de prompt, e o agente o armazenará durante todo o [turno](advanced-prompts.md#advanced-prompts-terminology).

1. Por exemplo, se um usuário solicitar **I need to book a hotel for tomorrow**, o código enviará o fuso horário do usuário ao agente, e o agente poderá determinar a data exata à qual “amanhã” se refere.

1. O atributo da sessão de prompt pode ser usado nas etapas a seguir.
   + Se você incluir o [espaço reservado](prompt-placeholders.md) \$1prompt\$1session\$1attributes\$1 no modelo de prompt de orquestração, o prompt de orquestração para o FM incluirá os atributos da sessão de prompt.
   + Os atributos de sessão de prompt são enviados no [Evento de entrada do Lambda](agents-lambda.md#agents-lambda-input) e podem ser usados para ajudar a preencher as solicitações de API ou retornados na [resposta](agents-lambda.md#agents-lambda-response).

## Resultados da invocação do grupo de ação
<a name="session-state-return-control"></a>

Se você tiver configurado um grupo de ação para [retornar o controle em uma resposta [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html)](agents-returncontrol.md), poderá enviar os resultados da invocação do grupo de ação no `sessionState` em uma resposta [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) subsequente, incluindo os seguintes campos:
+ `invocationId`: esse ID deve corresponder ao `invocationId` retornado no objeto [ReturnControlPayload](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ReturnControlPayload.html) no campo `returnControl` da resposta [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html).
+ `returnControlInvocationResults`: inclui os resultados obtidos ao invocar a ação. É possível configurar a aplicação para transmitir o objeto [ReturnControlPayload](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ReturnControlPayload.html) para executar uma solicitação de API ou chamar uma função definida. É possível fornecer os resultados dessa ação aqui. Cada membro da lista `returnControlInvocationResults` é um dos seguintes:
  + Um objeto [ApiResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ApiResult.html) que contém a operação de API que o agente previu que deveria ser chamada em uma sequência [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) anterior e os resultados da invocação da ação nos sistemas. O formato geral é o seguinte:

    ```
    {
        "actionGroup": "string",
        "agentId" : :string",
        "apiPath": "string",
        "confirmationState" : "CONFIRM | DENY",
        "httpMethod": "string",
        "httpStatusCode": integer,
        "responseBody": {
            "TEXT": {
                "body": "string"
            }
        }
    }
    ```
  + Um objeto [FunctionResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_FunctionResult.html) que contém a função que o agente previu que deveria ser chamada em uma sequência [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) anterior e os resultados da invocação da ação nos sistemas. O formato geral é o seguinte:

    ```
    {
        "actionGroup": "string",
        "agentId" : :string",
        "confirmationState" : "CONFIRM | DENY",
        "function": "string",
        "responseBody": {
            "TEXT": {
                "body": "string"
            }
        }
    }
    ```

Os resultados fornecidos podem ser usados como contexto para orquestração adicional, enviados para pós-processamento para que o agente formate uma resposta ou usados diretamente na resposta do agente ao usuário.

## Configurações de recuperação da base de conhecimento
<a name="session-state-kb"></a>

Para modificar a configuração de recuperação das bases de conhecimento anexadas ao agente, inclua o campo `knowledgeBaseConfigurations` com uma lista de configurações para cada base de conhecimento cujas configurações você deseja especificar. Especifique o `knowledgeBaseId`. No campo `vectorSearchConfiguration`, é possível especificar as seguintes configurações de consulta (para obter mais informações sobre essas configurações, consulte[Configurar e personalizar consultas e geração de respostas](kb-test-config.md)):
+ **Tipo de pesquisa**: se a base de conhecimento pesquisa somente incorporações de vetores (`SEMANTIC`) ou incorporações de vetores e texto bruto (`HYBRID`). Use o campo `overrideSearchType`.
+ **Número máximo de resultados recuperados**: o número máximo de resultados da recuperação da consulta a serem usados na resposta.
+ **Metadados e filtragem**: filtros que é possível configurar para filtrar os resultados com base nos atributos de metadados nos arquivos da fonte de dados.