使用命名空间指定长期内存组织
创建 AgentCore 内存时,请使用命名空间来指定内存策略的长期内存的逻辑分组位置。每次使用内存策略提取新的长期内存时,都会将其保存在您设置的命名空间下。这意味着所有长期记忆都限于其特定的命名空间,从而使它们井井有条,并防止与其他用户或会话混淆。应使用由正斜杠/分隔的分层格式。这有助于使记忆井井有条。根据需要,您可以根据应用程序的组织需求选择在命名空间的大括号内使用以下预定义变量:
-
ActoRid — 识别长期记忆属于谁。
行为者是指诸如最终用户或 agent/user 组合之类的实体。例如,在编码支持聊天机器人中,参与者通常是开发者在提问。使用操作者 ID 可以帮助系统知道内存属于哪个用户,从而使每个用户的数据保持独立和井井有条。
-
StrategyID — 显示正在使用哪种内存策略。此策略标识符是在您创建 AgentCore 内存时自动生成的。
-
sessionID — 标识内存来自哪个会话或会话。
会话通常是用户与 AI 代理之间的单次对话或互动时段。它对对话期间发生的所有相关消息和事件进行分组。
例如,如果您在创建 AgentCore 内存时将以下命名空间定义为策略的输入:
/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/
创建内存后,此命名空间可能如下所示:
/strategy/summarization-93483043//actor/actor-9830m2w3/session/session-9330sds8
命名空间可以有不同的粒度级别:
最精细的组织级别
/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/
跨会话的演员级别精细化
/strategy/{memoryStrategyId}/actor/{actorId}/
各参与者在策略层面上精细化
/strategy/{memoryStrategyId}/
所有策略均覆盖全球
/
有关示例代码,请参阅启用长期内存。
使用 IAM 限制访问权限
您可以创建 IAM 策略,根据您定义的范围(例如参与者、会话和命名空间)来限制内存访问权限。在 IAM 策略中使用范围作为上下文密钥。
以下策略限制了检索特定命名空间或特定 NamespacePath 层次结构下的记录的访问权限。在此示例中,该策略仅允许访问具有精确命名空间(例如 OR)的内存,其命名空间位于以下 NamespacePath 层次结构下,例如summaries/agent1/或。summaries/agent1/ 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/*" } } } ] }