内存
安全带会自动将对话状态保留在AgentCore 内存中。每次调用时,对话都会被保存,并按会话 ID 进行限定(如果提供,还会按参与者 ID 进行限定)。在使用相同会话 ID 的后续调用中,代理的历史记录会在启动之前从内存中加载——即使在底层 microVM 会话过期之后,它也会记住前几回合中发生的事情。您无需自己传递之前的消息;只需发送新消息即可。
记忆的工作原理
托管内存(默认)
默认情况下,该工具会自动为AgentCore 内存实例配置合理的默认值(语义+摘要策略,30 天事件到期)。你不需要创建或配置任何东西——内存可以正常工作。
要在创建时自定义托管内存,请执行以下操作:
例
托管内存完全由安全带管理:
-
策略配置通过控制
UpdateHarness。您仍然可以直接通过内存 API 来查询 read/write 事件和记录。 -
托管内存不能直接通过内存 API 删除。要将托管内存转换为常规 AgentCore 内存资源,可以通过两种方式将其与安全带断开关联:
-
用于切换
UpdateHarness到 BYO (agentCoreMemoryConfiguration) 或禁用。 -
改为将删除传递
deleteManagedMemory=false给取消关联——默认情况下,DeleteHarness级联删除托管内存。
-
可用策略
| Strategy | 说明 |
|---|---|
|
|
从对话中提取事实知识,可通过语义搜索检索。 |
|
|
创建按参与者和会话划分范围的持续对话摘要。 |
|
|
捕获对话期间表达的用户偏好和设置。 |
|
|
将重要事件和经历记录为独立剧集。 |
添加现有内存 (BYO)
如果您需要的高级配置超出了托管内存提供的范围(自定义命名空间模板、KMS 加密或跨多个线束共享内存),请改为连接现有的AgentCore 内存实例。
例
禁用内存
要完全禁用内存:
aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"disabled": {}}}'
Per-user 使用演员 ID 进行内存范围界定
actorId在调用时传递,将内存范围限定为特定用户。每个演员都有孤立的短期和长期记忆:
response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, actorId="user-123", messages=[{"role": "user", "content": [{"text": "What do you remember about my preferences?"}]}], )
Long-term 内存检索
当线束具有活动内存策略(托管或 BYO)时,检索会自动工作——安全带从内存实例的活动策略中派生出检索配置。每次调用时,代理都会查询相关的长期记忆,并在推理之前将其注入对话上下文中。
默认行为:
-
检索是使用每个活动策略的命名空间的默认参数 (
topK=10,relevanceScore=0.2) 自动配置的。 -
无论是托管内存还是自带内存,都无需手动配置。
覆盖默认值:如果您在 BYO 内存配置retrievalConfig中明确提供,则您的值将优先考虑,并且不会自动推导。这使您可以自定义查询哪些命名空间,调整topK或禁用特定relevanceScore策略的检索。
aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"agentCoreMemoryConfiguration": {"arn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:memory/MyMemory-abc123", "retrievalConfig": {"/facts/{actorId}/": {"topK": 5, "relevanceScore": 0.5, "strategyId": "FactExtractor-abc123"}}}}}'
重要
如果您在将 BYO Memory 实例连接到安全带后更新了该实例的策略(添加或删除),请调用UpdateHarness刷新检索配置。对于托管内存,策略会通过自动UpdateHarness刷新配置来改变。
上下文截断
当对话历史记录超出模型的上下文窗口时,该工具会应用截断策略。在安全带上进行配置,或者在每次调用时进行覆盖。
-
sliding_window(默认)-保留最新的 N 条消息。简单且可预测。 -
summarization-将较旧的消息压缩为摘要,用更少的标记保留更多的上下文。 -
none-没有截断。只有在您自己管理上下文大小时才使用。
aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --truncation '{"strategy": "sliding_window", "slidingWindowConfig": {"numMessages": 30}}'
了解更多:AgentCore 记忆、创建记忆库、长期记忆策略。