개요
상담원의 대화와 세션은 단기 기억과 장기 기억의 두 가지 형태로 지식을 생성합니다. 단기 기억은 단계별 대화를 진행합니다. 장기 기억은 메모리 추출을 통해 또는 에이전트 또는 애플리케이션 에서 직접 쓰기 (write) 통해 해당 대화에서 정제된 지식을 보유합니다. 두 메모리 계층 간의 차이점에 대해 학습 에이전트 메모리를 참조하세요.
메모리 추출 파이프라인
Atlas Agent Engine은 배경 에서 4단계에 걸쳐 추출을 실행합니다.
구성된 MongoDB cluster 에 대화 차례를 저장합니다. 플랫폼에 배포된 에이전트의 경우 메모리가 활성화되면 이 작업이 자동으로 수행됩니다.
플랫폼 소유 프로세스 세션별로 이러한 쓰기를 모니터링하고 구성 가능한 크기 및 시간 매개 변수를 기반으로 스냅샷으로 번들링합니다.
LLM은 각 스냅샷 에서 장기 기억을 추출합니다. 프로젝트의 메모리 구성에서 추출할 메모리 유형을 구성할 수 있습니다.
추출된 각 메모리를 이미 알고 있는 메모리와 조정합니다.
턴 기록 및 세션 스냅샷
플랫폼은 대화 턴이 발생하면 구성된 MongoDB cluster 에 저장합니다. 플랫폼에 배포된 에이전트의 경우 메모리가 활성화되면 이 작업이 자동으로 수행됩니다. 대화의 순서는 플랫폼이 세션 스냅샷 으로 승격될 때까지 단기 기억에 누적됩니다. 세션이 최대 메시지 수에 도달하거나 구성된 기간 동안 유휴 상태로 유지되면 세션이 승격될 수 있습니다.
자격이 부여되면 세션의 기록되지 않은 회전수가 함께 승격됩니다. 각 스냅샷 대화의 연속 실행 단일 경계 단위로 처리합니다. 긴 세션은 새로운 회전이 누적됨에 따라 일련의 스냅샷을 생성합니다. 모든 추출 단계는 개별 턴이 아닌 스냅샷 에서 읽습니다.
중요
서비스 계정 메모리 ID
서비스 계정이 배포된 에이전트 호출하면 Atlas Agent Engine은 서비스 계정의 자체 ID를 런타임 메모리 ID로 사용합니다. 플랫폼은 호출 요청 또는 agentengine invoke --user-id 플래그가 제공하는 모든 최종 사용자 user_id 값을 무시합니다.
자동 회전 기록, 추출, 통합 및 app.memory 작업은 이 확인된 ID를 사용합니다. 결과적으로 동일한 서비스 계정을 통해 인증하는 호출은 하나의 메모리 사용자 범위를 주식 .
이 제한은 서비스 계정이 호출하는 배포된 에이전트에만 적용됩니다. 독립형 프로젝트 범위 메모리 서비스는 영향을 받지 않습니다. 이 서비스는 호출자로부터 명시적인 user_id 및 session_id 값을 계속 받습니다.
최종 사용자별로 메모리를 격리하려면 애플리케이션 에서 독립형 메모리 서비스를 호출하고 각 호출에 명시적인 user_id 및 session_id 값을 전달합니다. 자세한 학습 은 독립형 메모리 서비스 사용을 참조하세요.
비동기 추출
차례를 기록하는 것은 단기 기억에 빠르게 쓰기 (write) 작업입니다. 플랫폼은 해당 쓰기 (write) 중에는 추출을 실행 하지 않습니다.
플랫폼 소유의 배경 프로세스 비동기적으로 실행되어 세션의 프로모션 자격을 확인하고 주기적으로 유휴 세션을 스캔합니다. 배경 작업자가 이 작업을 선택하고 새로 승격된 각 스냅샷 에 대해 활성화된 추출 핸들러를 실행합니다.
에이전트 이 작업을 기다리지 않습니다. 한 대화에서 학습한 지식은 현재 대화의 다음 차례가 아닌 다음 대화에서 사용할 수 있습니다. 단기 기억을 통해 최근 턴을 계속 사용할 수 있습니다. 추출된 장기 지식은 추출이 완료된 후에 나타납니다.
LLM 추출 패스
추출은 스냅샷 네 가지 유형의 장기 기억으로 정제합니다. 스냅샷 이 준비되면 활성화된 각 메모리 유형의 추출 핸들러가 스냅샷을 독립적으로 읽습니다. 핸들러는 회전을 한 유형에 속하는 것으로 분류하지 않습니다. 대신 LLM이 스냅샷 에서 특정 종류의 지식을 찾도록 메시지를 표시합니다. 각 핸들러는 서로 다른 결과를 추출하고 저장합니다.
시맨틱: 플랫폼이 이미 알고 있는 내용과 조정된 사실
간헐적: 이벤트와 참가자로, 각각 발생한 상황에 대한 요약 설명과 함께 저장됩니다.
절차적: 대화에서 시연한재사용 가능한 절차
분류: 도메인 용어 및 정의
추출된 메모리는 추출 시 임베딩을 받게 되며, 이를 통해 플랫폼은 이후 대화에서 시맨틱 검색 통해 메모리를 찾을 수 있습니다. 임베딩은 메모리의 의미를 숫자로 표현한 것입니다. 시맨틱 추출 핸들러는 임베딩을 사용하여 새로운 사실을 이미 알고 있는 사실과 비교합니다.
각 장기 기억 유형에 대해 학습 장기 기억 유형을 참조하세요.
메모리 조정
모든 추출 처리기는 플랫폼이 이미 알고 있는 것과 새로운 메모리를 조정하므로 반복되거나 진화하는 정보가 중복되거나 상충되는 기록을 생성하지 않습니다. 각 핸들러는 추출된 메모리에 세 가지 조치 중 하나를 적용합니다.
ADD: 추출된 메모리가 호출자 범위의 기존 기록 와 일치하지 않으므로 핸들러는 새 문서 만듭니다.UPDATE: 추출된 메모리는 사용자가 새 집 공항을 보고 등 기존 기록 대체합니다. 핸들러는 새 문서 버전을 작성하고 이전 버전을 대체된 버전으로 표시합니다.REINFORCE: 추출된 메모리가 기존 기록 다시 작성합니다. 핸들러는 복제본을 생성하지 않습니다. 대신 기존 기록 강화합니다. 예시 들어, 시맨틱 팩트의 강화 횟수를 늘리거나 새 증거를 기존 분류 텀 에 병합합니다.
화해는 각 기억이 어떻게 학습되고 강화되었는지에 대한 기록을 보존하면서 장기 기억을 최신 상태로 유지합니다.
추출 유형 구성
프로젝트의 project-config.yaml 파일 에서 플랫폼이 자동으로 추출하는 장기 메모리 유형을 구성할 수 있습니다.
memory: extraction: enabled: - semantic - episodic - procedural - taxonomic
플랫폼은 enabled 목록을 MONGOMEM_ENABLED_EXTRACTIONS 환경 변수로 메모리 서버 에 전달합니다. 목록에서 유형을 제거하면 자동 배경 추출만 비활성화됩니다. 애플리케이션 계속해서 소프트웨어 개발 키트(SDK)를 통해 해당 메모리 유형을 직접 저장할 수 있습니다.
목록을 편집한 후 agentengine memory configure를 실행 구성을 업로드한 다음, agentengine memory apply --wait를 실행 구성을 제공하고 메모리 서버 다시 시작하고 준비가 된 것으로 보고할 때까지 기다립니다. agentengine memory status를 실행하여 변경 사항이 적용되었는지 확인합니다. 전체 구성 워크플로에 대해 학습 메모리 구성을 참조하세요.
메모리 서버 활성화된 추출 유형에 관계없이 준비 상태가 되려면 임베딩 제공자 와 LLM 제공자 키가 모두 필요합니다. 프로젝트 구성된 LLM 제공자 키가 없는 경우 메모리 서버 시작되기 전에 플랫폼이 배포서버 실패합니다. 이러한 전제 조건에 대해 학습 에이전트에 메모리 추가의 전제 조건 섹션을 참조하세요.
다음 단계
추출의 작동 방식을 이해한 후에는 다음 가이드를 살펴볼 수 있습니다.
에이전트 에 대한 메모리를 활성화 하려면 에이전트에 메모리 추가를 참조하세요.
MCP 클라이언트 에서 대화 턴을 기록 하고 호출하려면 메모리에 MCP 클라이언트 연결을 참조하세요.