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á.
Criar um evento
Os eventos são as unidades fundamentais de curto prazo das quais as informações estruturadas são extraídas para a memória de longo prazo na AgentCore Memória. A CreateEvent operação permite armazenar vários tipos de dados na AgentCore Memória, organizados por um ator e uma sessão. O escopo dos eventos é definido na memória em:
- ActorId
-
Identifica a entidade associada ao evento, como usuários finais ou combinações agent/user
- SessionId
-
Agrupe eventos relacionados, como uma sessão de conversação
A CreateEvent operação armazena um novo evento imutável em uma sessão de memória especificada. Os eventos representam informações individuais que seu agente deseja lembrar, como mensagens de conversa, ações do usuário ou eventos do sistema.
Essa operação é útil para:
-
Gravando o histórico de conversas entre usuários, agentes e ferramentas
-
Armazenar interações e comportamentos do usuário
-
Capturando eventos do sistema e mudanças de estado
-
Construindo um registro cronológico das atividades em uma sessão
Por exemplo, código, consulte Cenário: um agente de IA de suporte ao cliente usando AgentCore memória.
nota
Se você quiser inserir conteúdo na memória de longo prazo sem retê-lo como um evento recuperável de curto prazo, use a IngestData operação em vez disso.
Tipos de carga útil do evento
O payload parâmetro aceita uma lista de itens de carga útil, permitindo que você armazene diferentes tipos de dados em um único evento. Os tipos comuns de carga útil incluem:
- Conversacional
-
Para armazenar mensagens de conversa com funções (por exemplo, “usuário” ou “assistente”) e conteúdo.
- JSON
-
Para armazenar JSON-formatted dados não conversacionais, como eventos comportamentais, registros de atividades ou eventos do sistema, até 100 KB para cada carga.
- Blob
-
Para armazenar dados em formato binário, como imagens e documentos, ou dados exclusivos do seu agente, como dados armazenados no formato JSON.
nota
As cargas conversacionais e JSON são extraídas para a memória de longo prazo. As cargas de blob são armazenadas somente na memória de curto prazo e não são extraídas.
Por ser payload uma lista, um único evento pode transportar mais de um item de carga útil e misturar tipos de carga útil. O exemplo a seguir mostra um corpo de solicitação JSON que armazena uma mensagem conversacional, um registro de atividades JSON e um blob binário (uma imagem codificada em base64) em um evento:
Exemplo — solicitação Multi-payload de evento
{ "memoryId": "mem-12345abcdef", "actorId": "agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "conversational": { "content": { "text": "Here's a photo of the camera I'm interested in." }, "role": "USER" } }, { "json": { "content": { "eventType": "product_viewed", "productId": "cam-9921", "category": "action-cameras", "priceUsd": 349.99 } } }, { "blob": "iVBORw0KGgoAAAANSUhEUg..." } ] }
Configuração de extração
Use o extractionConfig parâmetro para configurar como a extração de memória de longo prazo se comporta para esse evento. Use esse parâmetro para passar valores de variáveis de namespace personalizados que o serviço substitui durante a namespaceTemplates extração.
- Variáveis de namespace
-
Um mapa de chaves de variáveis de namespace personalizadas para seus valores. Se você definiu variáveis de namespace personalizadas com o
namespaceKeysparâmetro ao criar a memória, transmita seus valores aqui para que o serviço possa resolver a hierarquia de namespaces para armazenamento de memória de longo prazo. Todas as chaves e valores devem estar em minúsculas.
O exemplo a seguir mostra como passar valores de variáveis de namespace personalizados ao criar um evento:
{ "memoryId": "mem-12345abcdef", "actorId": "user456", "sessionId": "session789", "eventTimestamp": 1692804206123, "payload": [ { "conversational": { "content": {"text": "I need help with my deployment."}, "role": "USER" } } ], "extractionConfig": { "namespaceVariables": { "orgname": "engineering", "teamname": "backend" } } }
nota
Se os valores necessários extractionConfig estiverem ausentes ou forem inválidos, a CreateEvent operação ainda será bem-sucedida e o evento persistirá na memória de curto prazo. No entanto, a extração de memória de longo prazo pode não ser iniciada para as estratégias afetadas. Configure registros distribuídos para monitorar falhas de extração.
Ramificação de eventos
O branch parâmetro permite organizar eventos por meio de ramificações avançadas. Isso é útil para cenários como edição de mensagens ou caminhos alternativos de conversação. Por exemplo, suponha que você tenha uma conversa de longa duração e perceba que está interessado em explorar uma conversa alternativa a partir de 5 mensagens atrás. Você pode usar o branch parâmetro para iniciar uma nova conversa a partir dessa mensagem, armazenada na nova ramificação — o que permite que você também retorne à conversa original. E, mais mundanamente, isso é útil se você quiser permitir que seu usuário edite a mensagem mais recente (caso ele pressione enter mais cedo ou tenha um erro de digitação) e continue a conversa.
Ao criar uma ramificação, você especifica:
- name
-
Um nome descritivo para a ramificação, como “conversa editada”.
- raizEventId
-
O ID do evento do qual a filial se origina.
Aqui está um exemplo de como criar um evento ramificado para representar uma mensagem editada:
{ "memoryId": "mem-12345abcdef", "actorId": "agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "conversational": { "content": { "text": "I'm looking for a waterproof action camera for extreme sports." }, "role": "USER" } } ], "branch": { "name": "edited-conversation", "rootEventId": "evt-67890" } }