View a markdown version of this page

Use sessões isoladas para agentes - Base da Amazônia AgentCore

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

Use sessões isoladas para agentes

O Amazon Bedrock AgentCore Runtime permite isolar cada sessão de usuário e reutilizar o contexto com segurança em várias invocações em uma sessão de usuário. O isolamento da sessão é fundamental para as cargas de trabalho dos agentes de IA devido às suas características operacionais exclusivas:

  • Separação completa do ambiente de execução: cada sessão de usuário no AgentCore Runtime recebe sua própria microVM dedicada com recursos isolados de computação, memória e sistema de arquivos. Isso impede que o agente de um usuário acesse os dados de outro usuário. Após a conclusão da sessão, toda a microVM é encerrada e a memória é higienizada para remover todos os dados da sessão, eliminando os riscos de contaminação entre sessões.

  • Processos de raciocínio com estado: ao contrário das funções sem estado, os agentes de IA mantêm um estado contextual complexo durante todo o ciclo de execução, além do simples histórico de mensagens para conversas em vários turnos. AgentCore O Runtime preserva esse estado com segurança em uma sessão, ao mesmo tempo em que garante o isolamento completo entre diferentes usuários, permitindo experiências personalizadas aos agentes sem comprometer os limites dos dados.

  • Operações privilegiadas de ferramentas: os agentes de IA realizam operações privilegiadas em nome dos usuários por meio de ferramentas integradas que acessam vários recursos. AgentCore O modelo de isolamento do Runtime garante que essas operações de ferramentas mantenham contextos de segurança adequados e evite o compartilhamento de credenciais ou o aumento de permissões entre diferentes sessões de usuário.

  • Segurança determinística para processos não determinísticos: o comportamento dos agentes de IA pode ser não determinístico devido à natureza probabilística dos modelos básicos. AgentCore O tempo de execução fornece limites de isolamento consistentes e determinísticos, independentemente dos padrões de execução do agente, fornecendo as propriedades de segurança previsíveis necessárias para implantações corporativas.

nota

AgentCore não impõe mapeamentos de sessão para usuário - o back-end do cliente deve manter a relação entre os usuários e seus IDs de sessão. Além disso, o back-end do seu cliente deve implementar uma lógica para o gerenciamento do ciclo de vida de usuário para sessão, como o número máximo de sessões por usuário. Para obter uma orientação completa de isolamento da sessão, consulte Práticas recomendadas de segurança para o AgentCore Runtime.

Compreendendo o contexto efêmero

Por padrão, a computação (microVM) associada a uma sessão é efêmera. Todos os dados armazenados na memória ou gravados em disco persistem somente durante o ciclo de vida da computação. Isso inclui histórico de conversas, preferências do usuário, resultados de cálculos intermediários e qualquer outra informação de estado que seu agente mantenha.

Para manter os dados do sistema de arquivos em todos os stop/resume ciclos da sessão, configure o armazenamento da sessão — um diretório persistente que sobrevive ao encerramento da computação. Consulte Configurações do sistema de arquivos para AgentCore Runtime.

Para dados estruturados que precisam ser retidos além da duração da sessão (como histórico de conversas do usuário, preferências aprendidas ou informações importantes), use AgentCore Memória. Esse serviço fornece armazenamento persistente desenvolvido especificamente para cargas de trabalho de agentes, com recursos de memória de curto e longo prazo.

Conversas estendidas e fluxos de trabalho em várias etapas

Ao contrário das funções sem servidor tradicionais que terminam após cada solicitação, AgentCore oferece suporte a sessões isoladas apoiadas por cálculos efêmeros. As sessões duram até 8 horas para cada ciclo de vida em microVMs ou até 14 dias em instâncias. Com essas sessões, você pode criar fluxos de trabalho agentes de várias etapas, fazendo várias chamadas para o mesmo ambiente, com cada invocação baseada no contexto de interações anteriores. Você pode usar tanto InvokeAgentRuntime para raciocínio do agente quanto InvokeAgentRuntimeCommand para execução determinística de comandos shell na mesma sessão.

AgentCore Ciclo de vida da sessão de tempo de execução

Criação de sessão

Uma nova sessão é criada na primeira invocação com um tempo de execução exclusivo SessionId fornecido pelo seu aplicativo. AgentCore O Runtime provisiona um ambiente de execução dedicado (microVM) para cada sessão. O contexto é preservado entre as invocações para a mesma sessão. Ambos InvokeAgentRuntime InvokeAgentRuntimeCommand operam na mesma sessão — um comando vê o mesmo contêiner, sistema de arquivos e ambiente do agente.

Estados da sessão

O estado da sessão é determinado pelo ciclo de vida da computação e pode ser um dos seguintes:

  • Ativo: processando uma solicitação de sincronização, executando um comando ou executando tarefas em segundo plano. A invocação de sincronização e a atividade de execução de comandos são rastreadas automaticamente com base nas invocações de uma sessão de tempo de execução. As tarefas em segundo plano são comunicadas pelo código do agente, respondendo com o status "HealthyBusy" em pings.

  • Ocioso: quando não está processando nenhuma solicitação ou tarefa em segundo plano. A sessão concluiu o processamento, mas permanece disponível para futuras invocações.

  • Interrompido: a computação (microVM) provisionada para a sessão foi encerrada e a sessão foi interrompida. Isso pode ocorrer devido à inatividade (padrão, 15 minutos), à duração máxima da computação (padrão, 8 horas), a uma interrupção explícita da invocação da StopRuntimeSession API ou se a computação for considerada não íntegra com base nas verificações de integridade. A sessão volta para Ativa na próxima invocação e uma nova computação é provisionada, com a mesma configuração de ciclo de vida (ou seja, inativa RuntimeSessionTimeout e MaxLifetime, que pode durar até mais 8 horas). A sessão em si permanece válida até que o ARN do AgentCore Runtime seja excluído. Se o tempo de execução for configurado com armazenamento de sessão, os dados do sistema de arquivos no caminho de montagem configurado persistirão em todos os ciclos. stop/resume Consulte Configurações do sistema de arquivos para AgentCore Runtime.

nota

Enquanto o serviço provisiona ou encerra uma sessão, uma segunda operação direcionada à mesma sessão retorna um HTTP RetryableConflictException 409 () que pode ser repetido. Session operation in progress, please retry Essa janela é breve. Already-running as sessões não são afetadas. Tente novamente com um pequeno recuo exponencial.

Como usar as sessões

Para usar as sessões de forma eficaz:

  • Gere um ID de sessão exclusivo para cada usuário ou conversa com pelo menos 33 caracteres

  • Passe o mesmo ID de sessão para todas as invocações relacionadas

  • Use IDs de sessão diferentes para usuários ou conversas diferentes

Exemplo de uso de sessões para uma conversa

# First message in a conversation response1 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "Tell me about AWS"}).encode() ) # Follow-up message in the same conversation reuses the runtimeSessionId. response2 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "How does it compare to other cloud providers"}).encode() )

Ao usar o mesmo tempo de execução SessionId para invocações relacionadas, você garante que o contexto seja mantido em toda a conversa, permitindo que seu agente forneça respostas coerentes baseadas em interações anteriores.

Cabeçalhos de sessão por protocolo

Ao invocar agentes, inclua o cabeçalho de sessão apropriado para garantir que as solicitações sejam roteadas para a mesma microVM. O cabeçalho depende do protocolo configurado pelo seu agente:

Protocolo cabeçalho da sessão

MCP

Mcp-Session-Id

HTTP

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

A2A

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

AG-UI

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

Fixação da microVM: o Amazon Bedrock AgentCore usa o cabeçalho da sessão para rotear solicitações para a mesma instância de microVM. Os clientes devem capturar a ID da sessão retornada na resposta e incluí-la em todas as solicitações subsequentes para garantir a afinidade da sessão. Sem um ID de sessão consistente, cada solicitação pode ser roteada para uma nova microVM, o que pode resultar em latência adicional devido às partidas a frio.

Para especificações do protocolo MCP, incluindo modos sem estado e com estado, consulte Gerenciamento de sessão MCP e aderência da microVM.