View a markdown version of this page

Organisation de la mémoire dans AgentCore la mémoire - Amazon Bedrock AgentCore

Organisation de la mémoire dans AgentCore la mémoire

Vous pouvez définir la manière dont les mémoires à court et à long terme sont organisées dans une AgentCore mémoire. Cela vous permet d'isoler les souvenirs par session et par acteur. Pour la mémoire à long terme, vous pouvez également définir un espace de noms afin d'organiser les mémoires extraites dans le cadre d'une stratégie de mémoire.

  • Acteur — Fait référence à des entités telles que des utilisateurs finaux ou agent/user des combinaisons. Par exemple, dans un chatbot d'aide au codage, l'acteur est généralement le développeur qui pose des questions. L'utilisation de l'identifiant de l'acteur permet au système de savoir à quel utilisateur appartient la mémoire, en gardant les données de chaque utilisateur séparées et organisées.

  • Session : conversation ou période d'interaction unique entre l'utilisateur et l'agent d'intelligence artificielle. Il regroupe tous les messages et événements connexes qui se produisent au cours de cette conversation.

  • Stratégie (Long-term mémoire uniquement) — Indique quelle stratégie de mémoire à long terme est utilisée. Cet identifiant de stratégie est généré automatiquement lorsque vous créez une AgentCore mémoire.

Short-term organisation de la mémoire

Lorsque vous créez un événement de mémoire à court terme avec CreateEvent, vous spécifiez un ID de session (sessionId) et un ID d'acteur (actorId) qui identifient de manière unique la session et l'acteur de l'événement. Plus tard, vous pouvez récupérer les événements d'un utilisateur ou d'une session en utilisant des opérations de mémoire à court terme.

Pour un exemple de code, voir Étape 3 : Capture de l'historique des conversations.

Long-term organisation de la mémoire

Lorsque vous créez ou mettez à jour une AgentCore mémoire, vous pouvez éventuellement créer une ou plusieurs stratégies de mémoire. Dans le cadre d'une stratégie, utilisez un espace de noms pour spécifier que AgentCore Memory organise les mémoires à long terme.

Chaque fois que AgentCore Memory extrait une nouvelle mémoire à long terme avec une stratégie de mémoire, la mémoire à long terme est enregistrée sous l'espace de noms que vous avez défini. Cela signifie que toutes les mémoires à long terme sont limitées à leur espace de noms spécifique, ce qui permet de les organiser et d'éviter tout conflit avec d'autres utilisateurs ou sessions. Vous devez utiliser un format hiérarchique séparé par des barres obliques/, se terminant par une barre oblique finale. La barre oblique finale empêche les collisions de préfixes dans les applications multi-locataires, par exemple, use instead of. /actors/Alice/ /actors/Alice Le cas échéant, vous pouvez utiliser les variables prédéfinies suivantes entre accolades dans l'espace de noms en fonction des besoins organisationnels de votre application :

  • ActorID — Identifie à qui appartient la mémoire à long terme.

  • StrategyID — Indique la stratégie de mémoire utilisée.

  • SessionId — Identifie de quelle session ou conversation provient la mémoire.

Par exemple, si vous définissez l'espace de noms suivant comme entrée de votre stratégie lors de la création d'une AgentCore mémoire :

/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/

Après la création de la mémoire, cet espace de noms peut ressembler à ceci :

/strategy/summarization-93483043/actor/actor-9830m2w3/session/session-9330sds8/

Un espace de noms peut avoir différents niveaux de granularité :

Niveau d'organisation le plus granulaire

/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/

Granularité au niveau de l'acteur au fil des sessions

/strategy/{memoryStrategyId}/actor/{actorId}/

Granularité au niveau de la stratégie pour tous les acteurs

/strategy/{memoryStrategyId}/

Globale, toutes stratégies confondues

/

Pour un exemple de code, voir Activer la mémoire à long terme.

Restreindre l'accès avec IAM

Vous pouvez créer des politiques IAM pour restreindre l'accès à la mémoire en fonction des étendues que vous définissez, telles que l'acteur, la session et l'espace de noms. Utilisez les étendues comme clés contextuelles dans vos politiques IAM.

La politique suivante restreint l'accès à la récupération de mémoires dans un espace de noms spécifique ou d'enregistrements relevant d'une hiérarchie NameSpacePath particulière. Dans cet exemple, la politique autorise l'accès uniquement aux mémoires avec des espaces de noms exacts tels que summaries/agent1/ OR avec des espaces de noms situés sous la hiérarchie NameSpacePath suivante avecsummaries/agent1/, tel que ou. summaries/agent1/session1/ summaries/agent1/session2/

{ "Version":"2012-10-17", "Statement": [ { "Sid": "SpecificNamespaceAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory_id", "Condition": { "StringEquals": { "bedrock-agentcore:namespace": "summaries/agent1/" } } }, { "Sid": "SpecificNamespacePathAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory_id", "Condition": { "StringLike": { "bedrock-agentcore:namespacePath": "summaries/agent1/*" } } } ] }