本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
内存中的 AgentCore 内存组织
你可以设定短期和长期记忆在记忆中的组织 AgentCore 方式。这使您可以按会话和角色隔离记忆。对于长期内存,您还可以设置命名空间来组织内存策略中提取的内存。
-
参与者-指最终用户或 agent/user 组合等实体。例如,在编码支持聊天机器人中,参与者通常是开发者在提问。使用操作者 ID 可以帮助系统知道内存属于哪个用户,从而使每个用户的数据保持独立和井井有条。
-
会话-用户与 AI 代理之间的单次对话或互动时段。它对对话期间发生的所有相关消息和事件进行分组。
-
策略(仅限Long-term 内存)-显示正在使用哪种长期记忆策略。此策略标识符是在您创建 AgentCore 内存时自动生成的。
Short-term 记忆组织
使用创建短期记忆事件时 CreateEvent,可以指定会话 ID (sessionId) 和操作者 ID (actorId),它们可以唯一标识该事件的会话和操作者。稍后,您可以使用短期记忆操作检索用户或会话的事件。
有关示例代码,请参阅步骤 3:捕获对话历史记录。
Long-term 记忆组织
创建或更新 AgentCore 内存时,可以选择创建一个或多个内存策略。在策略中,使用命名空间来指定 AgentCore Memory 组织长期记忆。
每当 AgentCore Memory 使用内存策略提取新的长期内存时,长期内存都会保存在您指定的命名空间下。这意味着所有长期记忆都限于其特定的命名空间,从而使它们井井有条,并防止与其他用户或会话发生任何冲突。将命名空间构造为由正斜杠分隔的分段的层次结构/,前面有一个斜杠和一个尾部斜杠。斜杠可防止多租户应用程序中的前缀冲突,例如,使用而不是。/actors/alice/ /actors/alice根据需要,您可以根据应用程序的组织需求在命名空间的大括号内使用以下预定义变量:
-
ActorID — 识别长期记忆属于谁。
-
StrategyID — 显示正在使用哪种内存策略。
-
sessionID — 标识内存来自哪个会话或会话。
例如,如果您在创建 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}/
所有策略均覆盖全球
/
有关示例代码,请参阅启用长期内存。
有关使用命名空间(包括自定义命名空间变量)组织长期内存的更多信息,请参阅使用命名空间指定长期内存组织。