AgentCore Memory のメモリ組織
AgentCore Memory での短期および長期の記憶の整理方法を設定できます。これにより、セッション別およびアクター別に記憶を分離できます。長期メモリの場合は、メモリ戦略用に抽出されたメモリを整理する名前空間を設定することもできます。
-
アクター – エンドユーザーやエージェント/ユーザーの組み合わせなどのエンティティを指します。たとえば、コーディングサポートチャットボットでは、アクターは通常、開発者が質問をします。アクター ID を使用すると、システムはメモリが属するユーザーを把握し、各ユーザーのデータを分離して整理できます。
-
セッション – ユーザーと AI エージェント間の単一の会話またはインタラクション期間。その会話中に発生するすべての関連メッセージとイベントをグループ化します。
-
Strategy (長期メモリのみ) – どの長期メモリ戦略が使用されているかを示します。この戦略識別子は、AgentCore メモリを作成するときに自動生成されます。
短期的なメモリ整理
CreateEvent を使用して短期メモリイベントを作成するときは、イベントのセッションとアクターを一意に識別するセッション ID (sessionId) とアクター ID () actorId を指定します。後で、短期メモリオペレーションを使用して、ユーザーまたはセッションのイベントを取得できます。
コード例については、「ステップ 3: 会話履歴をキャプチャする」を参照してください。
長期メモリの整理
AgentCore メモリを作成または更新するときに、オプションで 1 つ以上のメモリ戦略を作成できます。戦略内で、名前空間を使用して 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}/
すべての戦略にわたるグローバル
/
コード例については、「長期メモリを有効にする」を参照してください。
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/*" } } } ] }