네임스페이스를 사용하여 장기 메모리 조직 지정
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/ 또는와 같은를 사용하는 다음 네임스페이스 경로 계층 구조에서 네임스페이스가 있는 summaries/agent1/ OR과 summaries/agent1/ 같은 정확한 namespacePath스페이스가 있는 메모리에 대한 액세스만 허용합니다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/*" } } } ] }