AgentCore 메모리의 메모리 구성
AgentCore 메모리에서 단기 및 장기 메모리가 구성되는 방식을 설정할 수 있습니다. 이를 통해 세션 및 액터별로 메모리를 격리할 수 있습니다. 장기 메모리의 경우 네임스페이스를 설정하여 메모리 전략을 위해 추출된 메모리를 구성할 수도 있습니다.
-
액터 - 최종 사용자 또는 에이전트/사용자 조합과 같은 엔터티를 나타냅니다. 예를 들어 코딩 지원 챗봇에서 액터는 일반적으로 개발자가 질문합니다. 액터 ID를 사용하면 시스템이 메모리가 속한 사용자를 알 수 있으므로 각 사용자의 데이터를 분리 및 정리할 수 있습니다.
-
세션 - 사용자와 AI 에이전트 간의 단일 대화 또는 상호 작용 기간입니다. 해당 대화 중에 발생하는 모든 관련 메시지와 이벤트를 그룹화합니다.
-
전략(장기 메모리만 해당) - 사용 중인 장기 메모리 전략을 보여줍니다. 이 전략 식별자는 AgentCore 메모리를 생성할 때 자동으로 생성됩니다.
단기 메모리 조직
CreateEvent를 사용하여 단기 메모리 이벤트를 생성할 때 이벤트의 세션과 액터를 고유하게 식별하는 세션 ID(sessionId)와 actorId 액터 ID()를 지정합니다. 나중에 단기 메모리 작업을 사용하여 사용자 또는 세션에 대한 이벤트를 검색할 수 있습니다.
예제 코드는 3단계: 대화 기록 캡처를 참조하세요.
장기 메모리 조직
AgentCore 메모리를 생성하거나 업데이트할 때 선택적으로 하나 이상의 메모리 전략을 생성할 수 있습니다. 전략 내에서 네임스페이스를 사용하여 AgentCore 메모리가 장기 메모리를 구성하도록 지정합니다.
AgentCore 메모리가 메모리 전략을 사용하여 새 장기 메모리를 추출할 때마다 장기 메모리는 설정한 네임스페이스 아래에 저장됩니다. 즉, 모든 장기 메모리는 특정 네임스페이스로 범위가 지정되어 정리되어 다른 사용자 또는 세션과의 충돌을 방지합니다. 후행 슬래시로 / 끝나는 슬래시 로 구분된 계층적 형식을 사용해야 합니다. 후행 슬래시는 다중 테넌트 애플리케이션에서 접두사 충돌을 방지합니다. 예를 들어 /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/ 또는와 같은를 사용하는 다음 네임스페이스 경로 계층 구조에서 네임스페이스가 있는 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/*" } } } ] }