본문으로 건너뛰기

Amazon Bedrock AgentCore 에이전트의 메모리 수명 주기 정책 설계

Amazon Bedrock AgentCore의 기억을 TTL, 관련성 점수, LLM 통합으로 관리하는 야간 AWS 아키텍처

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Amazon Bedrock AgentCore memory는 대화가 누적될수록 오래된 청구 분쟁이나 폐기된 운영 지침까지 검색해 응답에 섞을 수 있으므로, 기억을 운영 자원으로 관리하는 정책이 필요합니다. 제안된 AWS CDK 구조는 Amazon EventBridge가 매일 2시 UTC에 AWS Step Functions를 실행하고, Lambda 함수들이 TTL 만료, 관련성 감쇠 점수 계산, 조건부 통합, 지표 기록을 순서대로 처리하도록 구성합니다. episodic memory는 기본 90일 TTL을 적용하고, semantic memory와 procedural memory는 더 오래 유지하며, 점수는 생성 시점·최근 접근 시점·접근 빈도를 가중 exponential decay 공식으로 결합합니다. 통합과 삭제가 응답 품질을 떨어뜨리지 않는지 AgentCore Evaluations 기반 회귀 테스트로 사전·사후 점수를 비교하고, GDPR 삭제 처리기와 CloudTrail 감사 로그로 개인정보 삭제와 변경 이력을 관리합니다.

섹션별 상세

01
장기간 실행되는 에이전트는 모든 대화에서 기억을 만들기 때문에 시간이 지나면 해결된 청구 분쟁이나 폐기된 runbook까지 현재 정보처럼 참조할 수 있습니다. 이 구조는 기억을 단순 저장 데이터가 아니라 만료·평가·통합·삭제가 필요한 관리 자원으로 취급합니다. 고객 지원, 영업 상담, IT helpdesk처럼 수주 또는 수개월 동안 상호작용이 누적되는 에이전트가 주요 대상이며, 사용량이 낮은 개인 비서는 TTL과 GDPR 삭제부터 시작할 수 있습니다.
02
기억을 episodic, semantic, procedural 세 유형으로 나누면 보관 기준을 서로 다르게 적용할 수 있습니다. episodic memory는 세션에 묶인 고용량 대화 기록이므로 먼저 만료시키고, semantic memory는 사용자 선호나 사실처럼 재사용 가치가 높은 정보를 더 오래 유지하면서 여러 관찰을 하나의 사실로 통합합니다. procedural memory는 도구 사용 절차와 업무 흐름을 담아 가장 긴 보관 기간과 가장 엄격한 삭제 기준을 적용해야 하며, AgentCore memory에서는 episodic memory에 연결된 reflection 형태로 저장됩니다.
python
cutoff = (now - timedelta(days=ttl_days)).isoformat()
response = client.list_memory_records(
    memoryId=memory_id,
    namespace=agent_id,
    metadataFilters=[{
        "left": {"metadataKey": "x-amz-agentcore-memory-createdAt"},
        "operator": "BEFORE",
        "right": {"metadataValue": {"dateTimeValue": cutoff}},
    }],
)

설정된 TTL보다 오래된 AgentCore memory 기록을 생성 시각 메타데이터로 조회합니다.

03
TTL 정책은 설정 기간보다 오래된 기억을 먼저 삭제해 저장량과 규정 준수 위험에 하드 리밋을 둡니다. AgentCore memory에 자동 TTL 기능은 없지만, 시스템이 생성한 x-amz-agentcore-memory-createdAt 메타데이터에 BEFORE 필터를 적용해 오래된 레코드만 조회한 뒤 개별 삭제할 수 있습니다. 기본 episodic memory TTL은 90일이며, 글은 summary memory 30–60일, semantic memory 6–12개월, procedural memory는 TTL을 두지 않는 시작점을 제안합니다.
python
def compute_relevance_score(
    created_at: datetime,
    last_accessed_at: datetime,
    access_count: int,
    decay_rate: float,
    now: datetime,
    w_recency: float = 0.4,
    w_access: float = 0.35,
    w_frequency: float = 0.25,
    max_access_baseline: int = 50,
) -> float:
    """Compute relevance score using the 3-term weighted decay formula.
    score = w_recency * exp(-decay_rate * days_since_creation) + w_access * exp(-decay_rate * days_since_last_access) + w_frequency * min(access_count / max_access_baseline, 1.0)
    Returns a float in [0.0, 1.0] when weights sum to 1.0.
    Raises ValueError if max_access_baseline is zero or negative.
    """

생성 시점, 마지막 접근 시점, 접근 빈도를 가중 감쇠 공식에 넣어 기억의 관련성 점수를 계산합니다.

04
관련성 점수는 생성 후 경과 시간, 마지막 접근 후 경과 시간, 접근 횟수를 각각 exponential decay와 가중치로 계산해 기억을 0.0–1.0 범위로 평가합니다. 기본 가중치는 W_RECENCY 0.4, W_ACCESS 0.35, W_FREQUENCY 0.25이고 MAX_ACCESS_BASELINE은 50이며, pruneDays=45와 threshold=0.3이면 decay_rate가 약 0.02676이 됩니다. 최근에 자주 검색된 오래된 기억은 높은 점수를 유지할 수 있고, 실제 시작값은 실시간 지원 bot 7일, 영업·온보딩 agent 21일, 일반 assistant 45일, IT helpdesk·ops agent 90일, 법률·컴플라이언스 advisor 180일로 제시됩니다.
javascript
const emitAndWrite = emitMetrics.next(writeRunOutput);
const definition = ttlExpiration
  .next(scoreMemories)
  .next(
    checkLowScoreMemories
      .when(
        sfn.Condition.isPresent('$.scoringResult.below_threshold[0]'),
        batchConsolidate.next(emitAndWrite),
      )
      .otherwise(emitAndWrite),
  );
const stateMachine = new sfn.StateMachine(this, 'MemoryLifecycleStateMachine', {
  definitionBody: sfn.DefinitionBody.fromChainable(definition),
  timeout: cdk.Duration.hours(1),
  tracingEnabled: true,
});

TTL 만료와 점수 계산 뒤 낮은 점수의 기억만 통합하고, 결과 지표 기록과 실행 결과 저장으로 흐름을 마무리합니다.

javascript
new events.Rule(this, 'NightlyMemoryLifecycleRule', {
  schedule: events.Schedule.expression('cron(0 2 * * ? *)'),
  targets: [new targets.SfnStateMachine(stateMachine)],
});

Amazon EventBridge가 매일 2시 UTC에 Step Functions 수명 주기 워크플로를 실행하도록 예약합니다.

05
점수가 임계값보다 낮은 기억은 바로 삭제하지 않고 consolidation 대상으로 묶어 Amazon Bedrock 모델로 여러 episodic 관찰을 하나의 정제된 semantic 또는 procedural 기억으로 합칠 수 있습니다. AWS Step Functions는 TTL 만료와 점수 계산을 먼저 실행한 뒤 낮은 점수 항목이 있을 때만 batch consolidation을 호출하고, 이후 지표와 실행 결과를 기록합니다. consolidation의 주요 비용은 Amazon Bedrock 호출이며, 기억 1,000개 중 20%가 임계값 아래라면 야간 실행당 약 20회, 약 $0.01–$0.02가 발생하고 100,000개 규모에서는 월 $50–$100까지 증가할 수 있습니다.
python
def determine_pass_fail(test_case: RegressionTestCase) -> RegressionTestCase:
    if test_case.post_lifecycle_score is None:
        test_case.passed = None
        return test_case
    test_case.passed = test_case.post_lifecycle_score >= test_case.min_quality_score
    return test_case

수명 주기 실행 뒤의 품질 점수가 테스트별 최소 기준 이상인지 판정합니다.

06
AWS CDK 스택은 Amazon EventBridge 규칙으로 매일 2시 UTC에 Step Functions 상태 머신을 시작하고, 다섯 개 Lambda 함수가 메모리 정리, 점수 계산, 조건부 통합, 지표 전송, 결과 저장을 맡도록 연결합니다. memoryTtlDays, relevanceThreshold, consolidationBatchSize, pruneDays, bedrockModelId와 세 가지 점수 가중치는 CDK context에서 배포 시 조정할 수 있어 코드를 바꾸지 않고 에이전트별 정책을 맞출 수 있습니다. 이미지의 흐름처럼 실패 시 Amazon SNS 알림을 보내고, AWS CloudWatch Logs와 대시보드에서 처리·통합·삭제 수와 실행 상태를 확인합니다.
07
수명 주기 작업이 기억을 지나치게 줄여 응답 품질을 떨어뜨리지 않는지 회귀 테스트로 확인합니다. 각 테스트는 질문, 기대 조건, 최소 품질 점수로 구성되고, lifecycle 실행 전후에 동일한 질문을 보내 AgentCore Evaluations의 0.0–1.0 LLM-as-judge 점수와 품질 변화량을 비교합니다. 예시에서는 선호 프로그래밍 언어 테스트가 0.82에서 0.85로, 마지막 프로젝트 요약 테스트가 0.74에서 0.71로 변했지만 각각 최소 기준 0.70과 0.60을 넘어 2/2 통과했습니다.
08
개인정보를 기억하는 에이전트는 성능뿐 아니라 GDPR 준수도 고려해야 합니다. GDPR Deletion Handler는 특정 user_id의 namespace에 있는 모든 memory record를 조회해 개별 삭제하고, 삭제 수와 실패한 memory ID를 반환해 부분 실패 시 재시도와 조사를 가능하게 합니다. 각 mutation은 CloudWatch Logs에 action type, memory ID, ISO 8601 timestamp를 남기고, CloudTrail은 AgentCore memory API 호출의 변경 이력을 별도 감사 추적으로 보존합니다.

이미지 분석

Amazon EventBridge가 AWS Step Functions 메모리 수명 주기 워크플로를 시작하고, 다섯 개 Lambda 함수가 TTL 만료·점수 계산·조건부 통합·지표 전송·실행 결과 저장을 순차 처리하는 구조도입니다.
Diagram

상단의 Amazon EventBridge 예약 규칙이 상태 머신을 매일 실행하면, 워크플로가 Memory Pruner와 Memory Scorer를 거쳐 조건부 Memory Consolidator로 진행합니다. 이후 Metrics Emitter와 Run Output Writer가 결과를 저장하고, Amazon CloudWatch·Amazon S3·AWS CloudTrail이 운영 지표와 감사 로그를 보조하며, 별도의 GDPR Deletion Handler는 온디맨드 삭제 요청을 처리합니다.

Amazon EventBridge가 AWS Step Functions 메모리 수명 주기 워크플로를 시작하고, 다섯 개 Lambda 함수가 TTL 만료·점수 계산·조건부 통합·지표 전송·실행 결과 저장을 순차 처리하는 구조도입니다.

용어 해설

메모리 수명 주기 관리(Memory Lifecycle Management)
AI 에이전트가 대화에서 축적한 기억을 영구 보관하지 않고, 생성 시점·최근 접근 시점·사용 빈도에 따라 평가한 뒤 만료·통합·삭제하는 운영 방식입니다. 오래된 맥락으로 인한 응답 품질 저하와 개인정보 보관 위험을 줄이는 데 목적이 있습니다.
에피소드 메모리(Episodic Memory)
특정 사용자와 세션에서 실제로 발생한 대화와 사건을 시간 정보와 함께 저장하는 기억입니다. 개별 항목 수가 많고 시간이 지나면 관련성이 낮아지기 쉬워 semantic memory와 procedural memory보다 먼저 만료 정책을 적용하는 대상이 됩니다.
시맨틱 메모리(Semantic Memory)
여러 상호작용에서 추출한 사실과 사용자 선호를 특정 대화 세션과 분리해 저장하는 기억입니다. 예를 들어 선호 AWS Region처럼 재사용 가치가 높은 정보를 담으므로 episodic memory보다 오래 보관하고, 중복 관찰을 하나의 권위 있는 사실로 통합하는 데 적합합니다.
관련성 감쇠 점수(Relevance Decay Scoring)
기억의 생성 시점, 마지막 접근 시점, 접근 횟수를 가중 exponential decay 공식으로 결합해 현재 관련성을 0.0에서 1.0 사이 점수로 계산하는 방식입니다. 점수가 임계값 아래로 내려가면 해당 기억을 통합하거나 정리할 후보로 분류합니다.
TTL 만료(Time-to-Live (TTL))
데이터가 생성된 뒤 정해진 기간이 지나면 자동으로 보관 대상에서 제외되는 수명 제한입니다. AgentCore memory에는 내장 자동 삭제 기능이 없지만, 생성 시각 메타데이터와 BEFORE 필터를 사용해 설정된 기간보다 오래된 기록을 조회하고 삭제할 수 있습니다.

기술

  • Amazon Bedrock AgentCore
  • Amazon Bedrock
  • AWS Step Functions
  • AWS Lambda
  • AWS Cloud Development Kit
  • Amazon EventBridge
  • Amazon SNS
  • Amazon CloudWatch Logs
  • Amazon CloudWatch
  • AWS CloudTrail
  • Amazon S3
  • AgentCore Evaluations
  • Amazon Bedrock Claude Sonnet

활용 사례

  • 고객 지원 agent의 해결된 티켓과 최신 troubleshooting runbook 관리
  • 영업 및 온보딩 agent의 오래된 lead 정보 정리
  • IT helpdesk 및 운영 agent의 계절성 incident 패턴 보존
  • 법률·컴플라이언스 advisor의 장기 precedent 보관
  • GDPR right-to-be-forgotten 요청에 따른 사용자별 전체 기억 삭제
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 05.수집 2026. 09. 05.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.