Contexto da sessão do agente de controle - Amazon Bedrock

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

Contexto da sessão do agente de controle

Para maior controle do contexto da sessão, você pode modificar o SessionStateobjeto em seu agente. A SessionStateobjeto contém informações que podem ser mantidas em curvas (separadas InvokeAgentsolicitação e respostas). Você pode usar essas informações para fornecer contexto de conversação para o agente durante as conversas do usuário.

O formato geral do SessionStateo objeto é o seguinte.

{ "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 } } }, ... ] }

Selecione um tópico para saber mais sobre os campos no SessionStateobjeto.

Atributos de sessão e sessão imediata

O Amazon Bedrock Agents permite que você defina os seguintes tipos de atributos contextuais que persistem em partes de uma sessão:

  • sessionAttributes— Atributos que persistem durante uma sessão entre um usuário e um agente. Todas as InvokeAgentsolicitações feitas com a mesma sessionId pertencem à mesma sessão, desde que o limite de tempo da sessão (oidleSessionTTLinSeconds) não tenha sido ultrapassado.

  • promptSessionAttributes— Atributos que persistem em um único turno (um) InvokeAgentligar). Você pode usar o espaço reservado $prompt_session_attributes$ 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 promptSessionAttributes campo.

Você pode definir os atributos do estado da sessão em duas etapas diferentes:

  • Ao configurar um grupo de ação e escrever a função Lambda, inclua sessionAttributes ou promptSessionAttributes no evento de resposta que é retornado ao Amazon Bedrock.

  • Durante o tempo de execução, quando você envia um InvokeAgentsolicitação, inclua um sessionState objeto 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

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

  1. Escreva o código do aplicativo para solicitar que o usuário forneça seu primeiro nome e a solicitação que deseja fazer ao agente e armazene as respostas como variáveis. <first_name> e <request>.

  2. Escreva o código do seu aplicativo para enviar um InvokeAgentsolicitação com o seguinte órgão:

    { "inputText": "<request>", "sessionState": { "sessionAttributes": { "firstName": "<first_name>" } } }
  3. Quando um usuário usa seu aplicativo e fornece seu primeiro nome, seu código envia o primeiro nome como um atributo de sessão e o agente armazena seu primeiro nome durante a sessão.

  4. Como os atributos da sessão são enviados no evento de entrada do Lambda, você pode se referir a esses atributos de sessão em uma função do Lambda para um grupo de ação. Por exemplo, se o APIesquema de ação exigir um primeiro nome no corpo da solicitação, você poderá usar o atributo de firstName sessão ao escrever a função Lambda para que um grupo de ações preencha automaticamente esse campo ao enviar a solicitação. API

Exemplo de atributo de sessão rápida

O exemplo geral a seguir usa um atributo de sessão rápida para fornecer contexto temporal para o agente.

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

  2. Escreva o código do seu aplicativo para recuperar o fuso horário no local do usuário se o usuário usar uma palavra indicando a hora relativa (como “amanhã”) no <request>e armazene em uma variável chamada <timezone>.

  3. Escreva sua inscrição para enviar um InvokeAgentsolicitação com o seguinte órgão:

    { "inputText": "<request>", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>" } } }
  4. Se um usuário usar uma palavra indicando tempo relativo, seu código enviará o atributo de sessão timeZone prompt e o agente o armazenará durante o turno.

  5. Por exemplo, se um usuário perguntarI need to book a hotel for tomorrow, seu código envia o fuso horário do usuário para o agente e o agente pode determinar a data exata à qual “amanhã” se refere.

  6. O atributo prompt session pode ser usado nas etapas a seguir.

Resultados da invocação do grupo de ação

Se você configurou um grupo de ação para retornar o controle em um InvokeAgentresposta, você pode enviar os resultados da invocação do grupo de ação em uma resposta sessionState subsequente InvokeAgentresposta incluindo os seguintes campos:

  • invocationId— Esse ID deve corresponder ao invocationId retornado no ReturnControlPayloadobjeto no returnControl campo do InvokeAgentresposta.

  • returnControlInvocationResults— Inclui resultados que você obtém ao invocar a ação. Você pode configurar seu aplicativo para passar o ReturnControlPayloadobjeto para realizar uma API solicitação ou chamar uma função que você define. Em seguida, você pode fornecer os resultados dessa ação aqui. Cada membro da returnControlInvocationResults lista é um dos seguintes:

    • Um ApiResultobjeto contendo a API operação que o agente previu que deveria ser chamada em uma operação anterior InvokeAgentsequência e os resultados da invocação da ação em seus sistemas. O formato geral é o seguinte:

      { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
    • Um FunctionResultobjeto contendo a função que o agente previu que deveria ser chamada em um anterior InvokeAgentsequência e os resultados da invocação da ação em seus sistemas. O formato geral é o seguinte:

      { "actionGroup": "string", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }

Os resultados fornecidos podem ser usados como contexto para orquestração adicional, enviados ao 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

Para modificar a configuração de recuperação das bases de conhecimento anexadas ao seu agente, inclua o knowledgeBaseConfigurations campo com uma lista de configurações para cada base de conhecimento cujas configurações você deseja especificar. Especifique knowledgeBaseId. No vectorSearchConfiguration campo, você pode especificar as seguintes configurações de consulta (para obter mais informações sobre essas configurações, consulteConfigure e personalize consultas e geração de respostas):

  • Tipo de pesquisa — Se a base de conhecimento pesquisa somente incorporações vetoriais (SEMANTIC) ou incorporações vetoriais e texto bruto (HYBRID). Use o overrideSearchType campo.

  • 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 você pode configurar para filtrar os resultados com base nos atributos de metadados nos arquivos da fonte de dados.