View a markdown version of this page

Spécifier l'organisation de la mémoire à long terme avec des espaces de noms - Amazon Bedrock AgentCore

Spécifier l'organisation de la mémoire à long terme avec des espaces de noms

Lorsque vous créez une AgentCore mémoire, utilisez un espace de noms pour spécifier où les mémoires à long terme pour une stratégie de mémoire sont regroupées de manière logique. Chaque fois qu'une nouvelle mémoire à long terme est extraite à l'aide de la stratégie de mémoire, elle 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 toute confusion avec d'autres utilisateurs ou sessions. Vous devez utiliser un format hiérarchique séparé par des barres obliques/. Cela permet de garder les souvenirs clairement organisés. Le cas échéant, vous pouvez choisir d'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.

    Un acteur fait référence à une entité telle 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.

  • StrategyID — Indique la stratégie de mémoire utilisée. Cet identifiant de stratégie est généré automatiquement lorsque vous créez une AgentCore mémoire.

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

    Une session est généralement une conversation ou une période d'interaction unique entre l'utilisateur et l'agent AI. Il regroupe tous les messages et événements connexes qui se produisent au cours de cette conversation.

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/*" } } } ] }