View a markdown version of this page

Créez un événement - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez un événement

Les événements sont les unités fondamentales du court terme à partir desquelles les informations structurées sont extraites dans la mémoire à long terme de AgentCore Memory. L'CreateEventopération vous permet de stocker différents types de données dans AgentCore la mémoire, organisées par acteur et par session. Les événements sont classés dans la mémoire sous les rubriques suivantes :

ActorId

Identifie l'entité associée à l'événement, telle que les utilisateurs finaux ou les combinaisons agent/user

SessionId

Regroupe les événements connexes, tels qu'une session de conversation

L'CreateEventopération mémorise un nouvel événement immuable dans une session de mémoire spécifiée. Les événements représentent des informations individuelles dont votre agent souhaite se souvenir, telles que les messages de conversation, les actions des utilisateurs ou les événements du système.

Cette opération est utile pour :

  • Enregistrement de l'historique des conversations entre les utilisateurs, les agents et les outils

  • Stockage des interactions et des comportements des utilisateurs

  • Capture des événements du système et des changements d'état

  • Création d'un enregistrement chronologique des activités au cours d'une session

Pour un exemple de code, voir Scénario : un agent IA du support client utilisant AgentCore la mémoire.

Note

Si vous souhaitez insérer du contenu dans la mémoire à long terme sans le conserver en tant qu'événement à court terme récupérable, utilisez plutôt l'IngestDataopération.

Types de charge utile des événements

Le payload paramètre accepte une liste d'éléments de charge utile, ce qui vous permet de stocker différents types de données dans un seul événement. Les types de charge utile courants sont les suivants :

Conversationnel

Pour stocker des messages de conversation avec des rôles (par exemple, « utilisateur » ou « assistant ») et du contenu.

JSON

Pour stocker des JSON-formatted données non conversationnelles, telles que des événements comportementaux, des journaux d'activité ou des événements système, jusqu'à 100 Ko par charge utile.

Blob

Pour stocker des données au format binaire, telles que des images et des documents, ou des données propres à votre agent, telles que des données stockées au format JSON.

Note

Les charges utiles conversationnelles et JSON sont extraites dans la mémoire à long terme. Les charges utiles blob sont stockées dans la mémoire à court terme uniquement et ne sont pas extraites.

Comme il payload s'agit d'une liste, un seul événement peut transporter plus d'un élément de charge utile et mélanger les types de charge utile. L'exemple suivant montre un corps de requête JSON qui stocke un message conversationnel, un journal d'activité JSON et un blob binaire (une image codée en base64) dans un événement :

Exemple : demande Multi-payload d'événement

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

Configuration de l'extraction

Utilisez le extractionConfig paramètre pour configurer le comportement de l'extraction de mémoire à long terme pour cet événement. Utilisez ce paramètre pour transmettre des valeurs de variables d'espace de noms personnalisées que le service remplace namespaceTemplates lors de l'extraction.

Variables d'espace de noms

Une carte des clés de variables d'espace de noms personnalisées indiquant leurs valeurs. Si vous avez défini des variables d'espace de noms personnalisées avec le namespaceKeys paramètre lors de la création de la mémoire, transmettez leurs valeurs ici afin que le service puisse résoudre la hiérarchie des espaces de noms pour le stockage de mémoire à long terme. Toutes les clés et valeurs doivent être en minuscules.

L'exemple suivant montre comment transmettre des valeurs de variables d'espace de noms personnalisées lors de la création d'un événement :

{ "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" } } }
Note

Si les valeurs requises extractionConfig sont manquantes ou non valides, l'CreateEventopération réussit toujours et l'événement est conservé dans la mémoire à court terme. Cependant, l'extraction de la mémoire à long terme peut ne pas être initiée pour les stratégies concernées. Configurez des journaux automatiques pour surveiller les échecs d'extraction.

Branchement d'événements

Le branch paramètre vous permet d'organiser des événements par le biais de branchements avancés. Cela est utile pour des scénarios tels que l'édition de messages ou d'autres voies de conversation. Par exemple, supposons que vous ayez une conversation de longue durée et que vous réalisiez que vous souhaitez explorer une conversation alternative commençant il y a 5 messages. Vous pouvez utiliser le branch paramètre pour démarrer une nouvelle conversation à partir de ce message, stocké dans la nouvelle branche, ce qui vous permet également de revenir à la conversation d'origine. Et plus simplement, cela est utile si vous souhaitez permettre à votre utilisateur de modifier son message le plus récent (s'il appuie sur Entrée plus tôt ou s'il a une faute de frappe) et poursuivre la conversation.

Lors de la création d'une branche, vous devez spécifier :

nom

Un nom descriptif pour la branche, tel que « conversation modifiée ».

racineEventId

L'ID de l'événement dont provient la branche.

Voici un exemple de création d'un événement ramifié pour représenter un message modifié :

{ "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" } }