View a markdown version of this page

이벤트 생성 - Amazon Bedrock AgentCore

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

이벤트 생성

이벤트는 구조화된 정보가 AgentCore 메모리의 장기 메모리로 추출되는 단기 단위입니다. CreateEvent 작업을 사용하면 액터 및 세션별로 구성된 다양한 유형의 데이터를 AgentCore 메모리 내에 저장할 수 있습니다. 이벤트는 메모리 내에서 다음과 같이 범위가 지정됩니다.

ActorId

최종 사용자 또는 에이전트/사용자 조합과 같이 이벤트와 연결된 개체를 식별합니다.

SessionId

대화 세션과 같은 관련 이벤트를 그룹화합니다.

CreateEvent 작업은 지정된 메모리 세션 내에 변경 불가능한 새 이벤트를 저장합니다. 이벤트는 대화 메시지, 사용자 작업 또는 시스템 이벤트와 같이 에이전트가 기억하고 싶은 개별 정보를 나타냅니다.

이 작업은 다음에 유용합니다.

  • 사용자, 에이전트 및 도구 간의 대화 기록

  • 사용자 상호 작용 및 동작 저장

  • 시스템 이벤트 및 상태 변경 캡처

  • 세션 내 활동에 대한 시간별 레코드 구축

예제 코드는 시나리오: AgentCore 메모리를 사용하는 고객 지원 AI 에이전트를 참조하세요.

참고

콘텐츠를 검색 가능한 단기 이벤트로 유지하지 않고 장기 메모리에 제공하려면 IngestData 작업을 대신 사용합니다.

이벤트 페이로드 유형

payload 파라미터는 페이로드 항목 목록을 수락하므로 단일 이벤트에 다양한 유형의 데이터를 저장할 수 있습니다. 일반적인 페이로드 유형은 다음과 같습니다.

대화

역할(예: "사용자" 또는 "보조") 및 콘텐츠가 포함된 대화 메시지를 저장하는 데 사용됩니다.

JSON

동작 이벤트, 활동 로그 또는 시스템 이벤트와 같은 JSON 형식의 비대화형 데이터를 각 페이로드에 대해 최대 100KB까지 저장하는 데 사용됩니다.

Blob

이미지 및 문서와 같은 이진 형식 데이터 또는 JSON 형식으로 저장된 데이터와 같이 에이전트에 고유한 데이터를 저장하는 데 사용됩니다.

참고

대화 및 JSON 페이로드는 장기 메모리로 추출됩니다. 블롭 페이로드는 단기 메모리에만 저장되며 추출되지 않습니다.

payload는 목록이므로 단일 이벤트에는 둘 이상의 페이로드 항목과 혼합 페이로드 유형이 포함될 수 있습니다. 다음 예제는 대화 메시지, JSON 활동 로그 및 이진 BLOB(base64 인코딩 이미지)을 하나의 이벤트에 저장하는 JSON 요청 본문을 보여줍니다.

예 - 다중 페이로드 이벤트 요청

{ "memoryId": "mem-12345abcdef", "actorId": "agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "conversational": { "content": { "text": "Here's a photo of the camera I'm interested in." }, "role": "USER" } }, { "json": { "content": { "eventType": "product_viewed", "productId": "cam-9921", "category": "action-cameras", "priceUsd": 349.99 } } }, { "blob": "iVBORw0KGgoAAAANSUhEUg..." } ] }

추출 구성

extractionConfig 파라미터를 사용하여이 이벤트에 대한 장기 메모리 추출의 동작을 구성합니다. 이 파라미터를 사용하여 추출 namespaceTemplates 중에 서비스가 대체하는 사용자 지정 네임스페이스 변수 값을 전달합니다.

namespaceVariables

사용자 지정 네임스페이스 변수 키와 해당 값의 맵입니다. 메모리를 생성할 때 namespaceKeys 파라미터로 사용자 지정 네임스페이스 변수를 정의한 경우 서비스에서 장기 메모리 스토리지의 네임스페이스 계층 구조를 확인할 수 있도록 값을 여기에 전달합니다. 모든 키와 값은 소문자여야 합니다.

다음 예제에서는 이벤트를 생성할 때 사용자 지정 네임스페이스 변수 값을 전달하는 방법을 보여줍니다.

{ "memoryId": "mem-12345abcdef", "actorId": "user456", "sessionId": "session789", "eventTimestamp": 1692804206123, "payload": [ { "conversational": { "content": {"text": "I need help with my deployment."}, "role": "USER" } } ], "extractionConfig": { "namespaceVariables": { "orgname": "engineering", "teamname": "backend" } } }
참고

의 필수 값이 extractionConfig 누락되거나 유효하지 않은 경우 CreateEvent 작업은 계속 성공하며 이벤트는 단기 메모리에 유지됩니다. 그러나 영향을 받는 전략에 대해서는 장기 메모리 추출을 시작하지 않을 수 있습니다. 벤딩 로그를 설정하여 추출 실패를 모니터링합니다.

이벤트 분기

branch 파라미터를 사용하면 고급 분기를 통해 이벤트를 구성할 수 있습니다. 이는 메시지 편집 또는 대체 대화 경로와 같은 시나리오에 유용합니다. 예를 들어 장시간 대화를 나누고 5개 메시지부터 시작하는 대체 대화를 탐색하는 데 관심이 있다고 가정해 보겠습니다. branch 파라미터를 사용하여 새 브랜치에 저장된 해당 메시지에서 새 대화를 시작할 수 있습니다. 그러면 원래 대화로 돌아갈 수도 있습니다. 또한이 기능은 사용자가 가장 최근 메시지를 편집하고(사용자가 일찍 입력을 누르거나 오타가 있는 경우) 대화를 계속하도록 하려는 경우에 유용합니다.

브랜치를 생성할 때 다음을 지정합니다.

이름

'편집된 대화'와 같은 브랜치에 대한 설명이 포함된 이름입니다.

rootEventId

브랜치가 시작되는 이벤트의 ID입니다.

다음은 편집된 메시지를 나타내는 분기 이벤트를 생성하는 예제입니다.

{ "memoryId": "mem-12345abcdef", "actorId": "agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "conversational": { "content": { "text": "I'm looking for a waterproof action camera for extreme sports." }, "role": "USER" } } ], "branch": { "name": "edited-conversation", "rootEventId": "evt-67890" } }