使用命名空間指定長期記憶體組織
當您建立 AgentCore 記憶體時,請使用命名空間來指定記憶體策略的長期記憶體在邏輯上分組的位置。每次使用記憶體策略擷取新的長期記憶體時,都會儲存在您設定的命名空間中。這表示所有長期記憶體的範圍都限定在其特定的命名空間,保持它們井然有序,並防止與其他使用者或工作階段進行任何混淆。您應該使用以斜線 / 分隔的階層格式。這有助於清晰地整理記憶。如有需要,您可以根據應用程式的組織需求,選擇在命名空間中的括號內使用下列預先定義的變數:
-
actorId – 識別長期記憶體所屬的對象。
演員是指實體,例如最終使用者或代理程式/使用者組合。例如,在編碼支援聊天機器人中,演員通常是提出問題的開發人員。使用演員 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階層下的記錄。在此範例中,政策僅允許存取具有確切命名空間的記憶體,例如具有命名空間的 summaries/agent1/ OR,位於具有 的下列namespacePath階層下,例如 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/*" } } } ] }