名前空間を使用して長期メモリ組織を指定する
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/session1/または などの を持つ次の namespacePath 階層の名前空間を持つ summaries/agent1/ OR などの正確な名前空間を持つメモリへのアクセスのみを許可しますsummaries/agent1/session2/。 summaries/agent1/
{ "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/*" } } } ] }