repo & 환경

BAI-LAB/MemoryOS · Python(pip) · 평가셋 LoCoMo

(환경 단서까지만. 아래는 코드 담당이 직접 채웁니다.)

코드에서 볼 것 — 직접 채우기

1. 논문에 내용에 따른 실제 구현 위치

논문 개념 구현 위치 코드 설명
전체 MemoryOS 오케스트레이션 memoryos.py STM, MTM, LPM, Updater, Retriever를 초기화하고 응답 생성 흐름을 묶는다.
Short-Term Memory, STM short_term.py 최근 대화 QA를 deque(maxlen=...)로 저장한다.
Mid-Term Memory, MTM mid_term.py topic/session 단위 segment와 그 안의 dialogue page들을 저장한다.
Long-Term Personal Memory, LPM long_term.py user profile, user knowledge, assistant knowledge를 장기 저장한다.
Memory Updating updater.pymemoryos.py STM에서 밀려난 대화를 MTM으로 넘기고, heat가 높은 MTM segment를 LPM 분석에 사용한다.
Memory Retrieval retriever.py, mid_term.py, long_term.py MTM page와 LPM knowledge를 의미 유사도로 검색한다.
Response Generation memoryos.pyprompts.py 검색된 STM/MTM/LPM 정보를 prompt에 합쳐 LLM 응답을 생성한다.

2. 논문의 핵심 아이디어가 코드 어디에 구현돼 있나요?

논문 핵심:

계층형 메모리 스테이지

[short_term.py]

논문에서 STM은 최신 대화를 담는 짧은 FIFO queue다. 구현에서는 deque(maxlen=max_capacity)가 STM 저장소 역할을 한다.

class ShortTermMemory:
    """STM(Short-Term Memory): 최신 대화 QA를 FIFO 큐로 보관하는 저장 계층."""

    def __init__(self, file_path, max_capacity=10):
        self.max_capacity = max_capacity
        self.file_path = file_path
        self.memory = deque(maxlen=max_capacity)
        self.load()

대화는 user_inputagent_responsetimestamp를 가진 QA pair로 저장된다.