Agent Platform 메모리 뱅크

Agent Platform 메모리 뱅크를 사용하면 사용자와 에이전트 간의 대화를 기반으로 장기 메모리를 동적으로 생성할 수 있습니다. 이러한 메모리는 여러 세션에서 지속되는 맞춤설정된 정보로, 에이전트가 컨텍스트와 연속성을 위해 응답을 조정하고 맞춤설정할 수 있도록 합니다.

기능

메모리 뱅크를 사용하면 메모리를 관리하여 에이전트가 사용자와 상호작용하는 방식을 맞춤설정하고 컨텍스트 윈도우를 관리할 수 있습니다. 각 범위에 대해 메모리 뱅크는 격리된 메모리 컬렉션을 유지합니다. 각 메모리는 에이전트가 사용할 수 있는 컨텍스트를 확장하는 데 사용할 수 있는 독립적인 자체 포함 정보입니다. 예를 들면 다음과 같습니다.

{
  "name": "projects/.../locations/.../reasoningEngines/.../memories/...",
  "scope": {
    "agent_name": "My agent",
    "user": "my user ID"
  },
  "fact": "I use Memory Bank to manage my memories."
}

메모리 뱅크에는 다음과 같은 기능이 포함되어 있습니다.

  • 메모리 생성: 대규모 언어 모델 (LLM)을 사용하여 메모리를 만들고, 구체화하고, 관리합니다.

    • 메모리 추출: 소스 데이터에서 가장 의미 있는 정보만 추출하여 메모리로 유지합니다.

    • 메모리 통합: 새로 추출된 정보를 기존 메모리와 통합하여 새 정보가 수집됨에 따라 메모리가 발전하도록 합니다. 에이전트 또는 Human-in-the-Loop가 의미 있다고 생각하는 정보와 같이 미리 추출된 메모리를 기존 메모리와 통합할 수도 있습니다.

    • 비동기 생성: 백그라운드에서 메모리를 생성하므로 에이전트가 메모리 생성이 완료될 때까지 기다릴 필요가 없습니다.

    • 연속 이벤트 수집: 구성한 일괄 처리 규칙에 따라 메모리 생성을 자동으로 트리거하는 이벤트 수집을 사용하여 대화 이벤트를 스트리밍하고 관리합니다.

    • 맞춤설정 가능한 추출: 특정 주제와 소량의 예시를 제공하여 메모리 뱅크가 의미 있다고 생각하는 정보를 구성합니다.

    • 멀티모달 이해: 멀티모달 정보를 처리하여 텍스트 인사이트를 생성하고 유지합니다.

  • 관리형 스토리지 및 검색: 완전 관리형의 지속적이고 액세스 가능한 메모리 저장소를 활용합니다.

  • 에이전트 통합: 메모리 뱅크를 에이전트에 연결하여 메모리를 생성하고 검색하는 호출을 조정할 수 있도록 합니다.

사용 사례

메모리 뱅크를 사용하여 상태 비저장 에이전트 상호작용을 에이전트가 시간이 지남에 따라 기억하고, 학습하고, 적응하는 상태 저장 컨텍스트 환경으로 변환할 수 있습니다. 메모리 뱅크는 다음이 필요한 애플리케이션에 적합합니다.

  • 장기 맞춤설정: 개별 사용자에게 맞춤설정된 환경을 빌드합니다. 메모리 뱅크는 메모리의 범위를 특정 ID로 지정하여 에이전트가 여러 세션에서 사용자의 환경설정, 기록, 주요 세부정보를 기억할 수 있도록 합니다.

    • 예: 다시 묻지 않고 사용자의 이전 지원 티켓과 제품 환경설정의 주요 정보를 기억하는 고객 서비스 에이전트
  • LLM 기반 지식 추출: 수동 개입 없이 대화 또는 멀티모달 콘텐츠에서 가장 중요한 정보를 자동으로 식별하고 유지해야 하는 경우에 사용합니다.

    • 예: 일련의 기술 논문을 읽고 주요 결과, 방법론, 결론의 통합 메모리를 빌드하는 연구 에이전트
  • 동적 및 진화하는 컨텍스트: 정적이지 않은 지식 소스가 필요한 경우 메모리 뱅크를 사용합니다. 메모리 뱅크는 에이전트의 새 정보를 지속적으로 통합하고 새 데이터가 제공됨에 따라 저장된 메모리를 구체화하고 업데이트하도록 설계되었습니다. 이렇게 하면 에이전트가 사용하는 컨텍스트가 항상 최신 상태이고 정확합니다. RAG에는 정적 외부 지식 기반이 있는 반면 메모리 뱅크는 에이전트가 제공하는 컨텍스트를 기반으로 발전할 수 있습니다.

사용 예시

Agent Platform 메모리 뱅크 개념 개요

다음 프로세스를 사용하여 Agent Platform 세션과 함께 메모리 뱅크를 사용하여 저장된 세션에서 메모리를 생성할 수 있습니다.

  1. (세션) CreateSession: 각 대화 시작 시 새 세션을 만듭니다. 에이전트가 사용하는 대화 기록은 이 세션으로 범위가 지정됩니다. 세션에는 사용자와 에이전트 간의 상호작용에 대한 메시지와 작업 (SessionEvents)의 시간순 시퀀스가 포함됩니다. 모든 세션에는 사용자 ID가 있어야 합니다. 이 세션에 대해 추출된 메모리 (GenerateMemories 참조)가 이 사용자에 매핑됩니다.

  2. (세션) AppendEvent: 사용자가 에이전트와 상호작용하면 이벤트 (사용자 메시지, 에이전트 응답, 도구 작업 등)가 세션에 업로드됩니다. 이벤트는 대화 기록을 유지하고 메모리를 생성하는 데 사용할 수 있는 대화 기록을 만듭니다.

  3. (세션) ListEvents: 사용자가 에이전트와 상호작용하면 에이전트가 대화 기록을 검색합니다.

  4. (메모리 뱅크) 메모리를 생성하거나 만듭니다.

    • GenerateMemories: 지정된 간격 (예: 세션이 끝날 때 또는 턴이 끝날 때)에 에이전트가 대화 기록을 사용하여 메모리가 생성되도록 트리거할 수 있습니다. 사용자에 관한 사실은 현재 또는 향후 세션에서 사용할 수 있도록 대화 기록에서 자동으로 추출됩니다.

    • CreateMemory: 에이전트가 메모리 뱅크에 직접 메모리를 쓸 수 있습니다. 예를 들어 에이전트는 메모리를 작성해야 하는 시점과 저장해야 하는 정보(도구로 사용할 수 있는 메모리)를 결정할 수 있습니다. 에이전트가 추출되는 사실을 더 잘 제어하도록 하려면 CreateMemory를 사용하세요.

  5. (메모리 뱅크) RetrieveMemories: 사용자가 에이전트와 상호작용하면 에이전트가 해당 사용자에 관해 저장된 메모리를 가져올 수 있습니다. 모든 기억을 가져오거나 (간단한 검색) 현재 대화와 가장 관련성이 높은 메모리만 가져올 수 있습니다 (유사성 검색). 그런 다음 가져온 기억을 프롬프트에 삽입할 수 있습니다.

빠른 시작

다음 빠른 시작을 사용하여 메모리 뱅크를 시작하세요.

메모리 뱅크 거버넌스

이 섹션에서는 보안 책임 및 데이터 상주와 같은 메모리 뱅크를 사용할 때의 데이터 거버넌스 고려사항을 설명합니다.

프롬프트 인젝션의 보안 위험

Agent Platform 공유 책임에 설명된 보안 책임 외에도 장기 메모리를 사용할 때 에이전트에 영향을 줄 수 있는 프롬프트 인젝션 및 메모리 포이즈닝의 위험을 고려하세요. 메모리 포이즈닝은 거짓 정보가 메모리 뱅크에 저장될 때 발생합니다. 그러면 에이전트가 향후 세션에서 이 거짓 정보나 악성 정보를 기반으로 작업할 수 있습니다.

메모리 포이즈닝의 위험을 완화하려면 다음을 수행하세요.

  • Model Armor: Model Armor 를 사용하여 메모리 뱅크로 전송되거나 에이전트에서 전송되는 프롬프트를 검사합니다.

  • 적대적 테스트: 공격을 시뮬레이션하여 LLM 애플리케이션의 프롬프트 인젝션 취약점을 선제적으로 테스트합니다. 일반적으로 '레드팀'이라고 합니다.

  • 샌드박스 실행: 에이전트가 외부 또는 중요한 시스템을 실행하거나 상호작용할 수 있는 경우 이러한 작업은 엄격한 액세스 제어 및 인간 검토가 있는 샌드박스 환경에서 실행되어야 합니다.

자세한 내용은 안전한 AI 에이전트에 대한 Google의 접근 방식을 참조하세요.

데이터 레지던시

개인 정보 보호법 (GDPR) 및 리전 데이터 주권 요구사항과 같은 규제 프레임워크를 준수하려면 메모리 뱅크에서 생성되고 저장된 메모리가 엄격한 데이터 레지던시 및 분리 경계를 준수해야 합니다.

메모리 뱅크는 인스턴스 내에서 ID 간에 범위 기반 데이터 격리 를 제공하지만 역할 기반 액세스 제어 (RBAC) 및 Identity and Access Management 정책을 적용하여 리전 경계를 적용하고 서로 다른 리전 인스턴스 간의 국경 간 메모리 오염을 방지해야 합니다.

리전 인스턴스 배포 및 데이터 레지던시

메모리 뱅크 인스턴스를 만들 때 리전 또는 멀티 리전 위치 (예: 유럽 연합의 경우 eu, 미국의 경우 us)를 선택하여 저장 데이터가 특정 지리적 경계 내에 유지되도록 합니다.

머신러닝 (ML) 처리 위치는 기본 모델의 리전별 가용성에 따라 다릅니다. 선택한 모델 또는 위치 (예: Gemini 3 모델 또는 아시아 단일 리전)에 리전 엔드포인트를 사용할 수 없는 경우 전역 Gemini 엔드포인트가 ML 처리에 사용됩니다. 자세한 내용은 데이터 레지던시멀티 리전 및 전역 엔드포인트를 참조하세요.

국경 간 메모리 오염 방지

국경 간 오염은 한 관할권 (예: 미국)에서 작동하는 에이전트 런타임, 에이전트 ID, 서비스 계정 또는 애플리케이션이 다른 관할권 (예: EU)에 있는 메모리 뱅크 인스턴스에 메모리를 쓰거나 검색할 때 발생합니다.

국경 간 오염을 방지하고 규정 준수를 유지하려면 다음 IAM 제어를 구성하면 됩니다.

  • 전용 리전 에이전트 ID 또는 서비스 계정: 각 관할권에 대해 별도의 리전별 에이전트 ID 또는 서비스 계정 (예: 미국 워크로드의 경우 agent-us@PROJECT_ID.iam.gserviceaccount.com, EU 워크로드의 경우 agent-eu@PROJECT_ID.iam.gserviceaccount.com)을 만듭니다. 리전 에이전트 ID 및 서비스 계정에는 동일한 지리적 관할권에 있는 메모리 뱅크 인스턴스에 대한 IAM 역할만 부여하여 리전 런타임이 국경 간 인스턴스에 액세스하지 못하도록 합니다.

    • 최소 권한의 전문 역할: 주 구성원에게 적절한 리전 리소스에 바인딩된 워크로드에 필요한 특정 메모리 뱅크 역할 (예: 읽기 전용 검색의 경우 roles/aiplatform.memoryViewer, 쓰기 및 생성 액세스의 경우 roles/aiplatform.memoryEditor)만 부여합니다. 사용 가능한 역할에 대한 자세한 내용은 전문 메모리 뱅크 IAM 역할을 참조하세요.
  • 조직 정책: gcp.resourceLocations 조직 정책 제약 조건을 사용하여 조직, 폴더 또는 프로젝트 수준에서 위치 제한을 적용합니다. 이렇게 하면 메모리 뱅크 리소스의 생성 및 사용이 승인된 규정 준수 리전으로 제한되고 승인되지 않은 전역 엔드포인트 사용이 방지됩니다.

조건부 액세스 정책 구현에 대한 자세한 내용은 IAM 조건으로 Agent Platform 메모리 뱅크에 대한 액세스 제어를 참조하세요.

다음 단계

빠른 시작

메모리 뱅크 API를 시작하여 장기 메모리를 관리합니다.

빠른 시작

에이전트 개발 키트 (ADK)를 시작합니다.

가이드

메모리 뱅크를 설정하는 방법을 알아봅니다.