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.
Cree un evento
Los eventos son las unidades fundamentales de corto plazo de las que se extrae la información estructurada para convertirla en la memoria a largo plazo en AgentCore Memoria. La CreateEvent operación permite almacenar varios tipos de datos en la AgentCore memoria, organizados por un actor y una sesión. Los eventos se clasifican dentro de la memoria en:
- ActorId
-
Identifica la entidad asociada al evento, como los usuarios finales o las combinaciones agent/user
- SessionId
-
Agrupa los eventos relacionados, como una sesión de conversación
La CreateEvent operación almacena un nuevo evento inmutable dentro de una sesión de memoria especificada. Los eventos representan datos individuales que el agente desea recordar, como los mensajes de conversación, las acciones de los usuarios o los eventos del sistema.
Esta operación es útil para:
-
Registrar el historial de conversaciones entre usuarios, agentes y herramientas
-
Almacenamiento de las interacciones y los comportamientos de los usuarios
-
Captura de eventos del sistema y cambios de estado
-
Creación de un registro cronológico de las actividades de una sesión
Para ver un ejemplo de código, consulta Escenario: Un agente de IA de atención al cliente que usa AgentCore Memory.
nota
Si quieres introducir contenido en la memoria a largo plazo sin conservarlo como un evento recuperable a corto plazo, usa la IngestData operación en su lugar.
Tipos de carga útil de eventos
El payload parámetro acepta una lista de elementos de carga útil, lo que te permite almacenar diferentes tipos de datos en un solo evento. Los tipos de carga útil más comunes incluyen:
- Conversacional
-
Para almacenar mensajes de conversación con funciones (por ejemplo, «usuario» o «asistente») y contenido.
- JSON
-
Para almacenar JSON-formatted datos no conversacionales, como eventos de comportamiento, registros de actividad o eventos del sistema, de hasta 100 KB por carga útil.
- Blob
-
Para almacenar datos en formato binario, como imágenes y documentos, o datos que son exclusivos de su agente, como los datos almacenados en formato JSON.
nota
Las cargas útiles conversacionales y JSON se extraen a la memoria a largo plazo. Las cargas útiles de los blobs se almacenan únicamente en la memoria a corto plazo y no se extraen.
Al tratarse payload de una lista, un solo evento puede contener más de un elemento de carga útil y mezclar tipos de carga útil. El siguiente ejemplo muestra el cuerpo de una solicitud JSON que almacena un mensaje conversacional, un registro de actividad de JSON y un blob binario (una imagen codificada en base64) en un solo evento:
Ejemplo: solicitud de evento Multi-payload
{ "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..." } ] }
Configuración de extracción
Utilice el extractionConfig parámetro para configurar el comportamiento de la extracción de memoria a largo plazo para este evento. Utilice este parámetro para pasar valores de variables de espacio de nombres personalizados por los que el servicio los sustituya durante la namespaceTemplates extracción.
- Variables de espacio de nombres
-
Un mapa de claves de variables de espacio de nombres personalizadas para sus valores. Si definió variables de espacio de nombres personalizadas con el
namespaceKeysparámetro al crear la memoria, pase sus valores aquí para que el servicio pueda resolver la jerarquía de espacios de nombres para el almacenamiento de memoria a largo plazo. Todas las claves y valores deben estar en minúsculas.
El siguiente ejemplo muestra cómo pasar valores de variables de espacio de nombres personalizados al crear un 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
Si faltan los valores obligatorios de o no extractionConfig son válidos, la CreateEvent operación se sigue realizando correctamente y el evento se conserva en la memoria a corto plazo. Sin embargo, es posible que no se inicie la extracción de la memoria a largo plazo en el caso de las estrategias afectadas. Configure los registros vendidos para supervisar los errores de extracción.
Ramificación de eventos
El branch parámetro permite organizar eventos mediante la ramificación avanzada. Esto es útil para situaciones como la edición de mensajes o rutas de conversación alternativas. Por ejemplo, supongamos que tienes una conversación de larga duración y te das cuenta de que te interesa explorar una conversación alternativa a partir de hace 5 mensajes. Puedes usar el branch parámetro para iniciar una conversación nueva a partir de ese mensaje, almacenado en la nueva rama, lo que también te permite volver a la conversación original. Y lo que es más mundano, es útil si quieres que el usuario edite su mensaje más reciente (en caso de que el usuario presione Entrar antes o tenga un error tipográfico) y continuar la conversación.
Al crear una rama, debes especificar:
- name
-
Un nombre descriptivo para la sucursal, como «conversación editada».
- rootEventId
-
El identificador del evento desde el que se origina la sucursal.
Este es un ejemplo de cómo crear un evento ramificado para representar un mensaje editado:
{ "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" } }